veylant/web-public/docker-compose.yml
2026-03-13 13:16:35 +01:00

54 lines
2.3 KiB
YAML

# ─────────────────────────────────────────────────────────────────────────────
# Veylant IA — Public Site Stack (Landing + Documentation)
# Deploy this file in Portainer as a standalone stack.
#
# Variables to set in Portainer → Stacks → Environment:
# VITE_DASHBOARD_URL URL of the Veylant dashboard app (default: http://localhost:3000)
# VITE_PLAYGROUND_URL URL of the proxy playground (default: http://localhost:8090/playground)
# IMAGE_TAG Docker image tag to deploy (default: latest)
# ─────────────────────────────────────────────────────────────────────────────
version: "3.8"
services:
veylant-public:
image: ghcr.io/veylant/ia-public:${IMAGE_TAG:-latest}
# ── Build locally (comment out "image:" above and uncomment this block) ──
# build:
# context: .. # project root
# dockerfile: web-public/Dockerfile
# args:
# VITE_DASHBOARD_URL: ${VITE_DASHBOARD_URL:-http://localhost:3000}
# VITE_PLAYGROUND_URL: ${VITE_PLAYGROUND_URL:-http://localhost:8090/playground}
ports:
- "3001:80"
environment:
- VITE_DASHBOARD_URL=${VITE_DASHBOARD_URL:-http://localhost:3000}
- VITE_PLAYGROUND_URL=${VITE_PLAYGROUND_URL:-http://localhost:8090/playground}
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost/index.html"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
labels:
# Traefik labels — uncomment if using Traefik as reverse proxy
# - "traefik.enable=true"
# - "traefik.http.routers.veylant-public.rule=Host(`veylant.io`)"
# - "traefik.http.routers.veylant-public.entrypoints=websecure"
# - "traefik.http.routers.veylant-public.tls.certresolver=letsencrypt"
# - "traefik.http.services.veylant-public.loadbalancer.server.port=80"
com.veylant.service: "public-site"
com.veylant.version: "${IMAGE_TAG:-latest}"
networks:
default:
name: veylant-public-network