feat(deploy): Docker + Linux server deployment
Some checks failed
Build Linux Binaries / linux/amd64 (push) Has been cancelled
Build Linux Binaries / linux/arm64 (push) Has been cancelled

Multi-stage Dockerfile (builder → export → runtime) producing a 149 MB
Ubuntu 24.04 image, verified booting end-to-end on Docker Desktop.  vcpkg
fetched via shallow git fetch at the pinned baseline, release-only overlay
triplets (x64-linux, arm64-linux) to halve intermediate disk usage, and
buildtrees deleted within the RUN layer so they never land in the image or
the BuildKit cache.  Binary cache mount (VCPKG_BINARY_SOURCES) makes
subsequent rebuilds restore pre-built packages instead of recompiling.

Also adds:
- docker-compose.yml for one-command local deploy
- .dockerignore (excludes clients/, build/, .git/)
- .github/workflows/build-linux.yml — CI cross-build for amd64 + arm64
  with downloadable artifacts (primary path for building from Windows)
- scripts/build-linux-binaries.sh — local Docker binary extraction fallback
- deploy/linux/voicecat.service — hardened systemd unit for bare-metal
- cmake/voicecat-toolchain.cmake now auto-wires VCPKG_OVERLAY_TRIPLETS

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-21 19:51:43 +02:00
parent 6071c8e238
commit 4f89d2d32d
10 changed files with 391 additions and 0 deletions

16
docker-compose.yml Normal file
View File

@@ -0,0 +1,16 @@
services:
voicecat:
build: .
image: ghcr.io/org/voicecat:latest
container_name: voicecat
restart: unless-stopped
ports:
- "8384:8384/tcp"
- "8384:8384/udp"
volumes:
- voicecat-data:/data
# Override CMD to customise the server name; add --no-guests to require accounts.
command: ["--data-dir", "/data", "--name", "My VoiceCat Server"]
volumes:
voicecat-data: