ruleta
This commit is contained in:
57
ruleta/docker-compose.yml
Normal file
57
ruleta/docker-compose.yml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
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.thehomelesssherlock.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: "authentik@docker"
|
||||||
|
# traefik.http.routers.ruleta-path.middlewares: "authentik@docker,ruleta-strip@docker"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
|
|
||||||
18
ruleta/stack.env
Normal file
18
ruleta/stack.env
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
##### Ruleta - App #####
|
||||||
|
RULETA_IMAGE=
|
||||||
|
RULETA_NODE_ENV=
|
||||||
|
RULETA_NEXT_TELEMETRY_DISABLED=
|
||||||
|
RULETA_APP_PORT=
|
||||||
|
|
||||||
|
# Supabase (opcional)
|
||||||
|
NEXT_PUBLIC_SUPABASE_URL=
|
||||||
|
NEXT_PUBLIC_SUPABASE_ANON_KEY=
|
||||||
|
SUPABASE_SERVICE_ROLE_KEY=
|
||||||
|
|
||||||
|
##### Traefik / dominios #####
|
||||||
|
TRAEFIK_DOCKER_NETWORK=
|
||||||
|
RULETA_SUBDOMAIN=
|
||||||
|
RULETA_MAIN_DOMAIN=
|
||||||
|
TRAEFIK_ENTRYPOINT_SECURE=
|
||||||
|
TRAEFIK_CERTRESOLVER=
|
||||||
|
|
||||||
Reference in New Issue
Block a user