real-time collaborative roadmap sync server. it uses chacha20-poly1305 encrypted websockets with optional tls, as well as sqlcipher storage, and HMAC-SHA256 signed envelopes. this is the server-side tool in the allroads collaboration suite.
the allroads client can be cloned and compiled from here
cargo +nightly build --releaseexport SYNC_DB_PATH=/var/lib/allroads/sync.db
export SYNC_KEY="base64-32-byte-key"
export SYNC_LISTEN="0.0.0.0:59901"
export SYNC_TLS_CERT_PATH=/etc/ssl/certs/allroads.pem
export SYNC_TLS_KEY_PATH=/etc/ssl/private/allroads.key
./sync_enginedrop SYNC_TLS_CERT_PATH and SYNC_TLS_KEY_PATH to run plain ws:// instead of wss://.
if SYNC_KEY is empty the server generates a random key and logs it to stderr on first run.
wss://obsidian.st:59901
this is the default sync provider in the allroads client. if you would like to host your own allroads server, you will need to update this in the client. migration between servers is easy with the migrate inter-server command available in the client. old users will be prompted on next connect to switch to the new org server.
| variable | default | description |
|---|---|---|
SYNC_DB_PATH |
sync.db |
sqlcipher database path |
SYNC_KEY |
auto-generated | database encryption key |
SYNC_LISTEN |
0.0.0.0:59901 |
listen address |
SYNC_TLS_CERT_PATH |
none | tls cert pem |
SYNC_TLS_KEY_PATH |
none | tls key pem |
| constant | value |
|---|---|
| max message size | 1 mb |
| max changes per changeset | 500 |
| max orgs | 128 |
| max connections | 256 |
| auth timeout | 10s |
| auth rate limit | 30 attempts / 60s per ip |
| heartbeat | 25s |
| migration retention | 7 days |
[Unit]
Description=sync-engine
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=roads
Group=roads
WorkingDirectory=/srv/allroads
ExecStart=/srv/allroads/sync_engine
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=allroads-sync-engine
EnvironmentFile=/srv/allroads/.env
NoNewPrivileges=true
ProtectSystem=true
ProtectHome=true
PrivateTmp=true
ReadWritePaths=/srv/allroads
[Install]
WantedBy=multi-user.target- rust nightly toolchain
- unix-based server
- port 59901 open