From c5fd09704b94af32732e78aeeedd449515abadb1 Mon Sep 17 00:00:00 2001 From: lgromero Date: Fri, 13 Sep 2024 13:37:46 +0200 Subject: [PATCH] refs #734 Adds README for Api installation --- README.md | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/README.md b/README.md index 7adc300..4219947 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,128 @@ # 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`