# OpenGnsys - Git ### Manual de Instalación para Desplegar la API "oggit" Este manual describe los pasos necesarios para descargar, instalar, configurar y desplegar la API "oggit" en un servidor, incluyendo la configuración de **Nginx** y la integración con **Nelmio API Doc**. #### Requisitos Previos: - **PHP 8.2** o superior. - **Composer** instalado. - **Nginx** configurado. - **Symfony** 5.x o 6.x. - **Git**. ### 1. Descargar el Repositorio Clona el repositorio del proyecto en el servidor donde deseas desplegar la API. Asegúrate de que el servidor tenga acceso a Git. ### 2. Instalar Dependencias Una vez descargado el repositorio, navega a la raíz del proyecto y ejecuta el siguiente comando para instalar todas las dependencias necesarias usando **Composer**: ```bash composer install ``` ### 3. Configurar Nginx A continuación, debes configurar **Nginx** para servir el proyecto Symfony. Crea un archivo de configuración en `/etc/nginx/sites-available/oggit` o edita tu archivo de configuración Nginx existente. ```bash sudo nano /etc/nginx/sites-available/oggit ``` Copia y pega la siguiente configuración en el archivo: ```nginx server { listen 80; server_name localhost; # Reemplaza 'localhost' por la IP del servidor si es necesario # Raíz del documento para el proyecto Symfony root /opt/oggit/public; # Bloque para manejar las solicitudes a /oggit location /oggit { try_files $uri $uri/ /index.php?$query_string; # Aumentar el tiempo de espera por el install oglive proxy_read_timeout 600; proxy_connect_timeout 600; proxy_send_timeout 600; send_timeout 600; } # Bloque para manejar las solicitudes a index.php location ~ ^/index.php(/|$) { include fastcgi_params; fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Asegúrate de que esto sea correcto fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param DOCUMENT_ROOT $document_root; internal; } # Bloque para devolver 404 en cualquier solicitud a archivos PHP que no sean index.php location ~ \.php$ { return 404; } # Logs de error y acceso para el proyecto Symfony error_log /var/log/nginx/oggit_error.log; access_log /var/log/nginx/oggit_access.log; location /api/doc { try_files $uri /index.php?$query_string; } } ``` Guarda los cambios y activa el sitio: ```bash sudo ln -s /etc/nginx/sites-available/oggit /etc/nginx/sites-enabled/ ``` Reinicia Nginx para aplicar los cambios: ```bash sudo systemctl restart nginx ``` ### 4. Configurar Nelmio API Doc Si usas **NelmioApiDocBundle** para la documentación Swagger, debes configurar **Nelmio** para aceptar rutas específicas, como las rutas de `/oggit`. Para hacerlo, edita el archivo de configuración **Nelmio**: ```bash sudo nano /opt/oggit/config/packages/nelmio_api_doc.yaml ``` Asegúrate de que el archivo tenga la siguiente configuración para permitir las rutas de la API: ```yaml nelmio_api_doc: documentation: info: title: Oggit API description: Documentación de la API Oggit version: 1.0.0 areas: # filtrar las áreas documentadas path_patterns: - ^/oggit ``` Guarda los cambios. ### 5. Verificar la Instalación 1. **Revisar la API**: Accede a tu API a través de `http:///oggit`. Si todo está correctamente configurado, deberías poder hacer solicitudes a los endpoints definidos. 2. **Documentación Swagger**: Accede a la documentación Swagger de la API en `http:///api/doc` para ver los endpoints documentados. ### 6. Logs y Depuración Los registros de Nginx se pueden consultar para verificar posibles errores durante el despliegue. Los logs se encuentran en las siguientes rutas: - **Logs de error**: `/var/log/nginx/oggit_error.log` - **Logs de acceso**: `/var/log/nginx/oggit_access.log`