Advanced usage¶
Using CalDAV via a Unix Domain Socket¶
Aside from connecting to servers via HTTP, pimsync can connect to servers via a
Unix domain socket (see unix(7)
). This feature is considered an “escape
hatch” for connecting to servers which require any transport feature not
natively supported by pimsync.
This feature allows tunnelling the connection to a server which is not directly reachable. Some example usages are:
Using
ssh -L path/to/local/socket:…
, to tunnel a remote socket or port.Using an HTTP proxy server (e.g.:
nginx
) to perform any rewrites (or either requests and/or responses), perform TLS client authentication, or any other custom feature.
Using a Unix socket instead of a TCP socket facilitates exposing a service to a single local user (or group of users) without having to reconfigure a local firewall.
If you are running your local CalDAV on a Unix domain socket, you can configure pimsync to communicate with it directly without having to expose the server on a TCP port.
To use CalDAV or CardDAV with a Unix domain socket, use configure a url
in
the style of unix:///path/to/socket
. See STORAGE SECTIONS
in the
pimsync.conf.5 manual page.
One instance per pair¶
If pimsync daemon
encounters a fatal error when synchronising a pair (i.e.:
cannot read or write from the status database), it will stop synchronising that
pair and continue with others. Pimsync will exit only if all pairs have failed.
As a result, it might not be entirely obvious when a single pair has encountered a fatal error.
Running one pimsync process per pair provides better status indication when executed via a service manager. When a single pair fails, that process will exit, and the service’s status would reflect this failure.
Running one instance per pair also yields cleaner logging, since each pair logs into a separate the stderr of separate processes.
This is considered an advanced usage because it requires that you configure your service manager to run multiple instances of the pimsync service.