Se actualizo README.md con informacion para el deploy
This commit is contained in:
@@ -106,12 +106,74 @@ El menú desplegable **Gestión** en la barra de navegación organiza las áreas
|
|||||||
|
|
||||||
## 🚀 Instalación y Puesta en Marcha
|
## 🚀 Instalación y Puesta en Marcha
|
||||||
|
|
||||||
### Prerrequisitos
|
### ⚡ Opción A — Deploy Automático en Debian 12 LXC (Recomendado)
|
||||||
|
|
||||||
|
El repositorio incluye un instalador interactivo (`install.sh`) que configura todo el entorno de producción automáticamente: dependencias del sistema, PostgreSQL, entorno virtual Python, inicialización de base de datos y servicio systemd con Gunicorn.
|
||||||
|
|
||||||
|
#### Prerrequisitos
|
||||||
|
* Contenedor LXC o servidor con **Debian 12 (Bookworm)**
|
||||||
|
* Acceso **root** (o `sudo`)
|
||||||
|
* Conexión a Internet
|
||||||
|
|
||||||
|
#### Pasos
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Clonar el repositorio
|
||||||
|
git clone https://gitea.oemspot.com.ar/carlostellocba/admin-edu-space.git
|
||||||
|
cd admin-edu-space
|
||||||
|
|
||||||
|
# 2. Dar permisos de ejecución al instalador
|
||||||
|
chmod +x install.sh
|
||||||
|
|
||||||
|
# 3. Ejecutar el instalador como root
|
||||||
|
sudo bash install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Durante la ejecución el instalador solicitará únicamente la **contraseña para el usuario de base de datos** (si se deja vacío usa `eduspace2024` por defecto).
|
||||||
|
|
||||||
|
#### Qué instala y configura automáticamente
|
||||||
|
|
||||||
|
| Paso | Acción |
|
||||||
|
| :--- | :--- |
|
||||||
|
| 1 | Configura locale `en_US.UTF-8` en el sistema (previene errores de encoding) |
|
||||||
|
| 2 | Instala Python 3, venv, pip, build-tools, libpq-dev y PostgreSQL |
|
||||||
|
| 3 | Inicia y habilita el servicio PostgreSQL para el arranque automático |
|
||||||
|
| 4 | Genera `SECRET_KEY` aleatoria y crea el archivo `.env` de producción |
|
||||||
|
| 5 | Crea el usuario `eduspace_user` y la base de datos `classrooms_db` en PostgreSQL |
|
||||||
|
| 6 | Crea el virtualenv e instala todas las dependencias + Gunicorn |
|
||||||
|
| 7 | Ejecuta `init_db.py` (tablas, roles RBAC, edificios y usuario admin inicial) |
|
||||||
|
| 8 | Crea el usuario del sistema `eduspace` (sin shell, por seguridad) |
|
||||||
|
| 9 | Registra y arranca el servicio systemd `admin-edu-space` en el puerto **5000** |
|
||||||
|
| 10 | Muestra resumen con URL, credenciales y comandos de gestión |
|
||||||
|
|
||||||
|
#### Comandos de gestión post-instalación
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Ver estado del servicio
|
||||||
|
systemctl status admin-edu-space
|
||||||
|
|
||||||
|
# Ver logs en tiempo real
|
||||||
|
journalctl -u admin-edu-space -f
|
||||||
|
|
||||||
|
# Reiniciar la aplicación
|
||||||
|
systemctl restart admin-edu-space
|
||||||
|
|
||||||
|
# Detener la aplicación
|
||||||
|
systemctl stop admin-edu-space
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Nota:** Si el archivo `.env` ya existe en el directorio (por ejemplo, copiado manualmente antes de correr el instalador), el script lo conserva sin sobrescribirlo.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 🖥️ Opción B — Instalación Manual (Desarrollo Local)
|
||||||
|
|
||||||
|
#### Prerrequisitos
|
||||||
1. **Python 3.10 o superior**
|
1. **Python 3.10 o superior**
|
||||||
2. **PostgreSQL** en ejecución con una base de datos creada (ej. `classrooms_db`).
|
2. **PostgreSQL** en ejecución con una base de datos creada (ej. `classrooms_db`).
|
||||||
3. **Git**
|
3. **Git**
|
||||||
|
|
||||||
### Pasos de Configuración
|
#### Pasos de Configuración
|
||||||
|
|
||||||
1. **Clonar el repositorio:**
|
1. **Clonar el repositorio:**
|
||||||
```bash
|
```bash
|
||||||
@@ -137,7 +199,10 @@ El menú desplegable **Gestión** en la barra de navegación organiza las áreas
|
|||||||
```
|
```
|
||||||
|
|
||||||
4. **Configurar variables de entorno (`.env`):**
|
4. **Configurar variables de entorno (`.env`):**
|
||||||
Crear o editar el archivo `.env` en la raíz del proyecto:
|
Copiar la plantilla y editar con los valores de tu entorno:
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
```env
|
```env
|
||||||
SECRET_KEY=clave-secreta-de-produccion-cambiar-en-despliegue
|
SECRET_KEY=clave-secreta-de-produccion-cambiar-en-despliegue
|
||||||
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/classrooms_db
|
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/classrooms_db
|
||||||
@@ -170,6 +235,8 @@ El menú desplegable **Gestión** en la barra de navegación organiza las áreas
|
|||||||
| :--- | :--- | :--- | :--- |
|
| :--- | :--- | :--- | :--- |
|
||||||
| **Administrador del Sistema** | `admin@edu-space.com` | `admin123` | `Admin` (Acceso Total) |
|
| **Administrador del Sistema** | `admin@edu-space.com` | `admin123` | `Admin` (Acceso Total) |
|
||||||
|
|
||||||
|
> ⚠️ **Importante:** Cambiá la contraseña del administrador inmediatamente después del primer acceso.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📁 Estructura del Proyecto
|
## 📁 Estructura del Proyecto
|
||||||
@@ -233,6 +300,7 @@ admin-edu-space/
|
|||||||
│ └── decorators.py # Decoradores RBAC (@permission_required, can_manage, etc.)
|
│ └── decorators.py # Decoradores RBAC (@permission_required, can_manage, etc.)
|
||||||
├── config/ # Configuraciones de entorno (desarrollo, testing, prod)
|
├── config/ # Configuraciones de entorno (desarrollo, testing, prod)
|
||||||
├── translations/ # Catálogos GNU gettext compilados (es / en)
|
├── translations/ # Catálogos GNU gettext compilados (es / en)
|
||||||
|
├── install.sh # Instalador automático para Debian 12 LXC
|
||||||
├── init_db.py # Inicializador DDL y semillero de datos
|
├── init_db.py # Inicializador DDL y semillero de datos
|
||||||
├── CHANGELOG_SESSION.md # Historial técnico cronológico
|
├── CHANGELOG_SESSION.md # Historial técnico cronológico
|
||||||
├── requirements.txt # Dependencias Python
|
├── requirements.txt # Dependencias Python
|
||||||
|
|||||||
Reference in New Issue
Block a user