Instalação com Nginx

Como instalar o OpenDataBio com nginx

Estas instruções são para instalação com nginx. Se preferir Apache, use a página de instalação padrão (Apache).

Requisitos do servidor

  1. Versão suportada do PHP >= 8.2 (8.3 recomendado).
  2. Servidor web: nginx.
  3. Banco SQL: MySQL ou MariaDB (testado com MySQL 8.0 e MariaDB 10.6+).
  4. Extensões PHP necessárias: openssl, pdo, pdo_mysql, mbstring, tokenizer, xml, dom, gd, exif, bcmath, zip, curl, redis.
  5. Redis para filas/cache.
  6. Tectonic para geração de PDF de etiquetas.
  7. Pandoc para renderização bibliográfica (recomendado).
  8. Supervisor para jobs em segundo plano.

Configuração do site no nginx

Crie o arquivo do site (exemplo):

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

Use este bloco base (ajuste domínio/caminhos):

server {
    listen 80;
    server_name seu-dominio.exemplo;

    root /home/odbserver/opendatabio/public;
    index index.php index.html;

    charset utf-8;
    client_max_body_size 300M;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_read_timeout 300;
    }

    location ~ /\. {
        deny all;
    }
}

Ative e recarregue:

sudo ln -s /etc/nginx/sites-available/opendatabio /etc/nginx/sites-enabled/opendatabio
sudo nginx -t
sudo systemctl reload nginx

Content Security Policy (CSP)

No mesmo arquivo do site nginx, adicione no bloco server { ... }:

add_header Content-Security-Policy-Report-Only "
  default-src 'self';
  base-uri 'self';
  form-action 'self';
  frame-ancestors 'self';
  object-src 'none';
  script-src 'self' 'unsafe-eval';
  style-src 'self' 'unsafe-inline';
  img-src 'self' data: https://server.arcgisonline.com https://*.tile.openstreetmap.org;
  font-src 'self' data:;
  connect-src 'self';
" always;

Depois recarregue:

sudo nginx -t
sudo systemctl reload nginx

Notas:

  1. Comece com Report-Only e depois migre para enforcement após validar logs.
  2. https://server.arcgisonline.com e https://*.tile.openstreetmap.org são necessários para os tiles do mapa.

Instalações em subcaminho (/opendatabio)

Se sua instalação roda em subcaminho (por exemplo http://localhost/opendatabio), ajuste no .env:

APP_URL=http://localhost/opendatabio
ASSET_URL=http://localhost/opendatabio

Depois atualize os assets gerados e arquivos do Livewire:

php artisan livewire:publish --assets
php artisan optimize:clear
npm run build

Etapas compartilhadas da aplicação

Para evitar redundância, use as mesmas seções da instalação Apache (também válidas para implantação com nginx):

  1. Configurações de PHP (php.ini) em Instalação padrão
  2. Configurar o supervisord em Instalação padrão
  3. Permissões de arquivos e pastas em Instalação padrão
  4. Instale OpenDataBio em Instalação padrão
  5. Configurações pós-instalação em Instalação padrão
Última modificação March 11, 2026: Updated installation instructions (d5014ec)