tokidoki/README.md

83 lines
2.4 KiB
Markdown
Raw Normal View History

2022-02-21 08:52:09 +00:00
# tokidoki
Tokidoki is a (WIP) carddav and caldav server.
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)
* 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"
## Building
2022-12-14 14:36:07 +00:00
* Without PAM backend: `go build ./cmd/tokidoki/`
* With PAM backend: `go build -tags pam ./cmd/tokidoki/`
## Running
2022-12-17 20:12:34 +00:00
Here are some examples to get you started:
2022-05-19 11:22:41 +01:00
Using the IMAP authentication backend and the filesystem storage backend
2022-12-17 20:12:34 +00:00
(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:
2022-12-17 20:12:34 +00:00
```
./tokidoki -addr ":8080" -auth.url pam:// -storage.url file:///path/to/storage -cert cert.pem -key key.pem
```
2022-12-17 20:12:34 +00:00
Regular logs are sent to stderr, HTTP logs are sent to stdout. Structured
logging can be enabled for the regular logs with `-log.json`.
2022-12-14 14:36:07 +00:00
## 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
2022-12-14 14:36:07 +00:00
## 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