Flockdeck docs

Self-hosting

Troubleshooting

The ways a first self-hosted deployment usually goes wrong, and where to look.

Desktops or devices can't connect at all

Almost always a proxy swallowing WebSocket upgrades. If the relay is behind a reverse proxy or load balancer, confirm it's configured to forward WebSocket connections through unbuffered; see Requirements. A proxy that works for ordinary HTTP traffic can still break this without any error.

/readyz never returns healthy

With MySQL storage, this means the relay can't reach the database: check -database (or FLOCKDECK_RELAY_DATABASE_URL), that the database exists, and -database-ca if the connection needs a CA certificate. With the embedded database, check that -data points at a directory the relay's process can actually write to.

Certificate errors

A desktop registers against the shared relay instead of yours

FLOCKDECK_RELAY has to be set in the environment the copy of Flockdeck that's running was launched from. See Connecting desktops. A variable set in one shell profile doesn't reach Flockdeck launched from a desktop shortcut, a different shell, or a service manager. Passing -relay on flockdeck remote enable directly sidesteps this.

New desktops can't register

If -registration is invite, every new desktop needs a code from flockdeck-relay invite first; see Admin and invites. If it's closed, no new account can be created; closed stops new accounts, not joins with -join. Check -max-hosts too: it is per account, so a join fails once that account has that many desktops, until one is removed.

Rate limiting

-register-per-hour, -pair-per-minute and -connects-per-minute (see Configuration) are all per source address. Behind a proxy, if -trust-proxy isn't set, the relay sees every request as coming from the proxy's own address and rate-limits everyone behind it together. Turn it on, and make sure the proxy sets the forwarded headers it relies on.

Still stuck

Check that the relay reports itself healthy (/healthz and /readyz) before chasing anything else. A relay that isn't up yet produces symptoms that look like every problem above at once.