Files
voice-cat/docs/deployment.md
T
Talon 08e6c5930a
Build and test / test (macos-latest) (push) Canceled after 0s
Build and test / test (ubuntu-24.04) (push) Canceled after 0s
Build and test / test (windows-latest) (push) Canceled after 0s
Build and test / apple-client (push) Canceled after 0s
Retire legacy implementations and flatten managed layout
2026-09-21 00:11:32 +02:00

36 lines
1.3 KiB
Markdown

# Server deployment
Publish a locked, self-contained server from the repository root:
```powershell
./scripts/publish-server.ps1
./scripts/publish-server.ps1 -Runtime linux-x64
./artifacts/server/win-x64/VoiceCat.Server.exe --help
```
The default endpoint is TCP and UDP port 8384. The server creates its TLS identity and SQLite
database in the data directory. Account passwords are accepted only through a hidden prompt,
redirected standard input, or `VOICECAT_ADMIN_PASSWORD`; they are never command arguments.
```powershell
./artifacts/server/win-x64/VoiceCat.Server.exe account add Operator --admin --data-dir ./voicecat-data
./artifacts/server/win-x64/VoiceCat.Server.exe --data-dir ./voicecat-data --allow-guests false
```
The checked-in `Dockerfile` builds the managed Linux server. `docker-compose.yml` runs it as a
non-root user with a read-only filesystem, persistent `/data`, and TCP/UDP 8384 exposed.
For a host installation, `deploy/linux/install.sh` installs a published Linux binary and the
systemd unit. Validate a published binary with:
```bash
sh deploy/linux/smoke.sh artifacts/server/linux-x64/VoiceCat.Server
```
The server exposes `--health-check host:port` for TLS-aware probes. Before release, run the
container and the concurrent client soak:
```powershell
./scripts/soak-server.ps1 -HostName 127.0.0.1 -Port 8384 -Minutes 30 -Pairs 4
```