702 - Arcane ha cambiado mi forma de usar Docker

702 - Arcane ha cambiado mi forma de usar Docker

#arcane es la herramienta que estabas buscando para gestionar tus contenedores, volúmenes, redes e imágenes #docker así como crear tus plantillas

1:25
-3:15

Hace poco mas de quince episodios te hablé del que, para mi, era el flash killer de Portainer, refiriéndome a Dockge, y hoy te traigo otra herramienta que es el flash killer de ambos dos, o por lo menos esa es mi opinión. Como de costumbre, todo es cuestión de gustos. Hay quien le gusta una herramienta que le permita hacer cualquier cosa y otros que optan por una herramienta que siga la filosofía KISS (Keep It Simple, Stupid). Sin embargo, yo prefiero una herramienta que se adapte a mi flujo de trabajo, es decir, que tenga todo aquello que necesito, y en este caso Arcane es la herramienta que andaba buscando. Básicamente, ya no puedo gestionar Docker sin Arcane. Bueno, realmente si que lo hago, pero desde terminal…

Arcane ha cambiado mi forma de usar Docker

Un paseo por el pasado reciente

En el episodio 685 que titulé Adios Portainer. Dockge lo destrona, te hablé de un interfaz gráfico muy sencillo, que te permitía gestionar Docker. Aunque no exactamente así. Lo cierto es que solo te permitía gestionar los stacks que habías levantado utilizando Dockge.

Habiendo probado Portainer, lo que realmente me fascinaba de Dockge es que era tremendamente sencillo. No estaba recargado con decenas o cientos de opciones. Hacía poco, pero lo poco que hacía lo hacía bien…

Sin embargo, tal y como te expuse en el propio episodio, lo cierto es que realmente hacía muy poco. Simplemente lo que te he mencionado anteriormente.

Por el contrario, no te permitía ni gestionar contenedores, ni imágenes, ni redes, ni siquiera volúmenes. Es decir está realmente limitado, para cuestiones que no estén relacionadas directamente con las pilas que despliegas. Sin embargo, para esto, es probablemente la mejor solución.

Arcane

Pero, ¿qué es Arcane? Pues bien, Arcane es un gestor de Docker que se basa en la filosofía KISS, pero que además te permite gestionar todo lo que necesitas para trabajar con Docker. Es decir, no solo te permite gestionar los stacks, sino también los contenedores, las imágenes, las redes y los volúmenes. Básicamente, todo lo que echaba en falta en Dockge, lo tienes en Arcane.

Características de Arcane

Las características principales de Arcane son las siguientes,

  • Interfaz moderna y limpia. Una interfaz intuitiva y minimalista que hace que gestionar Docker sea tan fácil como navegar por una web bien hecha. Nada de menús recargados ni funciones escondidas.
  • Monitorización en tiempo real. Ves al momento el estado de tus contenedores, el uso de recursos, y los logs. Todo actualizándose en vivo, sin tener que recargar ni abrir mil pestañas.
  • Gestión completa de contenedores. Iniciar, detener, reiniciar o inspeccionar contenedores es cuestión de un clic. Todo al alcance, sin complicaciones.
  • Control de imágenes Docker. Puedes descargar nuevas imágenes directamente desde la interfaz, gestionarlas y eliminar lo que no necesites. Todo claro y visual.
  • Configuración de redes Docker. Crear redes personalizadas para tus contenedores es más fácil que nunca. Ideal para montar entornos aislados o complejos sin pelearte con la terminal.
  • Gestión de volúmenes. Crea y administra volúmenes de forma sencilla para mantener tus datos persistentes entre reinicios o recreaciones de contenedores.
  • Visualización de recursos. Gráficas muy claras para ver en tiempo real el consumo de CPU, memoria y red. Perfecto para saber si algo se está desmadrando o simplemente para tenerlo todo bajo control.

Instalación de Arcane

Como te puedes imaginar he instalado Arcane con Docker, utilizando el siguiente compose.yml,

services:
  arcane:
    image: ghcr.io/ofkm/arcane:latest
    container_name: arcane
    init: true
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - arcane-data:/app/data
    environment:
      APP_ENV: production
      PUBLIC_SESSION_SECRET: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
      PUID: 1000
      PGID: 1000
      PUBLIC_OIDC_ENABLED: true
      OIDC_CLIENT_ID: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      OIDC_CLIENT_SECRET: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      OIDC_REDIRECT_URI: "https://arcane.tuservidor.es/auth/oidc/callback"
      OIDC_AUTHORIZATION_ENDPOINT: "https://pocketid.tuservidor.es/authorize"
      OIDC_TOKEN_ENDPOINT: "https://pocketid.tuservidor.es/api/oidc/token"
      OIDC_USERINFO_ENDPOINT: "https://pocketid.tuservidor.es/api/oidc/userinfo"
      OIDC_SCOPES: "openid email profile"
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.services.arcane.loadbalancer.server.port=3000
      - traefik.http.routers.arcane.entrypoints=https
      - traefik.http.routers.arcane.rule=Host(`arcane.tuservidor.es`)

volumes:
  arcane-data: {}

networks:
  proxy:
    external: true

Algunos detalles interesantes a destacar, es la generación del secreto de sesión, que lo puedes hacer utilizando el siguiente comando,

openssl rand -base64 32

Y lo mas recomendable, al menos desde mi punto de vista, es el uso del OpenID Connect (OIDC), en este caso PocketID, del que te hablé en el episodio 698, titulado Autenticación sin contraseñas con Passkeys y PocketID. Es una auténtica comodidad.

Los agentes de Arcane

Los agentes de Arcane son aplicaciones ligeras escritas en Go que se ejecutan en servidores remotos para gestionar contenedores y stacks de Docker. Se comunican con tu instancia principal de Arcane a través de una API HTTP.

Actualmente, los agentes están en fase preview y pueden sufrir cambios importantes. Las APIs, los formatos de configuración y las funcionalidades pueden cambiar entre versiones sin previo aviso. Se recomienda tener precaución al usarlos en entornos de producción, ya que la documentación podría no cubrir todas las opciones disponibles.

Trabajando con contenedores

Llegados a este punto te preguntarás qué puedes hacer con los contenedores en Arcane,

  • Ver todos tus contenedores. Tienes una vista completa de todos los contenedores de tu host Docker: nombres, IDs, imágenes que usan y su estado actual (si están corriendo, parados, etc.). Todo de un vistazo.
  • Crear nuevos contenedores. Puedes lanzar contenedores directamente desde imágenes existentes, rellenando un formulario guiado. Le pones nombre, eliges la imagen, configuras puertos, volúmenes, variables de entorno… y listo.
  • Iniciar, detener o reiniciar contenedores. Control total con un solo clic. No necesitas terminal ni comandos raros para gestionar el ciclo de vida de tus servicios.
  • Inspeccionar en detalle. Si haces clic en un contenedor, puedes ver toda su configuración: red, montajes, variables, logs, y más. Perfecto para entender qué está pasando o depurar errores.
  • Eliminar contenedores. Puedes borrar los contenedores que ya no uses. Eso sí, solo si están detenidos… a menos que uses la opción forzar.
  • Ver los logs. Puedes acceder fácilmente a los logs de salida y de error de cada contenedor. Ideal para detectar fallos, errores o simplemente ver qué está haciendo tu servicio.

Sobre las imágenes

De la misma manera que trabajas con contenedores, también lo puedes hacer con imágenes. Así tienes una vista de imágenes, donde verás el listado de cada una de ellas con información relativa a las etiquetas, tamaño y cuando fueron creadas cada una de ellas.

Además puedes realizar distintas acciones como descargar nuevas imágenes de Docker Hub o de cualquier otro registry. Puedes inspeccionar las distintas imágenes, haciendo click en la imagen para ver todos los detalles de la misma. Puedes borrar aquellas imágenes que no necesites o incluso hacer un prune para eliminar todas las imágenes que no se utilizan y liberar espacio de disco.

Otras operaciones

Al igual que te acabo de decir con contenedores e imágenes, también puedes hacer todas las operaciones mas habituales con redes y volúmenes. Así tienes un listado de todas las redes Docker en tu sistema, donde encontrarás información sobre los drivers que utiliza y las subredes. Puedes crear nuevas redes eligiendo todas las características de la misma, y de la misma manera podrás inspeccionar las redes existentes o eliminarlas del sistema.

Y de la misma forma, puedes trabajar con los volúmenes. Tienes a tu disposición un listado completo de todos los volúmenes que hay en tu sistema, con los detalles de cada uno de ellos, relativos a nombre, driver y uso. Y por supuesto, también podrás crear o eliminar los volúmenes según necesites.

La joya de la corona, la gestión de pilas o stacks

Lo mas interesante de todo esto, es sin lugar a dudas la gestión de stacks o pilas. Un stack o pila, no es ni mas ni menos que una colección de servicios definidos en un compose.yml. Aquí es donde Arcane, gana en potencia, por que te permite realizar todo tipo de operaciones con las pilas.

Con Arcane puedes gestionar tus stacks de Docker de forma sencilla e intuitiva. Desde la interfaz puedes ver tanto los stacks que tú mismo has creado como aquellos que ya existen en tu sistema pero que aún no están gestionados por Arcane. Es decir, puedes tener una visión completa y centralizada de todos tus servicios orquestados con Docker Compose.

Crear un stack es tan fácil como ponerle un nombre y pegar el contenido de tu archivo compose.yaml. Arcane se encarga del resto. Además, incluye un editor integrado para el archivo .env, así que puedes gestionar variables de entorno sin salir de la interfaz. Esto es especialmente útil cuando tienes diferentes entornos de desarrollo, pruebas o producción, y necesitas cambiar parámetros sin complicarte.

Por supuesto, puedes iniciar, detener, reiniciar o redeplegar un stack completo con un solo clic. Esto significa que puedes lanzar o apagar todos los servicios que lo componen de forma inmediata, sin tocar la terminal. Y si quieres que Arcane tire de las últimas versiones de tus imágenes, puedes hacer un redeploy para que lo actualice todo automáticamente.

También puedes editar y actualizar tus stacks cuando quieras: cambiar el nombre, actualizar el fichero compose.yaml, modificar variables… todo desde la propia interfaz. Y si ya no necesitas un stack, puedes eliminarlo completamente. Incluso puedes importar stacks externos aquellos que ya tienes funcionando con Docker Compose pero que aún no están bajo el control de Arcane y empezar a gestionarlos desde su panel, sin tener que rehacer nada.

Un detalle importante es que las variables que defines en los .env, las utilizas en el compose.yml. Si las quieres utilizar en cada uno de los servicios tienes que utilizar env_file como en el ejemplo siguiente,

services:
  web:
    image: nginx:latest
    env_file:
      - .env

Si te preguntas donde se guarda la información de tus stacks, indicarte que la puedes encontrar, por defecto, en el directorio /app/data/stacks. Allí están tanto los compose.yml como los .env como la meta información necesaria. Por esto, es importante crear un volumen para este directorio que te permita darle persistencia.

Las plantillas

Otra característica fundamental y que seguro que le vamos a sacar mucho partido, son las plantillas. Pero, ¿Que es una plantilla?. Las plantillas son combinaciones de compose.yml y .env que se encuentran en un registro para su uso. Es decir, en lugar de que tu crees esos archivos, estos están ya a tu disposición para que los puedes utilizar. Simplemente tendrás que cambiar algunos pocos datos para que se adapten a tus necesidades.

Puedes usar tanto plantillas locales que tienes guardadas en tu equipo como plantillas remotas alojadas en registros comunitarios. Esto te permite reutilizar configuraciones conocidas o compartir despliegues con otros usuarios. El proceso es tan fácil como crear un nuevo stack, elegir una plantilla, personalizar los parámetros y lanzarlo.

Las plantillas locales están guardadas en el directorio data/templates/compose/ de tu sistema. Son ideales para configuraciones personalizadas o servicios que sueles usar con frecuencia. Como están almacenadas localmente, siempre están disponibles, incluso si no tienes conexión a Internet. Por otro lado, las plantillas remotas provienen de registros online, mantenidos por la comunidad. Puedes usarlas directamente desde la nube o descargarlas para tenerlas disponibles sin conexión.

Cuando haces clic en Elegir plantilla, Arcane te muestra un cuadro de diálogo con las opciones disponibles. Las plantillas locales se pueden usar de inmediato, mientras que las remotas te ofrecen dos opciones: “Usar ahora”, que carga el contenido directamente en tu nuevo stack, o Descargar, que guarda la plantilla para usarla más adelante. Si una plantilla incluye un archivo .env con variables de entorno preconfiguradas, verás un distintivo ENV, lo que te indica que puedes personalizar fácilmente esos valores antes de desplegar.

Actualmente estoy trabajando en un registro arcane-templates, para ir añadiendo todas las plantillas que utilizo y utilizarlas de esta forma de una manera mucho mas sencilla. Indicar que están pensadas para utilizarlas con Traefik.

Algunos detalles finales

Si que me he encontrado algún detalle extraño con el uso de Arcane. Por ejemplo, con el uso de las plantillas, no puedo utilizar un array de etiquetas, si no que tiene que ser un diccionario.

Otro detalle, es que cuando actualizo el repositorio con las plantillas, esta no se actualiza en Arcane, y tengo que reiniciar el contenedor. Esto, tengo que investigarlo con mas detalla y reportarlo a su creador, por que es un verdadero incordio.

Conclusiones

Dockge, ya fue una revolución para mi, en el sentido que me permitía hacer muchas de las operaciones que necesito desde una interfaz web limpia y sencilla, y sin las complicaciones de otras herramientas. Sin embargo, tal y como expliqué en su momento, Dockge adolecía de algunas características que para mi eran necesarias, como la gestión de contenedores, imágenes, redes y volúmenes. Y a pesar de eso, fue una mas que interesante solución.

Sin embargo, descubrir Arcane ha sido toda una suerte, porque me permite hacer todo lo que hacía Dockge y mucho mas. Es decir, no solo puedo gestionar los stacks, sino también los contenedores, las imágenes, las redes y los volúmenes. Todo desde una interfaz web limpia, sencilla y muy intuitiva.


Más información,

2 comentarios en “Arcane ha cambiado mi forma de usar Docker

  1. DA
    David hace 23 horas

    Hola, Lorenzo.
    Me parece muy interesante.
    Muchas gracias x compartir.

  2. AR
    arturios hace 20 horas

    Mira, lo he puesto en el servidor y me ha servido para limpiar cosas que tenía pendientes en volúmenes sin usar, gracias, se está haciendo cómodo esto de docker para los profanos gracias a herramientas como esta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *