Asistente de configuración
Docker OnlyUna instalación nueva de Dozzle se abre con un breve asistente de configuración. Te guía por las pocas cosas que casi todo el mundo cambia justo después de instalar: activar el inicio de sesión, permitir acciones sobre contenedores y acceso a la shell, añadir otros hosts y conectar Dozzle Cloud. Todo lo que guarda también se puede definir con flags o variables de entorno, así que el asistente es opcional. Todo lo que hace también está en Configuración: Seguridad para el inicio de sesión, las acciones y la shell, Hosts, Actualizaciones y Dozzle Cloud. El asistente solo recorre esas mismas páginas en orden.
El asistente solo aparece en una instalación nueva en modo servidor. Los despliegues de Swarm y Kubernetes nunca lo muestran. Sus ajustes muestran el inicio de sesión, las acciones, la shell y los hosts en solo lectura. Puedes volver a ejecutar el asistente cuando quieras desde Configuración → Acerca de.
En entornos desechables que se crean y se destruyen a menudo, define DOZZLE_DISABLE_SETUP_WIZARD=true para que el asistente nunca se abra solo. Aún se puede ejecutar desde Configuración → Acerca de.
Pasos
1. Inicio de sesión
El inicio de sesión va primero, para que no se pueda cambiar nada más en una instancia a la que cualquiera puede acceder.
Primero, el asistente comprueba que /data está montado en un volumen. Los ajustes y los usuarios se guardan ahí, y sin un volumen desaparecerían la próxima vez que se recree el contenedor. Si /data no es persistente, el asistente muestra cómo montarlo y espera a que pulses Comprobar de nuevo.
services:
dozzle:
image: amir20/dozzle:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- dozzle_data:/data
ports:
- 8080:8080
volumes:
dozzle_data:Cuando /data es persistente, elige una de estas tres opciones:
- Cuenta de Dozzle crea un único usuario con nombre de usuario, email opcional y contraseña. Dozzle escribe
/data/users.ymly defineauthProvider: simple. Consulta Autenticación simple para añadir más usuarios o roles más adelante. - Mi proxy es para Authelia, Authentik, Cloudflare Access y similares. Dozzle confía en la cabecera
Remote-User, así que publica solo el proxy y nunca el puerto de Dozzle. Esto defineauthProvider: forward-proxy. Consulta Proxy inverso. - OIDC muestra un enlace a la guía de OpenID Connect y las variables de entorno que hay que añadir. OIDC necesita un client secret, así que aquí no se escribe nada y lo configuras tú.
Si Dozzle solo es accesible desde tu propia red, Continuar sin inicio de sesión se salta este paso.
Después de guardar una cuenta o un proxy, Dozzle se reinicia en el acto para que el inicio de sesión esté activo antes de cambiar cualquier otra cosa. Llegas a la página de inicio de sesión y, al entrar, el asistente continúa con el siguiente paso. Configuración → Seguridad ofrece la misma elección mientras no haya inicio de sesión configurado, y muestra el proveedor cuando ya lo hay.
2. Acciones y shell
Dos interruptores controlan lo que Dozzle puede hacer con tus contenedores:
- Iniciar, detener y reiniciar activa las acciones sobre contenedores (
enableActions). - Shell activa la posibilidad de conectarse y ejecutar comandos dentro de los contenedores (
enableShell). Está desactivado por defecto. El acceso a la shell de un contenedor suele equivaler a acceso al host, así que actívalo solo si lo necesitas.
Si un ajuste ya está fijado por un flag o una variable de entorno, su interruptor es de solo lectura y lo indica. Igual que el inicio de sesión, estos interruptores necesitan /data en un volumen, así que siguen en solo lectura hasta que lo esté. Los mismos interruptores están en Configuración → Seguridad, donde cada cambio se guarda al momento.
3. Hosts
Dozzle puede mostrar contenedores de otras máquinas mediante agentes. Este paso muestra el archivo compose que debes ejecutar en la otra máquina y luego pide la dirección del agente, por ejemplo 10.0.0.5:7007, y un nombre opcional. Añadir host se conecta al agente antes de guardar nada, así que una dirección equivocada o un certificado que no coincide se ve al momento. En cuanto se conecta, el host aparece en la barra lateral sin reiniciar.
Los agentes definidos con DOZZLE_REMOTE_AGENT aparecen bloqueados y solo se pueden quitar desde tu archivo compose. Los agentes añadidos aquí se pueden quitar desde la misma lista. Ahora no salta el paso, y el mismo panel sigue disponible después en Configuración → Hosts y desde Añadir host al final de la lista de hosts.
4. Dozzle Cloud
Dozzle Cloud envía alertas en cuanto algo falla, un resumen cada mañana de lo que hay que arreglar y guarda un historial que sobrevive a los reinicios. Conectar Dozzle Cloud vincula esta instancia y Ahora no sigue adelante. Este paso se omite si la instancia ya está vinculada o si no tienes permiso para vincularla.
5. Actualización automática
Dozzle puede mantenerse al día, y también tus contenedores. Elige Desactivada, Diaria o Semanal (la semanal se ejecuta el domingo) y una hora del día. La hora es la local del servidor y por defecto es 03:00. A esa hora Dozzle busca imágenes más recientes y actualiza solo lo que cambió, él mismo el último.
Qué contenedores decide qué más actualiza la programación: Solo Dozzle, Contenedores con etiqueta (por defecto, los que llevan la etiqueta dev.dozzle.update=auto) o Todo. Consulta Actualizar contenedores automáticamente.
Estos ajustes se aplican al momento y no necesitan reinicio. También están en Configuración → Actualizaciones, junto a Actualizar ahora y la lista de contenedores que actualizará la programación, donde cada cambio se guarda en cuanto lo haces.
Actualizar es una acción, así que mientras las acciones están desactivadas este paso sigue en la lista, pero en gris y marcado con Requiere acciones. Activar las acciones en el paso 2 lo habilita al momento. Si esta instancia no puede actualizarse sola por otro motivo (por ejemplo, porque usa un tag de versión fijo), el paso indica el motivo. La programación se puede configurar igualmente, y los demás contenedores la siguen.
6. Reinicio
El último paso lista los cambios guardados que todavía no están en uso. Reiniciar Dozzle reinicia el contenedor, espera a que vuelva y recarga la página. Si no hay nada pendiente, el paso solo indica que has terminado.
Si Dozzle no puede reiniciarse solo (por ejemplo, cuando no encuentra su propio contenedor), el asistente muestra en su lugar las variables de entorno que puedes añadir a tu archivo compose. Configuración muestra lo mismo en cada página mientras haya cambios esperando: un aviso que los cuenta, con Reiniciar Dozzle o esas líneas.
Dónde se guardan los ajustes
El asistente guarda lo que eliges en /data/dozzle.yml. Dozzle lee este archivo una sola vez al arrancar, por eso los cambios necesitan un reinicio. Dozzle se reinicia solo desde el asistente, así que no tienes que hacerlo a mano. Las claves de actualización automática son la excepción: Dozzle las vuelve a leer cada minuto, así que se aplican sin reiniciar. remoteAgents es la otra excepción: los hosts se conectan en cuanto se añaden.
authProvider: simple
enableActions: true
enableShell: false
autoUpdate: weekly
autoUpdateTime: "03:00"
updateContainers: labelled
remoteAgents:
- 10.0.0.5:7007|nas
privateAgents:
- 10.0.0.5:7007|nas| Clave | Valores | Equivale a |
|---|---|---|
authProvider | none, simple, forward-proxy | DOZZLE_AUTH_PROVIDER |
enableActions | true, false | DOZZLE_ENABLE_ACTIONS |
enableShell | true, false | DOZZLE_ENABLE_SHELL |
autoUpdate | off, daily, weekly | DOZZLE_AUTO_UPDATE |
autoUpdateTime | HH:MM, hora local del servidor | DOZZLE_AUTO_UPDATE_TIME |
updateContainers | off (solo Dozzle), labelled, all. Qué contenedores actualiza la programación. Si falta, labelled | DOZZLE_UPDATE_CONTAINERS |
remoteAgents | lista de direcciones de agentes | DOZZLE_REMOTE_AGENT |
privateAgents | agentes de remoteAgents que usan el certificado privado | ninguna |
Los flags y las variables de entorno siempre tienen prioridad sobre el archivo. Si DOZZLE_ENABLE_ACTIONS está definida, el valor de dozzle.yml se ignora y el asistente muestra el interruptor bloqueado. Para volver a gestionar un ajuste desde el asistente, quita la variable de tu archivo compose. remoteAgents funciona distinto: los agentes del archivo se suman a los de DOZZLE_REMOTE_AGENT en lugar de ser reemplazados por ellos.
Cómo se actualiza Dozzle a sí mismo
Dozzle se actualiza con la acción Update sobre su propio contenedor o con la programación de actualización automática. Las dos hacen lo mismo:
- Dozzle descarga el tag de imagen que está ejecutando. Si el tag sigue apuntando a la imagen en uso, se detiene ahí e informa de que está al día.
- Dozzle arranca, a partir de la nueva imagen, un contenedor auxiliar de corta duración con acceso al mismo socket de Docker. Unos segundos después Dozzle desaparece.
- El contenedor auxiliar renombra el contenedor antiguo y crea un reemplazo con el nombre original y la misma configuración, redes y volúmenes. Solo entonces detiene el contenedor antiguo y arranca el reemplazo. Los volúmenes anónimos también se conservan, así que los datos de
/datasobreviven aunque no haya un volumen con nombre. - El contenedor auxiliar espera a que el reemplazo siga en marcha (y sano, si tiene healthcheck). Si lo consigue, se elimina el contenedor antiguo sin tocar sus volúmenes, y la imagen anterior a la previa se limpia como tras cualquier otra actualización. Si no, se elimina el reemplazo y el contenedor antiguo recupera su nombre y vuelve a arrancar.
Los contenedores arrancados con --rm se actualizan igual. El contenedor antiguo se borra solo al detenerse, pero para entonces el reemplazo ya tiene sus volúmenes, así que se conservan. Si la actualización tiene que volver atrás, el contenedor auxiliar recrea el contenedor antiguo a partir de su configuración guardada.
Los logs del contenedor auxiliar son el único registro de una actualización. Se elimina solo al terminar, así que para seguir una, observa el contenedor dozzle-self-update-* mientras se ejecuta.
Algunas instalaciones no pueden actualizarse de esta forma:
- Las acciones tienen que estar activadas. La autoactualización necesita
DOZZLE_ENABLE_ACTIONS, y la acciónUpdatenecesita el rol de acciones cuando el inicio de sesión está activo. - En modo servidor, también como servicio de Swarm. Cuando Dozzle se ejecuta como tarea de un servicio de Swarm, no hay contenedor auxiliar: Dozzle pide al manager de Swarm que pase el servicio a la nueva imagen, y se aplican los ajustes de actualización y rollback de Swarm. Para eso Dozzle tiene que ejecutarse en un nodo manager. Con varias réplicas, solo la primera ejecuta la programación. Kubernetes y los agentes de Dozzle no se actualizan solos.
- Los tags de versión fijos nunca se actualizan. Descargar
amir20/dozzle:v8.12.0siempre devuelve la misma imagen, así que la actualización automática no está disponible y una actualización manual informa de que está al día. Usalatesto cambia el tag tú mismo.
Seguridad
- El inicio de sesión es el primer paso. Un reinicio tras guardar una cuenta o un proxy activa el inicio de sesión antes de que se pueda cambiar cualquier otro ajuste.
- Solo un usuario con sesión iniciada puede cambiar las acciones, la shell y la actualización automática, añadir o quitar hosts, o reiniciar Dozzle. El usuario necesita todos los roles. Configuración sigue las mismas reglas e indica por qué un valor es de solo lectura.
- Sin inicio de sesión, solo una instalación nueva tiene una ventana de 15 minutos. Cuando
authProvideresnone, estos ajustes solo se pueden cambiar durante los 15 minutos siguientes al primer arranque de una instalación nueva, es decir, una cuyo/dataestaba vacío. Una instalación que ya tiene datos de arranques anteriores nunca tiene la ventana, así que un reinicio del host o una actualización de la imagen no pueden abrirla. Fuera de la ventana, usa variables de entorno o activa el inicio de sesión. - Las rutas se siguen decidiendo al arrancar. El asistente solo escribe en
dozzle.yml. Los endpoints de acciones y shell se registran cuando Dozzle arranca, igual que con las variables de entorno, así que no se activa nada hasta que Dozzle se reinicia.