# docker/portainer-stack.yml — Portainer stack for the SQLite/server build.
# Deploys the prebuilt image from the local registry (built + pushed by Jenkins).
# Paste into Portainer's web editor (Stacks -> Add stack -> Web editor).
#
# TLS is terminated by the external nginx, which should reverse_proxy to
# http://<docker-host>:8080  (and pass the WebSocket upgrade headers for /ws).
services:
  app:
    image: thinkserver:5000/ttrpg-tracker-sqlite:latest
    container_name: ttrpg-tracker
    ports:
      - "8080:80"                     # host:container — nginx upstream is :8080
    volumes:
      - app-data:/data                # SQLite DB lives here; back this up
    environment:
      - DB_PATH=/data/tracker.sqlite
      - PORT=4001                     # node backend port (internal; caddy proxies to it)
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://localhost:80/"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s

volumes:
  app-data:
