Go to file
2024-05-27 14:29:04 +01:00
auth Update pam to v2.0.0 2024-04-19 17:37:55 +02:00
cmd/tokidoki Initial multi-calendar/address book support 2024-02-02 22:39:10 +01:00
doc Add OAuth 2.0 backend 2024-02-21 17:07:08 +01:00
storage storage: adapt to go-webdav interface changes 2024-04-19 17:29:50 +02:00
.build.yml Add build manifest with build and lint steps 2022-05-20 09:55:51 +02:00
.gitignore Ignore some files 2024-05-14 00:08:23 +01:00
go.mod Update dependencies 2024-05-27 14:29:04 +01:00
go.sum Update dependencies 2024-05-27 14:29:04 +01:00
LICENSE Initial commit 2022-02-21 09:52:55 +01:00
README.md Update README to reflect the multi-resource update 2024-02-02 22:39:12 +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

Here are some examples to get you started:

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

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

Using the PAM authentication backend and TLS:

./tokidoki -addr ":8080" -auth.url pam:// -storage.url file:///path/to/storage -cert cert.pem -key key.pem

Regular logs are sent to stderr, HTTP logs are sent to stdout. Structured logging can be enabled for the regular logs with -log.json.

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

Currently, by default only a single address book and calendar per user are supported, as users cannot create new ones. If additional resources are created manually on the server, tokidoki will however serve them just fine.

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.