# SIU-Guaraní Preinscripción 3.22.0 - Docker Este proyecto contiene la configuración Docker para ejecutar el sistema de Preinscripción SIU-Guaraní versión 3.22.0. ## Requisitos del Sistema - Docker - Docker Compose - Al menos 2GB de RAM disponible - Puerto 8080 y 5432 disponibles ## Componentes Incluidos - **PHP 7.4** con Apache 2.4 - **PostgreSQL 11.6** (configurado con encoding LATIN1) - **Extensiones PHP requeridas**: curl, mbstring, pdo_pgsql, openssl, apcu, gd2 - **Composer** para gestión de dependencias - **yui-compressor 2.4.2** para compilación de recursos ## Instalación y Configuración ### 1. Configuración Inicial Antes de ejecutar el sistema, es necesario configurar los archivos de configuración: ```bash # Copiar archivos de configuración de ejemplo cp docker/config.docker.php instalacion/config.php cp docker/alias.docker.conf instalacion/alias.conf ``` ### 2. Configuración de Base de Datos El sistema utiliza PostgreSQL con las siguientes configuraciones por defecto: - **Base de datos principal**: `preinscripcion` - **Base de datos de gestión**: `gestion` (opcional) - **Usuario**: `postgres` - **Contraseña**: `postgres123` - **Host**: `postgres` (dentro del contenedor) - **Puerto**: `5432` ### 3. Ejecutar el Sistema ```bash # Construir y ejecutar los contenedores docker-compose up -d # Ver los logs docker-compose logs -f # Detener el sistema docker-compose down ``` ### 4. Acceso al Sistema Una vez iniciado, el sistema estará disponible en: - **Punto de acceso para alumnos**: http://localhost:8080/preinscripcion/ - **Punto de acceso para administradores**: http://localhost:8080/preinscripcion_admin/ ### 5. Crear Usuario Administrador Para crear un usuario administrador, ejecutar: ```bash # Acceder al contenedor docker-compose exec web bash # Ejecutar el comando de creación de usuario cd /var/www/html ./bin/preinscripcion user_admin ``` Seguir las instrucciones para crear el usuario administrador. ## Configuración Personalizada ### Variables de Entorno El archivo `docker-compose.yml` incluye las siguientes variables de entorno configurables: ```yaml environment: - DB_HOST=postgres - DB_PORT=5432 - DB_NAME=preinscripcion - DB_USER=postgres - DB_PASSWORD=postgres123 ``` ### Configuración de Correo Para configurar el servidor de correo, editar el archivo `instalacion/config.php` en la sección `smtp`: ```php 'smtp' => [ 'from' => 'tu-email@universidad.edu.ar', 'from_name' => 'SIU-Preinscripción', 'host' => 'smtp.universidad.edu.ar', 'seguridad' => mail::SSL, 'auth' => true, 'port' => 465, 'usuario' => 'tu-usuario', 'clave' => 'tu-contraseña', // ... más configuraciones ], ``` ### Múltiples Puntos de Acceso Para configurar múltiples puntos de acceso, editar: 1. `instalacion/alias.conf` - Agregar nuevos alias y configuraciones de Location 2. `instalacion/config.php` - Agregar nuevas configuraciones en la sección `accesos` ## Comandos Útiles ```bash # Ver logs del contenedor web docker-compose logs web # Ver logs de PostgreSQL docker-compose logs postgres # Acceder al contenedor web docker-compose exec web bash # Acceder a PostgreSQL docker-compose exec postgres psql -U postgres -d preinscripcion # Reiniciar solo el contenedor web docker-compose restart web # Reconstruir los contenedores docker-compose build --no-cache # Limpiar volúmenes (¡CUIDADO! Esto borra todos los datos) docker-compose down -v ``` ## Desarrollo ### Compilar Recursos para Producción ```bash # Acceder al contenedor docker-compose exec web bash # Compilar recursos cd /var/www/html ./bin/preinscripcion compilar_recursos ``` ### Modo Producción Para ejecutar en modo producción: 1. Cambiar `'produccion' => true` en `instalacion/config.php` 2. Compilar recursos con el comando anterior 3. Configurar servidor de correo apropiado 4. Configurar SSL si es necesario ## Solución de Problemas ### Error de Permisos Si hay problemas de permisos: ```bash # Recuperar permisos correctos docker-compose exec web chown -R www-data:www-data /var/www/html docker-compose exec web chmod -R 755 /var/www/html ``` ### Base de Datos No Inicializada Si la base de datos no se inicializa correctamente: ```bash # Detener contenedores docker-compose down # Eliminar volúmenes docker-compose down -v # Volver a ejecutar docker-compose up -d ``` ### Puerto en Uso Si el puerto 8080 está en uso, cambiar en `docker-compose.yml`: ```yaml ports: - "8081:80" # Cambiar 8080 por 8081 ``` ## Estructura de Archivos ``` ├── Dockerfile # Imagen PHP con Apache ├── docker-compose.yml # Configuración de servicios ├── docker/ │ ├── apache-config.conf # Configuración de Apache │ ├── init.sh # Script de inicialización │ ├── init-db.sql # Script adicional de BD │ ├── config.docker.php # Configuración de ejemplo │ └── alias.docker.conf # Alias de Apache de ejemplo ├── instalacion/ # Configuraciones del sistema ├── src/ # Código fuente de la aplicación └── BD/ # Scripts de base de datos ``` ## Soporte Para soporte técnico, consultar la documentación oficial del SIU: - [Documentación SIU-Guaraní](https://documentacion.siu.edu.ar/wiki/SIU-Guaraní) - [Foro de la Comunidad SIU](http://foro.comunidad.siu.edu.ar) ## Versión Este Docker está configurado para SIU-Guaraní Preinscripción versión **3.22.0**.