Aether Panel Documentation
Referencia de Comandos CLI
Aether Panel incluye una CLI construida con Cobra que permite gestionar el panel, crear usuarios, ejecutar migraciones y más.
Nota: El binario se compila desde
cmd/panel/main.go. El nombre interno del comando raíz esSkyPanel, pero el archivo binario se genera comoskypanel(oskypanel.exeen Windows).
0. Uso con Docker
Si ejecutas el panel dentro de un contenedor Docker (imagen ghcr.io/aether-panel/panel), no puedes ejecutar el binario directamente en el host. Usa docker exec para interactuar con la CLI del contenedor en ejecución.
Ejecutar Comandos en el Contenedor
# Acceder al shell del contenedor docker exec -it skypanel sh # O ejecutar comandos directamente docker exec -it skypanel /SkyPanel/bin/SkyPanel version docker exec -it skypanel /SkyPanel/bin/SkyPanel user add --admin docker exec -it skypanel /SkyPanel/bin/SkyPanel db upgrade
Ruta del binario dentro del contenedor:
/SkyPanel/bin/SkyPanel
Usando docker-compose
Con el archivo docker-compose.yml incluido en el repositorio:
# Iniciar servicios docker compose up -d # Ejecutar CLI en el contenedor en ejecución docker compose exec skypanel /SkyPanel/bin/SkyPanel user add --admin # Ver logs docker compose logs -f skypanel
Ejemplo: Crear Admin en Docker
docker exec -it skypanel /SkyPanel/bin/SkyPanel user add \ --name "admin" \ --email "admin@example.com" \ --admin
Ejemplo: Migrar Base de Datos en Docker
docker exec -it skypanel /SkyPanel/bin/SkyPanel db upgrade
Notas para Docker
- El binario dentro del contenedor está en
/SkyPanel/bin/SkyPanel(con S mayúscula). - La config dentro del contenedor está en
/etc/SkyPanel/config.json. - Los datos persistentes están en
/var/lib/SkyPanel/. - Puedes verificar que el contenedor esté funcionando con
docker psantes de ejecutar comandos.
1. Compilación (sin Docker)
Requisitos Previos
- Go 1.25+
- Acceso a
cmd/panel/main.go
Build Básico
go build -o skypanel ./cmd/panel
Build con Versión Personalizada
go build -ldflags "-X 'github.com/SkyPanel/SkyPanel/v3.Version=1.2.0' -X 'github.com/SkyPanel/SkyPanel/v3.Hash=$(git rev-parse --short HEAD)'" -o skypanel ./cmd/panel
Usando Makefile
make build # Genera bin/skypanel make run # Ejecuta go run ./cmd/panel/main.go
2. Comandos Disponibles
| Comando | Descripción |
|---|---|
run | Inicia el panel completo (web, daemon SFTP, planificador) |
runService | Inicia como servicio systemd con notificación NOTIFY_SOCKET |
version | Muestra la versión del panel |
user | Gestión de usuarios (subcomandos: add, edit) |
db | Operaciones de base de datos (subcomandos: upgrade, migrate) |
Flags Globales
| Flag | Descripción |
|---|---|
--workDir | Cambia el directorio de trabajo antes de iniciar |
--config | Ruta al archivo de configuración JSON |
Ambos flags están disponibles en todos los subcomandos.
3. run — Iniciar el Panel
./skypanel run
Inicializa y arranca todos los servicios del panel:
- Carga la configuración desde
config.json. - Conecta a la base de datos (SQLite, MySQL, PostgreSQL o SQL Server).
- Inicia el servidor HTTP (API REST + panel web) en el puerto configurado (default
8080). - Inicia el servidor SFTP (puerto default
5657). - Inicia el planificador de tareas (gocron).
- Inicia la gestión de servidores de juego (carga servidores existentes, inicia el daemon).
- Muestra logs en consola en tiempo real.
# Usar directorio y config personalizados ./skypanel run --workDir /opt/skypanel --config /opt/skypanel/production.json
4. runService — Servicio systemd
./skypanel runService
Idéntico a run, pero además notifica a systemd vía NOTIFY_SOCKET:
- Envía
READY=1cuando el panel está listo. - Envía
STOPPING=1durante el apagado.
Útil para integrar con unidades systemd tipo Type=notify.
5. version — Versión
./skypanel version
Muestra la versión del panel. Por defecto: SkyPanel nightly (unknown). Se puede personalizar en tiempo de compilación con -ldflags (ver sección 1).
6. user — Gestión de Usuarios
6.1. user add — Crear Usuario
./skypanel user add --name "admin" --email "admin@example.com" --admin --password "clave_segura"
Todos los flags son opcionales. Si se omite alguno, el sistema lo solicitará de forma interactiva:
| Flag | Descripción |
|---|---|
--name | Nombre de usuario |
--email | Correo electrónico |
--admin | Otorga permisos de administrador |
--password | Contraseña (si se omite, se solicita con confirmación) |
El comando:
- Valida el formato del username, email y fortaleza de la contraseña.
- Conecta a la base de datos.
- Crea el usuario con permisos
ScopeLogin+ScopeAdmin(si--admin).
6.2. user edit — Editar Usuario (Interactivo)
./skypanel user edit
Comando totalmente interactivo (sin flags). Pasos:
-
Solicita el nombre de usuario a editar.
-
Muestra un menú interactivo con opciones:
Opción Acción Username Cambiar nombre de usuario Email Cambiar correo electrónico Password Cambiar contraseña Admin Status Agregar o quitar permisos de administrador Remove 2FA Deshabilitar autenticación de dos factores Quit Salir -
Permite realizar múltiples cambios en la misma sesión.
7. db — Base de Datos
7.1. db upgrade — Migraciones
./skypanel db upgrade
Ejecuta las migraciones de esquema de base de datos. Útil después de actualizar el panel a una nueva versión.
- SQLite: Realiza un backup automático del archivo (
skypanel.db.0.backup,skypanel.db.1.backup, ...) antes de migrar. - Otros dialectos: Ejecuta migraciones directamente.
- Si la migración falla, restaura automáticamente el backup (SQLite).
7.2. db migrate — Cambiar de Motor (Experimental)
./skypanel db migrate
Nota: Este comando actualmente es un stub y no ejecuta ninguna acción. Está diseñado para migrar datos entre dialectos de base de datos (ej: SQLite → MySQL) en el futuro.
Resumen Rápido
# Compilar go build -o skypanel ./cmd/panel # Versión ./skypanel version # Crear admin ./skypanel user add --name admin --email admin@example.com --admin # Editar usuario (interactivo) ./skypanel user edit # Iniciar panel ./skypanel run # Iniciar como servicio ./skypanel runService # Migrar base de datos ./skypanel db upgrade # Con flags globales ./skypanel --workDir /data/skypanel --config /data/skypanel/config.json run
No olvides que Aether Panel es un proyecto en desarrollo open source, si tienes alguna duda o problema al instalar o el comando del instalador no funciona puedes contactarnos en el Discord de Aether Panel.
