Skip to content

Latest commit

 

History

History
303 lines (237 loc) · 6.39 KB

File metadata and controls

303 lines (237 loc) · 6.39 KB

🐧 Instalación en Linux - Sistema de Gestión de Combustible CANTV Lara

📋 Requisitos del Sistema

Sistemas Operativos Soportados

  • Ubuntu 18.04+ (Recomendado: Ubuntu 22.04 LTS)
  • Debian 10+
  • CentOS 7+
  • RHEL 7+
  • Fedora 30+
  • Arch Linux

Dependencias Requeridas

  • Python 3.8+ (Recomendado: Python 3.11)
  • Node.js 16+ (Recomendado: Node.js 18 LTS)
  • PostgreSQL 12+ (Opcional: SQLite para desarrollo)
  • Git (Para clonar repositorio)

🚀 Instalación Rápida

1. Instalar Dependencias del Sistema

Ubuntu/Debian:

```bash sudo apt update sudo apt install python3 python3-pip python3-venv nodejs npm postgresql postgresql-contrib git ```

CentOS/RHEL/Fedora:

```bash sudo dnf install python3 python3-pip nodejs npm postgresql postgresql-server git ```

Arch Linux:

```bash sudo pacman -S python python-pip nodejs npm postgresql git ```

2. Clonar/Copiar Proyecto

```bash

Si tienes el proyecto en Git

git clone cd proyecto-combustible-cantv

O copiar la carpeta del proyecto

cp -r /ruta/al/proyecto /destino/proyecto-combustible-cantv cd /destino/proyecto-combustible-cantv ```

3. Dar Permisos de Ejecución

```bash chmod +x scripts/*.sh ```

4. Ejecutar Instalación

```bash ./scripts/instalar_linux.sh ```

5. Iniciar Sistema

```bash ./scripts/ejecutar_linux.sh ```

🗄️ Configuración de Base de Datos

Opción A: PostgreSQL (Recomendado para Producción)

1. Configurar PostgreSQL

```bash

Inicializar base de datos (solo primera vez)

sudo postgresql-setup --initdb # CentOS/RHEL sudo systemctl start postgresql sudo systemctl enable postgresql

Crear base de datos y usuario

sudo -u postgres psql ```

2. En el prompt de PostgreSQL:

```sql CREATE DATABASE db_combustible_cantv; CREATE USER cantv_user WITH PASSWORD 'cantv_password_2024'; GRANT ALL PRIVILEGES ON DATABASE db_combustible_cantv TO cantv_user; ALTER USER cantv_user CREATEDB; \q ```

3. Configurar en settings.py:

```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'db_combustible_cantv', 'USER': 'cantv_user', 'PASSWORD': 'cantv_password_2024', 'HOST': 'localhost', 'PORT': '5432', } } ```

Opción B: SQLite (Más Simple para Desarrollo)

No requiere configuración adicional. El archivo se crea automáticamente.

🔧 Comandos Disponibles

Scripts Principales

```bash ./scripts/instalar_linux.sh # Instalar todas las dependencias ./scripts/ejecutar_linux.sh # Iniciar el sistema completo ./scripts/detener_linux.sh # Detener todos los servicios ./scripts/reiniciar_linux.sh # Reiniciar el sistema ./scripts/actualizar_linux.sh # Actualizar dependencias ./scripts/backup_linux.sh # Crear backup de BD ```

Comandos Django Directos

```bash

Activar entorno virtual

source venv/bin/activate

Comandos Django

python manage.py migrate python manage.py createsuperuser python manage.py collectstatic python manage.py runserver 0.0.0.0:8000

Comandos React (desde carpeta frontend/)

npm start npm run build ```

🌐 URLs del Sistema

Una vez iniciado el sistema:

🔍 Solución de Problemas

Error: "Puerto en uso"

```bash

Ver qué proceso usa el puerto

sudo lsof -i :8000 sudo lsof -i :3000

Detener proceso específico

sudo kill -9

O usar el script de detener

./scripts/detener_linux.sh ```

Error: "No se puede conectar a PostgreSQL"

```bash

Verificar estado de PostgreSQL

sudo systemctl status postgresql

Iniciar PostgreSQL

sudo systemctl start postgresql

Verificar conexión

sudo -u postgres psql -c "SELECT version();" ```

Error: "Módulo no encontrado"

```bash

Reinstalar dependencias

source venv/bin/activate pip install -r requirements.txt

Para React

cd frontend/ npm install ```

Error: "Permisos denegados"

```bash

Dar permisos a scripts

chmod +x scripts/*.sh

Dar permisos a carpetas de logs (si es necesario)

sudo mkdir -p /var/log/django sudo chown $USER:$USER /var/log/django ```

🔒 Configuración de Seguridad (Producción)

Firewall

```bash

Permitir puertos necesarios

sudo ufw allow 8000 sudo ufw allow 3000 sudo ufw allow 5432 # PostgreSQL (solo si es necesario) ```

Nginx (Opcional para Producción)

```bash

Instalar Nginx

sudo apt install nginx

Configurar proxy reverso

sudo nano /etc/nginx/sites-available/cantv-combustible ```

📊 Monitoreo del Sistema

Ver Logs en Tiempo Real

```bash

Logs de Django

tail -f debug.log

Logs del sistema

journalctl -f -u postgresql

Procesos activos

htop ps aux | grep python ps aux | grep node ```

Verificar Estado de Servicios

```bash

PostgreSQL

sudo systemctl status postgresql

Procesos del proyecto

ps aux | grep "manage.py runserver" ps aux | grep "npm start" ```

🔄 Actualización del Sistema

Actualizar Código

```bash

Si usas Git

git pull origin main

Actualizar dependencias

./scripts/actualizar_linux.sh

Aplicar migraciones

source venv/bin/activate python manage.py migrate ```

Backup Antes de Actualizar

```bash

Crear backup

./scripts/backup_linux.sh

Verificar backup

ls -la backups/ ```

📞 Soporte

Información del Sistema

```bash

Versión del OS

cat /etc/os-release

Versión de Python

python3 --version

Versión de Node.js

node --version

Espacio en disco

df -h

Memoria RAM

free -h ```

Logs de Errores

Los logs se guardan en:

  • Django: `debug.log` (en la raíz del proyecto)
  • Sistema: `/var/log/django/combustible.log`
  • PostgreSQL: `/var/log/postgresql/`

✅ Checklist de Instalación

  • ✅ Dependencias del sistema instaladas
  • ✅ Proyecto copiado/clonado
  • ✅ Permisos de ejecución dados a scripts
  • ✅ Entorno virtual creado
  • ✅ Dependencias Python instaladas
  • ✅ Dependencias React instaladas (si aplica)
  • ✅ Base de datos configurada
  • ✅ Migraciones aplicadas
  • ✅ Superusuario creado
  • ✅ Sistema iniciado correctamente
  • ✅ URLs accesibles desde navegador

¡El sistema está listo para usar en Linux! 🎉 ```

Finalmente, crea un archivo para verificar la compatibilidad: