Community self-hosting

Run LinksetGo and PostgreSQL with generated secrets and committed migrations.

The Community stack builds from source, migrates once, runs as a non-root read-only container and keeps PostgreSQL on an internal network.

DOCKER COMPOSE

Start with one portable command.

RELAY_PUBLIC_URL=https://links.example.com ./scripts/setup-community.sh

The helper requires Docker Compose v2 and OpenSSL. It creates a private .env.community, generates independent database, Payload and event HMAC secrets, validates Compose, applies migrations and starts LinksetGo.

For local evaluation, omit RELAY_PUBLIC_URL and use http://127.0.0.1:3100.

ONE-TIME BOOTSTRAP

Create the first operator only on a fresh database.

Visit /cms/create-first-user once, then sign in through /admin/login. Cloud public signup is disabled in RELAY_EDITION=community.

OPERATIONS

The container is only one part of production.

  • HTTPS reverse proxy or CDN in front of LinksetGo
  • Private PostgreSQL network and project-specific role
  • Daily encrypted off-host backups and a restore drill
  • Readiness, disk, certificate-expiry and real-link monitoring
  • Edge rate limits for login, resolver and public events
  • Restricted emergency /cms access

Preserve the original Host header. Trust a forwarded host only when a known ingress overwrites it and the LinksetGo setting is explicitly enabled.

DATA LIFECYCLE

Back up before every upgrade.

./scripts/community-backup.sh

Copy the completed dump off-host, encrypt it and test restoration into a disposable database. Never run an unreconciled migration against a schema-pushed production database.

Review Community Edition