tokidoki/README.md
2022-12-14 15:36:07 +01:00

72 lines
2.1 KiB
Markdown

# tokidoki
Tokidoki is a (WIP) carddav and caldav server.
## Architecture
Tokidoki relies on [go-webdav][1] 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)
[1]: https://github.com/emersion/go-webdav "go-webdav project page on Github"
## 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][2].
Tokidoki supports calendar and address book auto-discovery via
`/.well-known/caldav` and `/.well-known/carddav` respectively, as defined in
[RFC 6764, section 6][3]. Hence, most clients should be able to discover
resources by just pointing them at the server root.
[2]: https://github.com/emersion/go-webdav/issues/26
[3]: https://datatracker.ietf.org/doc/html/rfc6764#section-6
## Contact
See the [tokidoki project page][4] for up-to-date information. Patches can be
submitted to the [tokidoki-devel mailing list][5]. For general discussion,
please use the [tokidoki-discuss mailing list][6].
[4]: https://sr.ht/~sircmpwn/tokidoki
[5]: mailto:~sircmpwn/tokidoki-dev@lists.sr.ht
[6]: mailto:~sircmpwn/tokidoki-discuss@lists.sr.ht