Matriz de ambientes (KOLOS)
Documentação KOLOS

Matriz de ambientes (KOLOS)

Referência rápida: o que corre em cada contexto e onde estão as lacunas.

Desenvolvimento local

Modo HTTP DB Fila Reverb Mail
Sail (compose.yaml) nginx no contentor laravel.test Postgres 18 (serviço pgsql) queue:work via Supervisor reverb:start via Supervisor Mailpit
composer dev (sem Sail) php artisan serve .env local incluído no script incluído no script .env
  • Meilisearch existe no compose.yaml como serviço opcional (profile: meilisearch). O projeto não usa Scout/Meilisearch no PHP; não arranca por defeito. Para ativar: docker compose --profile meilisearch up -d.
  • .env.example: valores por omissão são “Laravel mínimo” (sqlite); há bloco comentado Sail com pgsql/redis/mailpit.

Testes / CI

Aspeto Detalhe
Pest / PHPUnit phpunit.xml: SQLite in-memory, QUEUE_CONNECTION=sync, Telescope/Pulse desligados.
Cobertura (<source>) Inclui app/ e src/.
GitHub Actions Node 24 (alinhado com Dockerfile), PHP 8.5, Pint, PHPStan, npm ci + npm run build, php artisan test.
Gitleaks Job security com continue-on-error: true — falhas não bloqueiam build_deploy (útil sem GITLEAKS_LICENSE). Configura o secret quando quiseres enforcement estrito.
Deploy Job build_deploy na main ainda é placeholder (artefacto public/build apenas).

Produção — imagem única (Dockerfile)

Processo Incluído?
Nginx + PHP-FPM Sim (Supervisor docker/prod/supervisord.conf)
queue:work Não (evita duplicar workers se usares Compose com serviço queue)
schedule:work Não
Reverb Não

Deploy só com um contentor (ex.: Dokploy “Dockerfile” sem Compose): não há consumo de fila nem WebSockets até correres processos extra ou usares o Compose de compose.dokploy.yaml.

Produção — Compose (compose.dokploy.yaml)

Serviço Função
app HTTP (porta interna 80)
queue php artisan queue:work
scheduler php artisan schedule:work
reverb php artisan reverb:start
pgsql / redis Dados e cache/sessão/fila

Variáveis críticas: APP_KEY, APP_URL (https), DB_*, Redis, Reverb público (VITE_* / proxy TLS).

Ferramentas no composer.json sem processo dedicado na imagem

  • Horizon: dependência presente; a stack Dokploy documentada usa queue:work. Para Horizon, seria necessário comando/imagem próprios e Redis.
  • Telescope / Pulse: desligar em público via .env em produção.
  • Spatie Backup: requer scheduler a correr (scheduler no Compose).

Documentação relacionada