44 lines
2.0 KiB
YAML
44 lines
2.0 KiB
YAML
services:
|
|
repodructor:
|
|
image: gitea.nucleoriofrio.com/nucleo000/repodructor:latest
|
|
container_name: repodructor
|
|
restart: unless-stopped
|
|
volumes:
|
|
# Mount music directory from server
|
|
- /srv/repodructor/musica:/app/public/music:ro
|
|
environment:
|
|
- NODE_ENV=production
|
|
- NUXT_HOST=0.0.0.0
|
|
- NUXT_PORT=3000
|
|
networks:
|
|
- principal
|
|
labels:
|
|
# Habilitar Traefik
|
|
- "traefik.enable=true"
|
|
|
|
# Router
|
|
- "traefik.http.routers.musica-nucleoriofrio.rule=Host(`musica.nucleoriofrio.com`)"
|
|
- "traefik.http.routers.musica-nucleoriofrio.entrypoints=websecure"
|
|
- "traefik.http.routers.musica-nucleoriofrio.tls.certresolver=letsencrypt"
|
|
|
|
# Middlewares (orden: auth -> headers -> body-size)
|
|
- "traefik.http.routers.musica-nucleoriofrio.middlewares=authentik-forward-auth@file,musica-headers,musica-body-size"
|
|
|
|
# Middleware: Headers personalizados
|
|
- "traefik.http.middlewares.musica-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
|
|
- "traefik.http.middlewares.musica-headers.headers.customrequestheaders.X-Forwarded-Scheme=https"
|
|
- "traefik.http.middlewares.musica-headers.headers.customresponseheaders.X-Frame-Options=SAMEORIGIN"
|
|
- "traefik.http.middlewares.musica-headers.headers.customresponseheaders.X-Content-Type-Options=nosniff"
|
|
- "traefik.http.middlewares.musica-headers.headers.customresponseheaders.X-XSS-Protection=1; mode=block"
|
|
- "traefik.http.middlewares.musica-headers.headers.customresponseheaders.Cache-Control=public, max-age=3600"
|
|
|
|
# Middleware: Tamaño máximo de body (100MB para subir archivos)
|
|
- "traefik.http.middlewares.musica-body-size.buffering.maxrequestbodybytes=104857600"
|
|
|
|
# Service
|
|
- "traefik.http.services.musica-nucleoriofrio-service.loadbalancer.server.port=3000"
|
|
- "traefik.http.services.musica-nucleoriofrio-service.loadbalancer.passhostheader=true"
|
|
|
|
networks:
|
|
principal:
|
|
external: true |