
Aquí hay algunas notas sobre cómo hice que mi instancia de prueba de Discourse funcionara con Caddy Server.
Cosas geniales sobre Caddy:
-
SSL gratuito con Let’s Encrypt
-
HTTP2 y QUIC listos para usar
-
Más fácil de configurar que nginx
Contras:
- No está tan probado en batalla como apache, nginx y cia.
Cómo hacerlo
Preparando Discourse
Primero, necesitas aplicar estos cambios a tu app.yml:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
- "templates/web.socketed.template.yml" # <<<----- ESTO ES NUEVO
## Deja estos dos comentados
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
## Deja estos dos comentados
expose:
# - "8080:80" # http
# - "443:443" # https
env:
## Esto debería estar comentado
#LETSENCRYPT_ACCOUNT_EMAIL: mymail@gmail.com
## Esto es necesario para evitar advertencias de contenido mixto cuando está detrás de un proxy inverso
DISCOURSE_FORCE_HTTPS: true
Preparando Caddy
En el espíritu de Discourse, pongamos a Caddy también en una imagen de Docker ![]()
Primero prepara con:
mkdir -p /var/caddy/data /var/caddy/config
nano /var/caddy/Caddyfile
Añade lo siguiente al Caddyfile (usando sintaxis de Caddy v2):
{
email MYEMAILHERE@gmail.com
}
forum.example.com { # tu dominio aquí
reverse_proxy unix//sock/nginx.http.sock
}
Guarda y sal.
Probemos
Ahora necesitas reconstruir Discourse:
cd /var/discourse
./launcher rebuild app
Y luego ejecuta Caddy:
docker run -d \
-v /var/caddy/Caddyfile:/etc/caddy/Caddyfile \
-v /var/caddy/data:/data \
-v /var/caddy/config:/config \
-v /var/discourse/shared/standalone:/sock \
-p 80:80 -p 443:443 \
-p 443:443/udp \
--restart=always \
--name caddy \
caddy:latest
Después de todo, tu foro debería estar disponible en tu dominio, usando SSL + HTTP2 + QUIC. No puedes ser más hipster que eso.


