Readeck + Traefik
Requerimientos previos
- Docker instalado
- Instancia de Traefik instalada y corriendo
- Red de Docker creada para conectar contenedor con Traefik
- Opcionalmente, usa un middleware configurado en Traefik:
- autodetectContenttype@file
Pasos
- Preparar dominio/subdominio de la instancia a configurar
- Crear archivos de configuración
- Cambiar valores de acuerdo a las necesidades de la instancia
- Levantar contenedor (docker composer up)
- Visitar aplicación y comprobar que esté funcionando correctamente
Archivos de configuración
.env
INSTANCE_PORT=8000
INSTANCE_DOMAIN=ejemplo.com
VOLUME_PATH=/var/www/ejemplo.com
MAIL_HOST=smtp.ejemplo.com
MAIL_PORT=587
MAIL_USERNAME=ejemplo
MAIL_PASSWORD=xyz123
MAIL_ENCRYPTION=TLS
MAIL_FROM=ejemplo@ejemplo.com
MAIL_FROMNOREPLY=ejemplo@ejemplo.com
compose.yaml
En la configuración de entrypoints
y certresolver
cambiar de acuerdo a los valores configurados en Traefik.
services:
readeck:
image: codeberg.org/readeck/readeck:latest
container_name: readeck
restart: unless-stopped
environment:
- READECK_SERVER_HOST=0.0.0.0
- READECK_SERVER_PORT=${INSTANCE_PORT}
- READECK_SERVER_PREFIX=/
- READECK_ALLOWED_HOSTS=${INSTANCE_DOMAIN}
- READECK_PUBLIC_SHARE_TTL=2160
- READECK_MAIL_HOST=${MAIL_HOST}
- READECK_MAIL_PORT=${MAIL_PORT}
- READECK_MAIL_USERNAME=${MAIL_USERNAME}
- READECK_MAIL_PASSWORD=${MAIL_PASSWORD}
- READECK_MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
- READECK_MAIL_FROM=${MAIL_FROM}
- READECK_MAIL_FROMNOREPLY=${MAIL_FROMNOREPLY}
volumes:
- ${VOLUME_PATH}/data:/readeck
networks:
- traefik_network
labels:
- "traefik.enable=true"
- "traefik.http.routers.readeck.rule=Host(`${INSTANCE_DOMAIN}`)"
- "traefik.http.routers.readeck.entrypoints=https"
- "traefik.http.routers.readeck.tls=true"
- "traefik.http.routers.readeck.tls.certresolver=tls"
- "traefik.http.routers.readeck.middlewares=autodetectContenttype@file"
- "traefik.http.services.readeck.loadbalancer.server.port=${INSTANCE_PORT}"
- "traefik.http.services.readeck.loadbalancer.passHostHeader=true"
healthcheck:
test: ["CMD", "/bin/readeck", "healthcheck", "-config", "config.toml"]
interval: 60s
timeout: 2s
retries: 3
networks:
traefik_network:
external: true