oggit/README-en.md

3.7 KiB

OpenGnsys - Git

Installation Guide to Deploy the "oggit" API

This guide outlines the steps necessary to download, install, configure, and deploy the "oggit" API on a server, including Nginx configuration and integration with Nelmio API Doc.

Prerequisites:

  • PHP 8.2 or higher.
  • Composer installed.
  • Nginx configured.
  • Symfony 5.x or 6.x.
  • Git.

1. Download the Repository

Clone the project repository to the server where you want to deploy the API. Make sure the server has access to Git.

2. Install Dependencies

Once the repository is downloaded, navigate to the project root and run the following command to install all necessary dependencies using Composer:

composer install

3. Configure Nginx

Next, configure Nginx to serve the Symfony project. Create a configuration file at /etc/nginx/sites-available/oggit or edit your existing Nginx configuration file.

sudo nano /etc/nginx/sites-available/oggit

Copy and paste the following configuration into the file:

server {
    listen 80;
    server_name localhost;  # Replace 'localhost' with the server's IP address if necessary

    # Document root for the Symfony project
    root /opt/oggit/public;

    # Block to handle requests to /oggit
    location /oggit {
        try_files $uri $uri/ /index.php?$query_string;
        # Increase the timeout for the install oglive
        proxy_read_timeout 600;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        send_timeout 600;
    }

    # Block to handle requests to index.php
    location ~ ^/index.php(/|$) {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Make sure this is correct
        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;
    }

    # Block to return 404 for any PHP requests other than index.php
    location ~ \.php$ {
        return 404;
    }

    # Error and access logs for the Symfony project
    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;
    }
}

Save the changes and enable the site:

sudo ln -s /etc/nginx/sites-available/oggit /etc/nginx/sites-enabled/

Restart Nginx to apply the changes:

sudo systemctl restart nginx

4. Configure Nelmio API Doc

If you're using NelmioApiDocBundle for Swagger documentation, you need to configure Nelmio to accept specific routes, such as the /oggit routes. To do this, edit the Nelmio configuration file:

sudo nano /opt/oggit/config/packages/nelmio_api_doc.yaml

Make sure the file has the following configuration to allow API routes:

nelmio_api_doc:
    documentation:
        info:
            title: Oggit API
            description: Oggit API Documentation
            version: 1.0.0
    areas: # filter documented areas
        path_patterns:
            - ^/oggit

Save the changes.

5. Verify the Installation

  1. Check the API: Access your API at http://<server-IP>/oggit. If everything is correctly configured, you should be able to make requests to the defined endpoints.

  2. Swagger Documentation: Access the Swagger API documentation at http://<server-IP>/api/doc to view the documented endpoints.

6. Logs and Debugging

Nginx logs can be checked to verify any errors during deployment. The logs are located at the following paths:

  • Error logs: /var/log/nginx/oggit_error.log
  • Access logs: /var/log/nginx/oggit_access.log