ALpanel

Orquestador de Proyectos, Docker & Bases de Datos

ALpanel EN VIVO
IP: ... • Linux VPS • Uptime: ...
CPU Servidor 0%
Memoria RAM 0 MB / 0 GB
Disco SSD 0 GB / 0 GB

Proyectos Alojados en el Servidor

Carpeta raíz: /projects

Enrutador de Dominios y Subdominios (Caddy HTTPS)

Conecta un dominio o subdominio al contenedor Frontend de tu proyecto, y opcionalmente enruta /api/* hacia su contenedor Backend sin conflictos de CORS ni puertos.

Dominios Configurados

Caddyfile Generado


          

Estándar de Estructura para Proyectos en ALpanel (Node, Python, Java, Laravel)

Para que ALpanel detecte automáticamente cualquier proyecto, mida su consumo de CPU/RAM, extraiga las credenciales de su Base de Datos y ejecute Git Pull + Restart (con Rollback automático) y Limpieza de Caché sin chocar puertos, sigue estas 3 reglas simples:

1. Estructura en /opt

El panel principal vive en /opt/alpanel y cada proyecto alojado vive en /opt/projects/<nombre_proyecto> con su propio docker-compose.yml y .env.

2. Frontend y Backend independientes

Dentro del docker-compose.yml defines los servicios frontend, backend y db. Así el panel te permite reiniciar o ver logs del Front o del Back por separado.

3. Variables DB estándar en .env

Usa DB_NAME, DB_USER, DB_PASSWORD (o MYSQL_* / POSTGRES_*) en tu .env para que el botón Base de Datos del panel te muestre las credenciales automáticamente.

Plantilla 1: Proyecto con Frontend + Backend + DB separados

Ideal para React/Next/Vue + Backend en Node, Java (Spring Boot), Python o Laravel:

services:
  db:
    image: mariadb:11 # o postgres:15-alpine
    container_name: miapp_db
    restart: unless-stopped
    env_file: .env
    ports:
      - "3308:3306" # Puerto externo único para conectarte desde DBeaver/TablePlus
    volumes:
      - db_data:/var/lib/mysql

  backend:
    build: ./backend # Carpeta con Dockerfile de Node, Java, Python o Laravel
    container_name: miapp_backend
    restart: unless-stopped
    env_file: .env
    ports:
      - "8081:8080"
    depends_on:
      - db

  frontend:
    build: ./frontend # Carpeta con Dockerfile de React / Vue / Next.js
    container_name: miapp_frontend
    restart: unless-stopped
    ports:
      - "3001:80"
    depends_on:
      - backend

volumes:
  db_data:
Plantilla 2: Dockerfiles rápidos (Java / Node / Laravel)

Ejemplos listos para colocar dentro de ./backend/Dockerfile:

# --- OPCIÓN A: Node.js / NestJS ---
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
CMD ["npm", "run", "start:prod"]

# --- OPCIÓN B: Java 21 (Spring Boot) ---
FROM maven:3.9-eclipse-temurin-21 AS build
WORKDIR /app
COPY . .
RUN mvn clean package -DskipTests
FROM eclipse-temurin:21-jre-alpine
COPY --from=build /app/target/*.jar /app.jar
ENTRYPOINT ["java", "-Xmx512m", "-jar", "/app.jar"]

# --- OPCIÓN C: PHP 8.2 / Laravel ---
FROM php:8.2-fpm-alpine
RUN docker-php-ext-install pdo pdo_mysql
WORKDIR /var/www/html
COPY . .
CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8000"]

Usuarios del Panel

Contraseñas encriptadas en MariaDB 11 con scrypt + salt (16B).

Tabla de Roles

Catálogo de roles asignables a usuarios.

Registro de Auditoría y Seguridad

Historial de acciones ejecutadas en el servidor (sin almacenar contraseñas ni secretos).

Credenciales de Base de Datos

Proyecto: ...

Consola del Servidor


      

Editor de Variables (.env)

Se guarda con permisos seguros (0600) y reinicia los contenedores del proyecto.

Clonar y Desplegar Nuevo Proyecto

Nuevo Usuario

Nuevo Rol

Listo