Servicios activos
—
de 8 total
IP Pública
20.246.108.74
mq-vtl-prd-cgm
CPU
—
uso actual
RAM
—
—
Servicios del servidor
Reportes Gerencia PBI
/var/www/reportesPowerBIWeb
cargando…
:8011
Reportes Jefatura PBI
/var/www/reportesJefatura
cargando…
:8012
Cómo agregar una nueva web al servidor
Sigue estos 5 pasos cada vez que quieras desplegar una nueva aplicación Flask o FastAPI.
0
Antes de empezar — elige un puerto libre
Cada app necesita un puerto distinto. Los siguientes ya están ocupados:
| Servicio | Puerto | Estado |
|---|---|---|
| comercialCGM | 8001 | ● ocupado |
| jdweb | 8002 | ● ocupado |
| asistenciaBus | 8003 | ● ocupado |
| inteligenciaCgm | 8007 | ● ocupado |
| entregaTecnica | 8008 | ● ocupado |
| reportesPowerBIWeb | 8011 | ● ocupado |
| reportesJefatura | 8012 | ● ocupado |
| cgm-admin (este panel) | 8014 | ● ocupado |
| — | 8004, 8006, 8009, 8010, 8015+ | ✓ libres |
1
Crear directorio y subir archivos
Crea la carpeta de la app en el servidor:
bash
sudo mkdir /var/www/miNuevaApp
sudo chown admincgm:www-data /var/www/miNuevaApp
Luego sube tus archivos por SFTP, SCP o git clone al directorio creado.
2
Crear entorno virtual e instalar dependencias
Para apps Flask:
bash
cd /var/www/miNuevaApp
python3 -m venv venv
venv/bin/pip install flask gunicorn sqlalchemy pyodbc
Para apps FastAPI:
bash
cd /var/www/miNuevaApp
python3 -m venv venv
venv/bin/pip install fastapi uvicorn[standard] gunicorn
Si tienes un requirements.txt:
bash
venv/bin/pip install -r requirements.txt
3
Crear el servicio systemd
Crea el archivo de servicio (reemplaza miNuevaApp y PUERTO):
bash
sudo nano /etc/systemd/system/miNuevaApp.service
Contenido para Flask:
[Unit]
Description=miNuevaApp
After=network.target
[Service]
User=admincgm
Group=www-data
WorkingDirectory=/var/www/miNuevaApp
Environment="PATH=/var/www/miNuevaApp/venv/bin"
ExecStart=/var/www/miNuevaApp/venv/bin/gunicorn \
--workers 3 --bind 127.0.0.1:PUERTO app:app
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Para FastAPI, cambia ExecStart por:
ExecStart=/var/www/miNuevaApp/venv/bin/gunicorn \
--workers 2 --worker-class uvicorn.workers.UvicornWorker \
--bind 127.0.0.1:PUERTO main:app
Activar el servicio:
sudo systemctl daemon-reload
sudo systemctl enable miNuevaApp
sudo systemctl start miNuevaApp
sudo systemctl status miNuevaApp
4
Configurar Nginx
bash
sudo nano /etc/nginx/sites-available/miNuevaApp
server {
server_name midominio.cgmrental.com.pe;
client_max_body_size 200M;
location / {
proxy_pass http://127.0.0.1:PUERTO;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
alias /var/www/miNuevaApp/static/;
expires 30d;
}
}
sudo ln -s /etc/nginx/sites-available/miNuevaApp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
5
Generar certificado SSL (HTTPS)
Asegúrate de que el DNS del dominio ya apunta a la IP 20.246.108.74 antes de correr esto:
sudo certbot --nginx -d midominio.cgmrental.com.pe
⚠️ Certbot configura el SSL automáticamente y programa la renovación. No es necesario tocarlo después.
✓
Comandos de gestión rápida
| Acción | Comando |
|---|---|
| Ver logs en vivo | journalctl -u miNuevaApp -f |
| Ver últimos errores | journalctl -u miNuevaApp -n 50 --no-pager |
| Reiniciar servicio | sudo systemctl restart miNuevaApp |
| Ver puertos activos | ss -tlnp | grep 80 |
| Ver todos los servicios | systemctl list-units --type=service --state=active |