https://github.com/urnauzao/laravel-horizon-otimizado
Neste projeto temos uma imagem docker, uma aplicação Laravel, uma stack docker compose com redis e mysql, a imagem docker com swoole e octane, e por fim o laravel horizon. Inclusive nesta imagem temos diversas otimizações para o laravel horizon.
https://github.com/urnauzao/laravel-horizon-otimizado
docker-compose laravel laravel-framework laravel-horizon laravel-octane
Last synced: about 1 month ago
JSON representation
Neste projeto temos uma imagem docker, uma aplicação Laravel, uma stack docker compose com redis e mysql, a imagem docker com swoole e octane, e por fim o laravel horizon. Inclusive nesta imagem temos diversas otimizações para o laravel horizon.
- Host: GitHub
- URL: https://github.com/urnauzao/laravel-horizon-otimizado
- Owner: urnauzao
- License: mit
- Created: 2023-06-30T02:06:14.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-23T01:13:44.000Z (almost 2 years ago)
- Last Synced: 2025-04-14T15:14:17.935Z (about 1 month ago)
- Topics: docker-compose, laravel, laravel-framework, laravel-horizon, laravel-octane
- Language: PHP
- Homepage:
- Size: 433 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Laravel Horizon Otimizações
Nesta aplicação iremos boas práticas com o Laravel Horizon afim de melhor o seu uso em ambientes de produção.

## Comandos Docker
Acesse [comandos úteis do Docker para aplicação](./docker/README.md)
## Requirimento:
- Redis
- Laravel Horizon
- Supervisor## Autenticação:
Ajustes necessários:
- `.env` -> Definir `APP_ENV` a chave para o valor de `production`
- `.env` -> Definir `QUEUE_CONNECTION` a chave para o valor de `redis`
- `.env` -> Adicionar chave `HORIZON_BASIC_AUTH_USERNAME`, o valor será utilizado como usuário de login ao painel do horizon.
- `.env` -> Adicionar chave `HORIZON_BASIC_AUTH_PASSWORD`, o valor será utilizado como senha de login ao painel do horizon.
- `app/Providers/HorizonServiceProvider.php` -> Comentar o método `gate`
- `app/Providers/HorizonServiceProvider.php` -> Implementar método `authorization`
- `HorizonBasicAuthMiddleware` -> Executar no CLI o comando `php artisan make:middleware HorizonBasicAuthMiddleware`
- `app/Http/Middleware/HorizonBasicAuthMiddleware.php` -> Implementar o método `handle`
- `config/horizon.php` -> Adicionar campo `basic_auth` com as chaves e valores `username` igual à `env('HORIZON_BASIC_AUTH_USERNAME', 'horizon'),` e `password` igual à `env('HORIZON_BASIC_AUTH_PASSWORD', 'password')`
- `config/horizon.php` -> Adicionar em `middleware` o valor `horizonBasicAuth`
- `app/Http/Kernel.php` -> Adicionar em `middlewareAliases` a chave e `horizonBasicAuth` com valor `\App\Http\Middleware\HorizonBasicAuthMiddleware::class`## Redis:
- `.env` -> Definir `QUEUE_CONNECTION` a chave para o valor de `redis`
- `config/database.php` -> Criar conexão Redis `horizon`
- `config/horizon.php` -> Alterar Horizon Redis Connection## Métricas:
- `config/horizon.php` -> Realizar ajustes em `metrics` e `trim`
- `app/Console/Kernel.php` -> Implementar em `schedule` com o comando `$schedule->command('horizon:snapshot')->everyFiveMinutes();`## Filas:
- `config/horizon.php` -> Aplicar filas
## Balanceamento de Carga:
- `config/horizon.php` -> Ajustar `balance` para `auto`
## Supervisor
- `supervisor` -> Realizar configurações para mais 'programs' e vincular a filas.
## Outras configurações:
- Alterar path do Horizon. `.env` aplicar variavel `HORIZON_PATH` com valor igual ao caminho desejado.
- Aplicar tags em Jobs
- Aplicar ShouldBeUnique ou ShouldBeUniqueUntilProcessing
- Comandos do supervisor
- CronJob
- Criar Job
- Quantidade de Processos
- Dúvidas