Saltar a contenido

Arcane

Sistema de gestión de contenedores Docker con interfaz web intuitiva. Permite gestionar, monitorear y controlar contenedores Docker de forma visual y sencilla.

Referencia oficial de instalación: https://getarcane.app/docs/setup/installation

Características

  • 🐳 Gestión de Contenedores: Control completo de tus contenedores
  • 📊 Monitorización en Tiempo Real: CPU, memoria, red y disco
  • 🔍 Logs en Vivo: Visualización de logs de contenedores
  • 🖥️ Interfaz Moderna: UI intuitiva y responsive
  • 🔐 Seguro: Autenticación y cifrado de datos
  • 📝 Base de Datos SQLite: Almacenamiento local eficiente
  • 🎨 Personalizable: Configuración flexible

Requisitos Previos

  • Docker Engine instalado
  • Docker Compose instalado
  • URL de acceso definida para la aplicación
  • Claves generadas: ENCRYPTION_KEY y JWT_SECRET
  • Ruta local de proyectos que quieras exponer a Arcane (variable PROJECTS_DIRECTORY en .env)
  • Red Docker externa proxy creada, ya que el compose.yaml de este repositorio está preparado para conectarse a ella

⚠️ IMPORTANTE: Arcane necesita acceso al socket de Docker (/var/run/docker.sock).

Archivos de este Repositorio

Este repositorio contiene archivos de ejemplo: - compose.yaml - Configuración base del contenedor - .env.example - Plantilla de variables de entorno - README.md - Esta documentación

💡 Tip: Puedes copiar estos archivos manualmente o clonar el repositorio.


Generar Claves Seguras

Antes de cualquier despliegue, genera las claves necesarias:

# You can use OpenSSL in your terminal to generate the secrets
echo "      - ENCRYPTION_KEY=$(openssl rand -hex 32)"

Guarda los resultados, los necesitarás en el archivo .env.

⚠️ Importante: Nunca compartas estas claves. Cada instalación debe tener claves únicas.


Despliegue con Docker Compose

1. Crear Directorio y Archivos

# Crear directorio
mkdir arcane
cd arcane

2. Crear compose.yaml

Crea el archivo compose.yaml:

services:
  arcane:
    image: ghcr.io/getarcaneapp/arcane:latest
    container_name: arcane
    restart: unless-stopped
    #Puertos expuestos para acceso directo (opcional, se recomienda usar proxy inverso)  
    ports:
     - 3552:3552
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - ./backups:/backups # Cambia esta ruta por la ubicación de tus backups de volúmenes
      - ${PROJECTS_DIRECTORY}:${PROJECTS_DIRECTORY} # Ruta del host donde están los proyectos
    environment:
      - APP_URL=${APP_URL}
      - PROJECTS_DIRECTORY=${PROJECTS_DIRECTORY}
      - PUID=1000
      - PGID=1000
      - ENCRYPTION_KEY=${ENCRYPTION_KEY}

# añadir estas líneas para proxy inverso 
networks:
  default:
    external: true
    name: proxy

3. Configurar Variables de Entorno

Copia .env.example a .env y ajústalo a tu entorno:

cp .env.example .env

Contenido esperado de .env:

# Usa la URL final con la que accederás a la aplicación
# Ejemplo local:  http://localhost:3552
# Ejemplo con proxy: https://arcane.midominio.com
APP_URL=https://arcane.midominio.com

# Ruta del host donde están los proyectos
PROJECTS_DIRECTORY=/ruta/a/tus/proyectos

# Claves de Seguridad (GENERAR NUEVAS)
ENCRYPTION_KEY=tu_encryption_key_generada

4. Ajustar la Ruta de Proyectos

En el archivo .env, define la ruta real de tus proyectos en el host:

PROJECTS_DIRECTORY=/ruta/real/a/tus/proyectos

Esta variable se usa tanto para el bind mount como para la variable de entorno PROJECTS_DIRECTORY dentro del contenedor, por lo que solo necesitas definirla una vez.

5. Desplegar

# Crear la red externa requerida por este compose
docker network create proxy

# Iniciar servicios
docker compose up -d

# Ver logs
docker compose logs -f arcane

Método Alternativo: Clonar desde Git

Si prefieres usar Git para mantener la configuración actualizada:

# Clonar repositorio
git clone https://github.com/groales/arcane.git
cd arcane

# Copiar y editar variables
cp .env.example .env
nano .env

# Crear la red externa requerida por este compose
docker network create proxy

# Desplegar
docker compose up -d

Si no quieres usar la red proxy, comenta o elimina el bloque networks del compose.yaml antes de arrancar el servicio.


Acceso Inicial

Una vez desplegado, accede a Arcane usando la URL que hayas definido en APP_URL. Puede ser una URL local o una publicada detrás de un proxy inverso genérico.

http://localhost:3552
# o
https://arcane.midominio.com

Primera Configuración

  1. Arcane se configurará automáticamente en el primer inicio
  2. Tendrás acceso a todos tus contenedores Docker
  3. Configura las preferencias desde la interfaz web

Comandos Útiles

Ver Logs

docker compose logs -f arcane

Reiniciar Servicio

docker compose restart arcane

Actualizar Contenedor

docker compose pull
docker compose up -d

Detener y Eliminar

docker compose down
# Para eliminar también volúmenes:
docker compose down -v

Estructura de Volúmenes

Bind mount de datos:
└── ./data/              # Directorio de datos de Arcane (base de datos SQLite, etc.)

Bind mount de backups:
└── ./backups/           # Directorio donde se almacenan los backups de volúmenes
                         # Cambia esta ruta por la ubicación real de tus backups

Bind mount configurable:
└── ${PROJECTS_DIRECTORY}  # Directorio de proyectos visible para Arcane (definido en .env)

Configuración Avanzada

Variables de Entorno Disponibles

Variable Descripción Valor
APP_URL URL de acceso a Arcane Configurar en .env
PROJECTS_DIRECTORY Ruta del host donde están los proyectos Configurar en .env
ENCRYPTION_KEY Clave de cifrado (hex 64) Configurar en .env
JWT_SECRET Secreto JWT (hex 64) Configurar en .env
PUID User ID para permisos 1000 (hardcoded)
PGID Group ID para permisos 1000 (hardcoded)

Solución de Problemas

Ver Logs Detallados

Para cambiar el nivel de logs, edita compose.yaml:

environment:
  - PROJECTS_DIRECTORY=${PROJECTS_DIRECTORY}
  - LOG_LEVEL=debug  # Cambiar de info a debug

Luego reinicia:

docker compose up -d

# Ver logs
docker compose logs -f arcane

Seguridad

Recomendaciones

  1. Cambiar claves por defecto: Genera claves únicas con openssl
  2. Usar HTTPS si publicas el servicio: Protege el acceso remoto
  3. Restringir acceso: Usar firewall o VPN para acceso remoto
  4. Backups regulares: Respalda periódicamente el directorio ./data
  5. Actualizar regularmente: Mantén Arcane actualizado

Acceso al Socket de Docker

Arcane necesita acceso al socket de Docker. Esto le da control total sobre Docker. Asegúrate de:

  • Proteger el acceso a Arcane con autenticación fuerte
  • Usar HTTPS exclusivamente
  • Considerar restricciones de red

Backup y Restauración

Backup

# Detener contenedor
docker compose down

# Backup del directorio de datos
tar -czf arcane-backup-$(date +%Y%m%d).tar.gz ./data

# Reiniciar
docker compose up -d

Restauración

# Detener contenedor
docker compose down

# Restaurar directorio de datos
rm -rf ./data
tar -xzf arcane-backup-YYYYMMDD.tar.gz

# Reiniciar
docker compose up -d

Actualización

# Detener contenedor
docker compose down

# Hacer backup
tar -czf arcane-backup-$(date +%Y%m%d).tar.gz ./data

# Actualizar imagen
docker compose pull

# Reiniciar
docker compose up -d

# Verificar logs
docker compose logs -f arcane

Recursos


Licencia

Este repositorio de configuración es de uso libre. Arcane tiene su propia licencia, revisa el repositorio oficial para más detalles.