A veces no deseas que el público general pueda acceder a tu instancia de Discourse todavía, como cuando estás preparando un sitio para una migración.
NOTA: He tenido algunos problemas recientemente con la autenticación básica, en los que algunos activos estáticos no se cargaban. Podría ser más fácil simplemente configurar tu sitio para login_required agregando DISCOURSE_LOGIN_REQUIRED: true en la sección env de tu app.yml.
La siguiente configuración mostrará un simple cuadro de diálogo de confirmación del navegador que solicita nombre de usuario y contraseña, común para todos los visitantes, el cual será obligatorio antes de que puedan acceder al sitio.
Nota: Los usuarios aún deberán realizar el registro y el inicio de sesión normales de Discourse.
Credenciales de autenticación básica
Generar contraseña encriptada
htpasswd -bn =username= =password=
Nota: Necesitarás htpasswd para esto. En Ubuntu/Debian, está en apache2-utils. Si tienes acceso a otra máquina con htpasswd instalado, puedes ejecutarlo allí. Si tu objetivo es simplemente mantener alejados a los motores de búsqueda, no hay razón para no usar la contraseña de ejemplo aquí.
El usuario/contraseña encriptado va aquí
Agregar a app.yml
# autenticación básica
after_bundle_exec:
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "# auth_basic on"
to: "auth_basic on"
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "# auth_basic_user_file /etc/nginx/htpasswd"
to: "auth_basic_user_file /etc/nginx/htpasswd"
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "location = /srv/status {"
to: "location = /srv/status {
auth_basic off;"
- file:
path: "/etc/nginx/htpasswd"
contents: |
=auth_string=
La sección after_bundle_exec modifica la configuración de nginx dentro del contenedor de Discourse. Cuando estés listo para ponerlo en producción, simplemente elimina esta sección y reconstruye.