4.2 KiB
Guía de Despliegue en Ubuntu Server (Dashboard Leads)
Esta guía explica el proceso paso a paso para desplegar la aplicación Dashboard Leads (Frontend React + Vite y Backend FastAPI) en un servidor Ubuntu Server 20.04 / 22.04 / 24.04 LTS.
1. Requisitos Previos en el Servidor Ubuntu
Conéctate por SSH a tu servidor e instala los paquetes necesarios:
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip python3-venv nodejs npm nginx certbot python3-certbot-nginx git
(Opcional: Si requieres conectar a SQL Server mediante pyodbc en Ubuntu, instala msodbcsql18 y unixodbc-dev).
2. Estructura de Directorios en el Servidor
Crea el directorio del proyecto y otorga permisos al usuario actual (ejemplo: ubuntu):
sudo mkdir -p /var/www/dashboard-leads
sudo chown -R $USER:$USER /var/www/dashboard-leads
Sube los archivos del proyecto a /var/www/dashboard-leads/ (o clónalos mediante git).
3. Configuración del Backend (FastAPI)
-
Ve a la carpeta
backend:cd /var/www/dashboard-leads/backend -
Crea el entorno virtual e instala dependencias:
python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txt -
Configura las variables de entorno
.env:- Copia la plantilla
.env.example:cp .env.example .env - Edita las credenciales reales de forma segura:
nano .env - Verifica que la variable
CORS_ORIGINScontenga tus dominios:CORS_ORIGINS=https://dashboard-leads.escueladerefrigeracion.lat,http://dashboard-leads.escueladerefrigeracion.lat,http://api-leads.escueladerefrigeracion.lat
- Copia la plantilla
-
Prueba la ejecución manual del backend:
uvicorn main:app --host 127.0.0.1 --port 8001(Presiona
Ctrl + Cpara detener después de verificar).
4. Configuración del Servicio Systemd para Backend
-
Copia el archivo de servicio
dashboard-leads-backend.service:sudo cp /var/www/dashboard-leads/deploy/dashboard-leads-backend.service /etc/systemd/system/ -
Recarga systemd, inicia y habilita el servicio:
sudo systemctl daemon-reload sudo systemctl start dashboard-leads-backend sudo systemctl enable dashboard-leads-backend -
Revisa el estado del servicio:
sudo systemctl status dashboard-leads-backend
5. Configuración y Compilación del Frontend (React + Vite)
-
Ve a la carpeta
frontend:cd /var/www/dashboard-leads/frontend -
Configura la variable de entorno en
.env:cp .env.example .env nano .envAsegúrate de que contenga la URL del backend:
VITE_API_BASE_URL=https://api-leads.escueladerefrigeracion.lat(Recomendado usar HTTPS para evitar advertencias de Mixed Content en el navegador).
-
Instala dependencias y genera la build de producción:
npm install npm run buildEsto generará los archivos finales en
/var/www/dashboard-leads/frontend/dist.
6. Configuración de Nginx
-
Copia el archivo de configuración de Nginx:
sudo cp /var/www/dashboard-leads/deploy/nginx-leads.conf /etc/nginx/sites-available/leads.conf -
Crea el enlace simbólico para activarlo:
sudo ln -s /etc/nginx/sites-available/leads.conf /etc/nginx/sites-enabled/ -
Prueba la sintaxis de Nginx y recárgalo:
sudo nginx -t sudo systemctl reload nginx
7. Configuración de Certificados SSL (HTTPS Gratis con Certbot)
Para habilitar SSL en ambos dominios y proteger las transmisiones:
sudo certbot --nginx -d dashboard-leads.escueladerefrigeracion.lat -d api-leads.escueladerefrigeracion.lat
Certbot actualizará automáticamente la configuración de Nginx para redirigir todo el tráfico a HTTPS de forma segura.
8. Mantenimiento y Comandos Útiles
- Ver logs del Backend:
journalctl -u dashboard-leads-backend -f - Reiniciar el Backend:
sudo systemctl restart dashboard-leads-backend - Actualizar cambios en Frontend:
cd /var/www/dashboard-leads/frontend npm run build