58 lines
2.2 KiB
YAML
58 lines
2.2 KiB
YAML
services:
|
|
# Aplicación Next.js
|
|
app:
|
|
image: ${RULETA_IMAGE}
|
|
container_name: ruleta-app
|
|
restart: unless-stopped
|
|
|
|
environment:
|
|
NODE_ENV: ${RULETA_NODE_ENV}
|
|
NEXT_TELEMETRY_DISABLED: ${RULETA_NEXT_TELEMETRY_DISABLED}
|
|
# Si usas Supabase, descomenta y configura:
|
|
# NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
|
|
# NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
|
|
# SUPABASE_SERVICE_ROLE_KEY: ${SUPABASE_SERVICE_ROLE_KEY}
|
|
|
|
networks:
|
|
- proxy
|
|
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.docker.network: "${TRAEFIK_DOCKER_NETWORK}"
|
|
|
|
# ---------------------------
|
|
# 1) Router EXISTENTE (subdominio)
|
|
# https://ruleta.example.com
|
|
# ---------------------------
|
|
traefik.http.routers.ruleta-sub.rule: "Host(`${RULETA_SUBDOMAIN}`)"
|
|
traefik.http.routers.ruleta-sub.entrypoints: "${TRAEFIK_ENTRYPOINT_SECURE}"
|
|
traefik.http.routers.ruleta-sub.tls.certresolver: "${TRAEFIK_CERTRESOLVER}"
|
|
traefik.http.routers.ruleta-sub.service: "ruleta"
|
|
|
|
# ---------------------------
|
|
# 2) Router NUEVO (.net + path)
|
|
# https://sherlockhomeless.net/ruleta
|
|
# ---------------------------
|
|
traefik.http.routers.ruleta-path.rule: "Host(`${RULETA_MAIN_DOMAIN}`) && PathPrefix(`/ruleta`)"
|
|
traefik.http.routers.ruleta-path.entrypoints: "${TRAEFIK_ENTRYPOINT_SECURE}"
|
|
traefik.http.routers.ruleta-path.tls.certresolver: "${TRAEFIK_CERTRESOLVER}"
|
|
traefik.http.routers.ruleta-path.service: "ruleta"
|
|
traefik.http.routers.ruleta-path.middlewares: "ruleta-strip@docker"
|
|
|
|
# Quita /ruleta antes de llegar a Next.js
|
|
traefik.http.middlewares.ruleta-strip.stripprefix.prefixes: "/ruleta"
|
|
traefik.http.middlewares.ruleta-strip.stripprefix.forceSlash: "true"
|
|
|
|
# Servicio interno (Next.js escucha en 3000)
|
|
traefik.http.services.ruleta.loadbalancer.server.port: "${RULETA_APP_PORT}"
|
|
|
|
# Proteger con Authentik (si quieres habilitarlo)
|
|
# OJO: si lo activas, ponlo en ambos routers o usa una cadena.
|
|
# traefik.http.routers.ruleta-sub.middlewares: "ths-authentik@docker"
|
|
# traefik.http.routers.ruleta-path.middlewares: "ths-authentik@docker,ruleta-strip@docker"
|
|
|
|
networks:
|
|
proxy:
|
|
external: true
|
|
|