Add Docker deployment with automatic HTTPS
Deploy game to GitHub Pages / deploy (push) Failing after 21m51s

A two-stage image runs the tests and builds the game with Node, then
serves dist/ with Caddy, which obtains and renews Let's Encrypt
certificates for robotmarkets.ir (configurable via SITE_ADDRESS).
HTTPS is required for installing the PWA and for GPS mode.

- Caddyfile: gzip/zstd, long-lived caching for hashed assets, no-cache
  for the page, service worker and manifest, SPA fallback, permissions
  policy for location and motion sensors
- docker-compose.yml: ports 80/443, persistent certificate volumes
- README: server setup, updates, running behind an existing proxy, and
  workarounds when Docker Hub is unreachable from servers in Iran

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 09:59:01 +03:30
co-authored by Claude Opus 5.5
parent 2f74788caa
commit 47b2b72ea9
5 changed files with 94 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
services:
game:
build: .
image: robot-market-game:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
environment:
# Point these domains' DNS A records at the server before the first start.
SITE_ADDRESS: ${SITE_ADDRESS:-robotmarkets.ir, www.robotmarkets.ir}
volumes:
# Keeps the HTTPS certificates across restarts and image updates.
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config: