Files
wh40k-points-comparator/docker-compose.yml
root 38bffa491c Initial commit: WH40K Points Comparator
- React + MUI DataGrid app with faction filter, search, change filter
- Biggest movers cards (drops/rises) scoped to current filter view
- Historical points graph modal (5 MFM versions: 1.14 → current)
- URL state sync (faction, dir, q params — shareable URLs)
- Grimdark favicon + OG embed image (Google Imagen)
- Multi-stage Dockerfile (node build → nginx serve)
- docker-compose.yml with Traefik + Cloudflare TLS
- Data pipeline: build_deduped_data.py merges PDF + live scrape
- Ynnari merged into Aeldari (shared codex)
- Mobile responsive: flex columns, no fixed pixel widths
- Color semantics: green=cheaper, red=costlier (consistent everywhere)
- 1,449 units across 31 factions
2026-06-18 02:42:29 +00:00

38 lines
1.1 KiB
YAML

# WH40K Points Comparator — Docker Compose
# Multi-stage Dockerfile builds the React app and serves via nginx.
#
# Usage:
# 1. Edit HOST below to match your domain
# 2. Edit CERT_RESOLVER to match your Traefik cert resolver
# 3. docker compose up -d --build
#
# If you don't use Traefik, remove the labels and expose a port directly:
# ports:
# - "8080:80"
services:
wh40k-site:
build:
context: .
dockerfile: Dockerfile
image: wh40k-site:latest
container_name: wh40k-site
restart: unless-stopped
# Direct port access (uncomment if not using Traefik):
# ports:
# - "8080:80"
networks:
- hermes-net
labels:
- "traefik.enable=true"
- "traefik.docker.network=hermes-net"
- "traefik.http.routers.wh40k-site.entrypoints=websecure"
- "traefik.http.routers.wh40k-site.rule=Host(`wh40k.damascusfront.net`)"
- "traefik.http.routers.wh40k-site.tls=true"
- "traefik.http.routers.wh40k-site.tls.certresolver=cloudflare"
- "traefik.http.services.wh40k-site.loadbalancer.server.port=80"
networks:
hermes-net:
external: true
name: hermes-net