2.0 KiB
2.0 KiB
Deployment Scripts
Each script's header documents its inputs. Day-to-day database work (psql, accounts, deleting games, starting fresh) is in doc/database.md.
FreeBSD jail
Full guide: doc/deployment.md. Run in this order:
| Order | Where | Step | Purpose |
|---|---|---|---|
| 1 | Bastille host, once | freebsd/host.sh <jail> |
sysvshm=new for PostgreSQL, jail restart |
| 2 | Jail, once | pkg install postgresql18-server postgresql18-client stockfish |
Packages |
| 3 | Build machine | make server-freebsd |
Static bin/chess-server-freebsd-amd64 |
| 4 | Jail (root) | freebsd/setup-jail.sh |
PostgreSQL setup, database, chessd service, optional log rotation and backups; rerun to upgrade |
| 5 | Bastille host | nginx-chess.conf |
nginx locations for /chess/api/, /chess/health, and the /chess short link |
| 6 | Jail, once | chess-server db user add -username <name> |
First account (see the guide) |
Linux with systemd
Full guide: doc/deployment-linux.md (Debian, Ubuntu, Arch; PostgreSQL 17+ already running).
| Order | Where | Step | Purpose |
|---|---|---|---|
| 1 | Host | make server |
Static bin/chess-server |
| 2 | Host (root) | CHESS_BINARY=bin/chess-server linux/setup.sh |
Account, database, chessd systemd service, key, optional backup timer; rerun to upgrade |
| 3 | Host (root) | chess-db user add -username <name> |
First account |
| 4 | nginx | nginx-chess.conf with 127.0.0.1:8080 |
Optional reverse proxy |
Files
postgresql/setup.sql— role, database, and schema (owner or split mode)postgresql/chess-backup.sh— nightlypg_dumpwith 14-day retentionnginx-chess.conf— nginx locations, with placeholdersfreebsd/rc.d/chessd—daemon(8)service scriptlinux/chessd.service— sandboxed systemd unit;linux/chess-backup.{service,timer}
Keep deployment-specific values (addresses, host names) in rc.conf,
/etc/chessd/chessd.env, and the nginx configuration, not in this repository.