Go to file
2022-12-14 15:36:07 +01:00
auth Switch to a proper logging library 2022-12-01 13:46:25 +01:00
cmd/tokidoki Pass capabilites to principal path handler 2022-12-14 15:19:02 +01:00
storage Switch to a proper logging library 2022-12-01 13:46:25 +01:00
.build.yml Add build manifest with build and lint steps 2022-05-20 09:55:51 +02:00
go.mod Update go-webdav to latest version 2022-12-14 15:18:40 +01:00
go.sum Update go-webdav to latest version 2022-12-14 15:18:40 +01:00
LICENSE Initial commit 2022-02-21 09:52:55 +01:00
README.md Add some more infos to README 2022-12-14 15:36:07 +01:00

tokidoki

Tokidoki is a (WIP) carddav and caldav server.

Architecture

Tokidoki relies on go-webdav for the protocol implementation. It provides the storage backend and authentication, both of which are easily pluggable.

It currently provides:

Authentication:

  • IMAP (working)
  • PAM (working, enabled via the pam build tag)

Storage:

  • Filesystem (working)
  • PostgreSQL (planned)

Building

  • Without PAM backend: go build ./cmd/tokidoki/
  • With PAM backend: go build -tags pam ./cmd/tokidoki/

Running

Using the IMAP authentication backend and the filesystem storage backend (directory must exist), listening on port 8080 on all interfaces:

  • ./tokidoki -addr ":8080" -auth.url imaps://imap.example.com:993 -storage.url file:///path/to/storage -debug

Tokidoki does not support HTTPS at this time, use a reverse TLS proxy if needed.

Clients

Tokidoki does not yet support all CalDAV/CardDAV features, but tries to support the subset to make most major clients work.

The following clients are considered "supported":

  • Evolution (contacts & calendar)
  • Thunderbird (calendar) with CardBook extension (contacts)
  • DavX5 (contacts & calendar)

Usage

Only a single address book and calendar per user are supported at the moment, this is currently a limitation in go-webdav.

Tokidoki supports calendar and address book auto-discovery via /.well-known/caldav and /.well-known/carddav respectively, as defined in RFC 6764, section 6. Hence, most clients should be able to discover resources by just pointing them at the server root.

Contact

See the tokidoki project page for up-to-date information. Patches can be submitted to the tokidoki-devel mailing list. For general discussion, please use the tokidoki-discuss mailing list.