84 lines
2.5 KiB
Markdown
84 lines
2.5 KiB
Markdown
# tokidoki
|
|
|
|
Tokidoki is a (WIP) carddav and caldav server.
|
|
|
|
## Architecture
|
|
|
|
Tokidoki relies on [go-webdav][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)
|
|
|
|
[go-webdav]: 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
|
|
|
|
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][rfc]. Hence, most clients should be able to discover
|
|
resources by just pointing them at the server root.
|
|
|
|
[rfc]: https://datatracker.ietf.org/doc/html/rfc6764#section-6
|
|
|
|
## Contact
|
|
|
|
See the [tokidoki project page][project] for up-to-date information. Patches can be
|
|
submitted to the [tokidoki-devel mailing list][devel-list]. For general discussion,
|
|
please use the [tokidoki-discuss mailing list][discuss-list].
|
|
|
|
[project]: https://sr.ht/~sircmpwn/tokidoki
|
|
[devel-list]: mailto:~sircmpwn/tokidoki-dev@lists.sr.ht
|
|
[discuss-list]: mailto:~sircmpwn/tokidoki-discuss@lists.sr.ht
|