feat(docker): add self-hosted all-in-one container setup

- Add Dockerfile (multi-stage build, unprivileged user, healthcheck),
  docker-compose.yml and .dockerignore
- Server now serves static dist/ frontend and WebSocket relay on a
  single port (PORT, default 3001) with path-traversal protection,
  immutable asset caching and SPA fallback
- Client connects via same origin in production; dedicated ws port is
  only used for vite dev/preview
- Document Docker usage, env vars and manual production mode in README
This commit is contained in:
Tronax 2026-08-16 12:15:52 +02:00
parent c4347f8420
commit b506ffad55
Signed by: Tronax
SSH key fingerprint: SHA256:2pKKXDZucWvaF/GzXNz0FY53EAO1YDLN80bqS+TTz/o
6 changed files with 235 additions and 31 deletions

10
docker-compose.yml Normal file
View file

@ -0,0 +1,10 @@
services:
trxtd:
build: .
image: trxtd:latest
container_name: trxtd
ports:
- "3001:3001"
restart: unless-stopped
environment:
- PORT=3001