Skip to content

Configuración de Traefik

Configurar tu proyecto Astro para que funcione con Traefik y obtener SSL automático.

Si tienes un dominio configurado apuntando a tu VPS:

Terminal window
# Editar /root/.env
vim /root/.env

Debería contener algo como:

DOMAIN_NAME=srv1160133.hstgr.cloud
SUBDOMAIN=n8n
CUSTOM_DOMAIN=electodata.es
GENERIC_TIMEZONE=Europe/Berlin
SSL_EMAIL=user@srv1160133.hstgr.cloud
Terminal window
# Editar el docker-compose.yml existente
vim /root/docker-compose.yml

Añadir este servicio después del servicio n8n (antes de la sección volumes:):

proyecto-astro:
build:
context: ./tu-proyecto-astro
dockerfile: Dockerfile
container_name: proyecto-astro
restart: unless-stopped
labels:
- traefik.enable=true
- traefik.http.routers.proyecto-astro.rule=Host(`astro.tudominio.com`)
- traefik.http.routers.proyecto-astro.tls=true
- traefik.http.routers.proyecto-astro.entrypoints=web,websecure
- traefik.http.routers.proyecto-astro.tls.certresolver=mytlschallenge
- traefik.http.services.proyecto-astro.loadbalancer.server.port=80

Cambiar:

  • ./tu-proyecto-astro por el nombre de tu carpeta
  • astro.tudominio.com por tu subdominio real
Terminal window
# Desde /root (donde está el docker-compose.yml)
cd /root
# Construir solo el servicio
docker compose build proyecto-astro
# Iniciar el servicio
docker compose up -d proyecto-astro
# Ver logs
docker compose logs -f proyecto-astro
# Verificar que está corriendo
docker ps
Terminal window
# Ver logs de Traefik (verás que genera el certificado SSL)
docker compose logs -f traefik
# Deberías ver líneas como:
# "Domains [\"astro.tudominio.com\"] need ACME certificates generation"
# "The ACME certificate for domains [astro.tudominio.com] has been generated"

Espera 1-2 minutos para que Traefik genere el certificado SSL.

Con dominio: https://astro.tudominio.com

Traefik redirige automáticamente HTTP → HTTPS y genera certificados SSL.

Si no tienes dominio todavía y quieres acceder por IP temporal:

proyecto-astro:
build:
context: ./tu-proyecto-astro
dockerfile: Dockerfile
container_name: proyecto-astro
restart: unless-stopped
ports:
- "3080:80" # Exponer puerto directamente
# Sin labels de Traefik por ahora

Accede a: http://tu-ip-vps:3080

Cuando tengas dominio, cambia la configuración para usar Traefik.

Terminal window
# Ver que el contenedor está corriendo
docker ps | grep proyecto-astro
# Probar desde el servidor
curl -I https://astro.tudominio.com
# Ver certificados de Traefik
sudo ls -la /var/lib/docker/volumes/traefik_data/_data/

Continúa con Actualización y Mantenimiento para gestionar actualizaciones del proyecto.