2022-02-21 08:52:09 +00:00
|
|
|
# tokidoki
|
|
|
|
|
|
|
|
Tokidoki is a (WIP) carddav and caldav server.
|
2022-05-13 14:54:51 +01:00
|
|
|
|
2022-05-19 11:22:41 +01:00
|
|
|
## 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)
|
2022-09-10 18:13:20 +01:00
|
|
|
* PAM (working, enabled via the `pam` build tag)
|
2022-05-19 11:22:41 +01:00
|
|
|
|
|
|
|
Storage:
|
|
|
|
|
|
|
|
* Filesystem (working)
|
|
|
|
* PostgreSQL (planned)
|
|
|
|
|
|
|
|
[1]: https://github.com/emersion/go-webdav "go-webdav project page on Github"
|
|
|
|
|
2022-05-13 14:54:51 +01:00
|
|
|
## Building
|
|
|
|
|
|
|
|
* `cd cmd/tokidoki && go build`
|
|
|
|
|
|
|
|
## Running
|
|
|
|
|
2022-05-19 11:22:41 +01:00
|
|
|
Using the IMAP authentication backend and the filesystem storage backend
|
2022-05-20 08:45:17 +01:00
|
|
|
(directory must exist), listening on port 8080 on all interfaces:
|
2022-05-13 14:54:51 +01:00
|
|
|
|
2022-05-20 08:45:17 +01:00
|
|
|
* `./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.
|
|
|
|
|
|
|
|
## 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
|