diff --git a/.env.prod.example b/.env.prod.example index 63b73ad..e51a700 100644 --- a/.env.prod.example +++ b/.env.prod.example @@ -76,7 +76,6 @@ REVENUECAT_SUBSCRIPTION_ENTITLEMENT="bowli Pro" REVENUECAT_CERTIFICATION_ENTITLEMENT=certification HEALTH_SECRET_TOKEN= -HORIZON_HEARTBEAT_URL= SCHEDULE_HEARTBEAT_URL= IMAGE_TAG=latest diff --git a/AGENTS.md b/AGENTS.md index 8ee8d9f..4516d3b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -13,7 +13,6 @@ This application is a Laravel application and its main Laravel ecosystems packag - filament/filament (FILAMENT) - v5 - laravel/ai (AI) - v0 - laravel/framework (LARAVEL) - v12 -- laravel/horizon (HORIZON) - v5 - laravel/prompts (PROMPTS) - v0 - laravel/sanctum (SANCTUM) - v4 - laravel/scout (SCOUT) - v11 diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index d82b42a..b31aa9d 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -21,7 +21,6 @@ use Illuminate\Support\ServiceProvider; use Spatie\Health\Checks\Checks\DatabaseCheck; use Spatie\Health\Checks\Checks\DebugModeCheck; use Spatie\Health\Checks\Checks\EnvironmentCheck; -use Spatie\Health\Checks\Checks\HorizonCheck; use Spatie\Health\Checks\Checks\MeilisearchCheck; use Spatie\Health\Checks\Checks\OptimizedAppCheck; use Spatie\Health\Checks\Checks\RedisCheck; @@ -98,7 +97,6 @@ class AppServiceProvider extends ServiceProvider UsedDiskSpaceCheck::new(), RedisCheck::new(), ScheduleCheck::new(), - HorizonCheck::new(), OptimizedAppCheck::new(), EnvironmentCheck::new(), DebugModeCheck::new(), diff --git a/app/Providers/Filament/DashboardPanelProvider.php b/app/Providers/Filament/DashboardPanelProvider.php index d2acdb1..6c6486f 100644 --- a/app/Providers/Filament/DashboardPanelProvider.php +++ b/app/Providers/Filament/DashboardPanelProvider.php @@ -7,7 +7,6 @@ use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\AuthenticateSession; use Filament\Http\Middleware\DisableBladeIconComponents; use Filament\Http\Middleware\DispatchServingFilamentEvent; -use Filament\Navigation\NavigationItem; use Filament\Pages\Dashboard; use Filament\Panel; use Filament\PanelProvider; @@ -19,7 +18,6 @@ use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; use Illuminate\View\Middleware\ShareErrorsFromSession; -use ShuvroRoy\FilamentSpatieLaravelBackup\FilamentSpatieLaravelBackupPlugin; use ShuvroRoy\FilamentSpatieLaravelHealth\FilamentSpatieLaravelHealthPlugin; class DashboardPanelProvider extends PanelProvider @@ -36,14 +34,6 @@ class DashboardPanelProvider extends PanelProvider ->colors([ 'primary' => Color::hex('#007f3a'), ]) - ->navigationItems([ - NavigationItem::make('Horizon') - ->url(url('/horizon'), shouldOpenInNewTab: true) - ->icon('heroicon-o-queue-list') - ->group('Settings') - ->sort(3) - ->visible(fn (): bool => auth()->user()?->isAdmin() === true), - ]) ->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages') ->pages([ @@ -70,7 +60,6 @@ class DashboardPanelProvider extends PanelProvider ->plugins([ FilamentSpatieLaravelHealthPlugin::make(), FilamentExceptionsPlugin::make(), - FilamentSpatieLaravelBackupPlugin::make(), ]); } } diff --git a/app/Providers/HorizonServiceProvider.php b/app/Providers/HorizonServiceProvider.php deleted file mode 100644 index 12ed16e..0000000 --- a/app/Providers/HorizonServiceProvider.php +++ /dev/null @@ -1,33 +0,0 @@ - $user?->isAdmin() === true); - } -} diff --git a/bootstrap/providers.php b/bootstrap/providers.php index fd3b51a..1decb33 100644 --- a/bootstrap/providers.php +++ b/bootstrap/providers.php @@ -3,5 +3,4 @@ return [ App\Providers\AppServiceProvider::class, App\Providers\Filament\DashboardPanelProvider::class, - App\Providers\HorizonServiceProvider::class, ]; diff --git a/compose.yaml b/compose.yaml index ff30759..59fc637 100644 --- a/compose.yaml +++ b/compose.yaml @@ -83,7 +83,7 @@ services: - 'http://127.0.0.1:7700/health' retries: 3 timeout: 5s - horizon: + worker: build: context: ./vendor/laravel/sail/runtimes/8.5 dockerfile: Dockerfile @@ -104,7 +104,7 @@ services: - sail depends_on: - redis - command: 'php artisan horizon' + command: 'php artisan queue:work redis --sleep=3 --tries=1 --timeout=60 --memory=128' networks: sail: driver: bridge diff --git a/composer.json b/composer.json index 83b6fc7..2f4f4d2 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,6 @@ "http-interop/http-factory-guzzle": "^1.2", "laravel/ai": "^0.6.8", "laravel/framework": "^12.0", - "laravel/horizon": "^5.45", "laravel/octane": "^2.17", "laravel/sanctum": "^4.0", "laravel/scout": "^11.0", @@ -24,7 +23,6 @@ "predis/predis": "^3.4", "resend/resend-laravel": "^1.4", "scalar/laravel": "^0.2.0", - "shuvroroy/filament-spatie-laravel-backup": "^3.3", "shuvroroy/filament-spatie-laravel-health": "^3.2", "spatie/laravel-health": "^1.39" }, diff --git a/composer.lock b/composer.lock index ad4a172..c964430 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "df1fb81f35dace6e7c3dd49b05ade882", + "content-hash": "df2b16c297c1e56ece6d0d3aa9b6fc5e", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -2916,86 +2916,6 @@ }, "time": "2026-02-24T14:35:15+00:00" }, - { - "name": "laravel/horizon", - "version": "v5.45.3", - "source": { - "type": "git", - "url": "https://github.com/laravel/horizon.git", - "reference": "80c4de73c56227c625e5a3c6bfaddff760ab0962" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/80c4de73c56227c625e5a3c6bfaddff760ab0962", - "reference": "80c4de73c56227c625e5a3c6bfaddff760ab0962", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-pcntl": "*", - "ext-posix": "*", - "illuminate/contracts": "^9.21|^10.0|^11.0|^12.0|^13.0", - "illuminate/queue": "^9.21|^10.0|^11.0|^12.0|^13.0", - "illuminate/support": "^9.21|^10.0|^11.0|^12.0|^13.0", - "laravel/sentinel": "^1.0", - "nesbot/carbon": "^2.17|^3.0", - "php": "^8.0", - "ramsey/uuid": "^4.0", - "symfony/console": "^6.0|^7.0|^8.0", - "symfony/error-handler": "^6.0|^7.0|^8.0", - "symfony/polyfill-php83": "^1.28", - "symfony/process": "^6.0|^7.0|^8.0" - }, - "require-dev": { - "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.56|^8.37|^9.16|^10.9|^11.0", - "phpstan/phpstan": "^1.10|^2.0", - "predis/predis": "^1.1|^2.0|^3.0" - }, - "suggest": { - "ext-redis": "Required to use the Redis PHP driver.", - "predis/predis": "Required when not using the Redis PHP driver (^1.1|^2.0|^3.0)." - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "Horizon": "Laravel\\Horizon\\Horizon" - }, - "providers": [ - "Laravel\\Horizon\\HorizonServiceProvider" - ] - }, - "branch-alias": { - "dev-master": "6.x-dev" - } - }, - "autoload": { - "psr-4": { - "Laravel\\Horizon\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "Dashboard and code-driven configuration for Laravel queues.", - "keywords": [ - "laravel", - "queue" - ], - "support": { - "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.45.3" - }, - "time": "2026-03-11T14:28:04+00:00" - }, { "name": "laravel/octane", "version": "v2.17.5", @@ -3287,65 +3207,6 @@ }, "time": "2026-03-10T19:16:37+00:00" }, - { - "name": "laravel/sentinel", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/laravel/sentinel.git", - "reference": "7a98db53e0d9d6f61387f3141c07477f97425603" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/sentinel/zipball/7a98db53e0d9d6f61387f3141c07477f97425603", - "reference": "7a98db53e0d9d6f61387f3141c07477f97425603", - "shasum": "" - }, - "require": { - "ext-json": "*", - "illuminate/container": "^8.37|^9.0|^10.0|^11.0|^12.0|^13.0", - "php": "^8.0" - }, - "require-dev": { - "laravel/pint": "^1.27", - "orchestra/testbench": "^6.47.1|^7.56|^8.37|^9.16|^10.9|^11.0", - "phpstan/phpstan": "^2.1.33" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Laravel\\Sentinel\\SentinelServiceProvider" - ] - }, - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Laravel\\Sentinel\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - }, - { - "name": "Mior Muhammad Zaki", - "email": "mior@laravel.com" - } - ], - "support": { - "source": "https://github.com/laravel/sentinel/tree/v1.0.1" - }, - "time": "2026-02-12T13:32:54+00:00" - }, { "name": "laravel/serializable-closure", "version": "v2.0.10", @@ -6781,82 +6642,6 @@ ], "time": "2022-12-17T21:53:22+00:00" }, - { - "name": "shuvroroy/filament-spatie-laravel-backup", - "version": "v3.3.0", - "source": { - "type": "git", - "url": "https://github.com/shuvroroy/filament-spatie-laravel-backup.git", - "reference": "e9a360bfa20efb6c3824288d8d3f2529307ec252" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/shuvroroy/filament-spatie-laravel-backup/zipball/e9a360bfa20efb6c3824288d8d3f2529307ec252", - "reference": "e9a360bfa20efb6c3824288d8d3f2529307ec252", - "shasum": "" - }, - "require": { - "filament/filament": "^4.0|^5.0", - "php": "^8.2", - "spatie/laravel-backup": "^8.0|^9.0", - "spatie/laravel-package-tools": "^1.9" - }, - "require-dev": { - "larastan/larastan": "^3.0", - "laravel/pint": "^1.0", - "nunomaduro/collision": "^8.1.1||^7.10.0", - "orchestra/testbench": "^9.0||^10.0", - "pestphp/pest": "^2.0||^3.0", - "pestphp/pest-plugin-arch": "^2.0||^3.0", - "pestphp/pest-plugin-laravel": "^2.0||^3.0", - "phpstan/extension-installer": "^1.4", - "phpstan/phpstan": "^2.1", - "phpstan/phpstan-deprecation-rules": "^2.0", - "phpstan/phpstan-phpunit": "^2.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "ShuvroRoy\\FilamentSpatieLaravelBackup\\FilamentSpatieLaravelBackupServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "ShuvroRoy\\FilamentSpatieLaravelBackup\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Shuvro Roy", - "email": "shuvro.nsu.cse@gmail.com", - "role": "Developer" - } - ], - "description": "This plugin is built on top of Spatie's Laravel-backup package", - "homepage": "https://github.com/shuvroroy/filament-spatie-laravel-backup", - "keywords": [ - "filament", - "filament-spatie-laravel-backup", - "laravel-backup" - ], - "support": { - "issues": "https://github.com/shuvroroy/filament-spatie-laravel-backup/issues", - "source": "https://github.com/shuvroroy/filament-spatie-laravel-backup/tree/v3.3.0" - }, - "funding": [ - { - "url": "https://www.buymeacoffee.com/shuvroroy", - "type": "buy_me_a_coffee" - } - ], - "time": "2026-01-17T04:50:15+00:00" - }, { "name": "shuvroroy/filament-spatie-laravel-health", "version": "v3.2.0", @@ -6933,69 +6718,6 @@ ], "time": "2026-01-17T12:24:55+00:00" }, - { - "name": "spatie/db-dumper", - "version": "3.8.3", - "source": { - "type": "git", - "url": "https://github.com/spatie/db-dumper.git", - "reference": "eac3221fbe27fac51f388600d27b67b1b079406e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/db-dumper/zipball/eac3221fbe27fac51f388600d27b67b1b079406e", - "reference": "eac3221fbe27fac51f388600d27b67b1b079406e", - "shasum": "" - }, - "require": { - "php": "^8.0", - "symfony/process": "^5.0|^6.0|^7.0|^8.0" - }, - "require-dev": { - "pestphp/pest": "^1.22" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\DbDumper\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "Dump databases", - "homepage": "https://github.com/spatie/db-dumper", - "keywords": [ - "database", - "db-dumper", - "dump", - "mysqldump", - "spatie" - ], - "support": { - "source": "https://github.com/spatie/db-dumper/tree/3.8.3" - }, - "funding": [ - { - "url": "https://spatie.be/open-source/support-us", - "type": "custom" - }, - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2026-01-05T16:26:03+00:00" - }, { "name": "spatie/enum", "version": "3.13.0", @@ -7131,106 +6853,6 @@ ], "time": "2024-05-17T09:06:10+00:00" }, - { - "name": "spatie/laravel-backup", - "version": "9.4.1", - "source": { - "type": "git", - "url": "https://github.com/spatie/laravel-backup.git", - "reference": "0dff805039617b4a6f48291cef0697a73bc0392e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/0dff805039617b4a6f48291cef0697a73bc0392e", - "reference": "0dff805039617b4a6f48291cef0697a73bc0392e", - "shasum": "" - }, - "require": { - "ext-zip": "^1.14.0", - "illuminate/console": "^12.40", - "illuminate/contracts": "^12.40", - "illuminate/events": "^12.40", - "illuminate/filesystem": "^12.40", - "illuminate/notifications": "^12.40", - "illuminate/support": "^12.40", - "league/flysystem": "^3.30.2", - "php": "^8.3", - "spatie/db-dumper": "^3.8.1", - "spatie/laravel-package-tools": "^1.92.7", - "spatie/laravel-signal-aware-command": "^2.1", - "spatie/temporary-directory": "^2.3", - "symfony/console": "^7.3.6|^8.0", - "symfony/finder": "^7.3.5|^8.0" - }, - "require-dev": { - "composer-runtime-api": "^2.0", - "ext-pcntl": "*", - "larastan/larastan": "^3.8", - "laravel/slack-notification-channel": "^3.7", - "league/flysystem-aws-s3-v3": "^3.30.1", - "mockery/mockery": "^1.6.12", - "orchestra/testbench": "^10.8", - "pestphp/pest": "^4.1.5", - "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpstan/phpstan-phpunit": "^2.0.8", - "rector/rector": "^2.2.8" - }, - "suggest": { - "laravel/slack-notification-channel": "Required for sending notifications via Slack" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Spatie\\Backup\\BackupServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/Helpers/functions.php" - ], - "psr-4": { - "Spatie\\Backup\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "A Laravel package to backup your application", - "homepage": "https://github.com/spatie/laravel-backup", - "keywords": [ - "backup", - "database", - "laravel-backup", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/laravel-backup/issues", - "source": "https://github.com/spatie/laravel-backup/tree/9.4.1" - }, - "funding": [ - { - "url": "https://github.com/sponsors/spatie", - "type": "github" - }, - { - "url": "https://spatie.be/open-source/support-us", - "type": "other" - } - ], - "time": "2026-02-15T19:05:20+00:00" - }, { "name": "spatie/laravel-health", "version": "1.39.1", @@ -7384,81 +7006,6 @@ ], "time": "2026-02-21T12:49:54+00:00" }, - { - "name": "spatie/laravel-signal-aware-command", - "version": "2.1.2", - "source": { - "type": "git", - "url": "https://github.com/spatie/laravel-signal-aware-command.git", - "reference": "54dcc1efd152bfb3eb0faf56a5fc28569b864b5d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-signal-aware-command/zipball/54dcc1efd152bfb3eb0faf56a5fc28569b864b5d", - "reference": "54dcc1efd152bfb3eb0faf56a5fc28569b864b5d", - "shasum": "" - }, - "require": { - "illuminate/contracts": "^11.0|^12.0|^13.0", - "php": "^8.2", - "spatie/laravel-package-tools": "^1.4.3", - "symfony/console": "^7.0|^8.0" - }, - "require-dev": { - "brianium/paratest": "^6.2|^7.0", - "ext-pcntl": "*", - "nunomaduro/collision": "^5.3|^6.0|^7.0|^8.0", - "orchestra/testbench": "^9.0|^10.0", - "pestphp/pest-plugin-laravel": "^1.3|^2.0|^3.0", - "phpunit/phpunit": "^9.5|^10|^11", - "spatie/laravel-ray": "^1.17" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "Signal": "Spatie\\SignalAwareCommand\\Facades\\Signal" - }, - "providers": [ - "Spatie\\SignalAwareCommand\\SignalAwareCommandServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Spatie\\SignalAwareCommand\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "role": "Developer" - } - ], - "description": "Handle signals in artisan commands", - "homepage": "https://github.com/spatie/laravel-signal-aware-command", - "keywords": [ - "laravel", - "laravel-signal-aware-command", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/laravel-signal-aware-command/issues", - "source": "https://github.com/spatie/laravel-signal-aware-command/tree/2.1.2" - }, - "funding": [ - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2026-02-22T08:16:31+00:00" - }, { "name": "spatie/regex", "version": "3.1.1", diff --git a/config/health.php b/config/health.php index 96356fb..9db44d9 100644 --- a/config/health.php +++ b/config/health.php @@ -111,15 +111,6 @@ return [ 'url' => '/oh-dear-health-check-results', ], - /* - * You can specify a heartbeat URL for the Horizon check. - * This URL will be pinged if the Horizon check is successful. - * This way you can get notified if Horizon goes down. - */ - 'horizon' => [ - 'heartbeat_url' => env('HORIZON_HEARTBEAT_URL'), - ], - /* * You can specify a heartbeat URL for the Schedule check. * This URL will be pinged if the Schedule check is successful. @@ -137,11 +128,7 @@ return [ */ 'theme' => 'light', - /* - * When enabled, completed `HealthQueueJob`s will be displayed - * in Horizon's silenced jobs screen. - */ - 'silence_health_queue_job' => true, + 'silence_health_queue_job' => false, /* * The response code to use for HealthCheckJsonResultsController when a health diff --git a/config/horizon.php b/config/horizon.php deleted file mode 100644 index 32f8f0d..0000000 --- a/config/horizon.php +++ /dev/null @@ -1,254 +0,0 @@ - env('HORIZON_NAME'), - - /* - |-------------------------------------------------------------------------- - | Horizon Domain - |-------------------------------------------------------------------------- - | - | This is the subdomain where Horizon will be accessible from. If this - | setting is null, Horizon will reside under the same domain as the - | application. Otherwise, this value will serve as the subdomain. - | - */ - - 'domain' => env('HORIZON_DOMAIN'), - - /* - |-------------------------------------------------------------------------- - | Horizon Path - |-------------------------------------------------------------------------- - | - | This is the URI path where Horizon will be accessible from. Feel free - | to change this path to anything you like. Note that the URI will not - | affect the paths of its internal API that aren't exposed to users. - | - */ - - 'path' => env('HORIZON_PATH', 'horizon'), - - /* - |-------------------------------------------------------------------------- - | Horizon Redis Connection - |-------------------------------------------------------------------------- - | - | This is the name of the Redis connection where Horizon will store the - | meta information required for it to function. It includes the list - | of supervisors, failed jobs, job metrics, and other information. - | - */ - - 'use' => 'default', - - /* - |-------------------------------------------------------------------------- - | Horizon Redis Prefix - |-------------------------------------------------------------------------- - | - | This prefix will be used when storing all Horizon data in Redis. You - | may modify the prefix when you are running multiple installations - | of Horizon on the same server so that they don't have problems. - | - */ - - 'prefix' => env( - 'HORIZON_PREFIX', - Str::slug(env('APP_NAME', 'laravel'), '_').'_horizon:' - ), - - /* - |-------------------------------------------------------------------------- - | Horizon Route Middleware - |-------------------------------------------------------------------------- - | - | These middleware will get attached onto each Horizon route, giving you - | the chance to add your own middleware to this list or change any of - | the existing middleware. Or, you can simply stick with this list. - | - */ - - 'middleware' => ['web'], - - /* - |-------------------------------------------------------------------------- - | Queue Wait Time Thresholds - |-------------------------------------------------------------------------- - | - | This option allows you to configure when the LongWaitDetected event - | will be fired. Every connection / queue combination may have its - | own, unique threshold (in seconds) before this event is fired. - | - */ - - 'waits' => [ - 'redis:default' => 60, - ], - - /* - |-------------------------------------------------------------------------- - | Job Trimming Times - |-------------------------------------------------------------------------- - | - | Here you can configure for how long (in minutes) you desire Horizon to - | persist the recent and failed jobs. Typically, recent jobs are kept - | for one hour while all failed jobs are stored for an entire week. - | - */ - - 'trim' => [ - 'recent' => 60, - 'pending' => 60, - 'completed' => 60, - 'recent_failed' => 10080, - 'failed' => 10080, - 'monitored' => 10080, - ], - - /* - |-------------------------------------------------------------------------- - | Silenced Jobs - |-------------------------------------------------------------------------- - | - | Silencing a job will instruct Horizon to not place the job in the list - | of completed jobs within the Horizon dashboard. This setting may be - | used to fully remove any noisy jobs from the completed jobs list. - | - */ - - 'silenced' => [ - // App\Jobs\ExampleJob::class, - ], - - 'silenced_tags' => [ - // 'notifications', - ], - - /* - |-------------------------------------------------------------------------- - | Metrics - |-------------------------------------------------------------------------- - | - | Here you can configure how many snapshots should be kept to display in - | the metrics graph. This will get used in combination with Horizon's - | `horizon:snapshot` schedule to define how long to retain metrics. - | - */ - - 'metrics' => [ - 'trim_snapshots' => [ - 'job' => 24, - 'queue' => 24, - ], - ], - - /* - |-------------------------------------------------------------------------- - | Fast Termination - |-------------------------------------------------------------------------- - | - | When this option is enabled, Horizon's "terminate" command will not - | wait on all of the workers to terminate unless the --wait option - | is provided. Fast termination can shorten deployment delay by - | allowing a new instance of Horizon to start while the last - | instance will continue to terminate each of its workers. - | - */ - - 'fast_termination' => false, - - /* - |-------------------------------------------------------------------------- - | Memory Limit (MB) - |-------------------------------------------------------------------------- - | - | This value describes the maximum amount of memory the Horizon master - | supervisor may consume before it is terminated and restarted. For - | configuring these limits on your workers, see the next section. - | - */ - - 'memory_limit' => 64, - - /* - |-------------------------------------------------------------------------- - | Queue Worker Configuration - |-------------------------------------------------------------------------- - | - | Here you may define the queue worker settings used by your application - | in all environments. These supervisors and settings handle all your - | queued jobs and will be provisioned by Horizon during deployment. - | - */ - - 'defaults' => [ - 'supervisor-1' => [ - 'connection' => 'redis', - 'queue' => ['default'], - 'balance' => 'auto', - 'autoScalingStrategy' => 'time', - 'maxProcesses' => 1, - 'maxTime' => 0, - 'maxJobs' => 0, - 'memory' => 128, - 'tries' => 1, - 'timeout' => 60, - 'nice' => 0, - ], - ], - - 'environments' => [ - 'production' => [ - 'supervisor-1' => [ - 'maxProcesses' => 10, - 'balanceMaxShift' => 1, - 'balanceCooldown' => 3, - ], - ], - - 'local' => [ - 'supervisor-1' => [ - 'maxProcesses' => 3, - ], - ], - ], - - /* - |-------------------------------------------------------------------------- - | File Watcher Configuration - |-------------------------------------------------------------------------- - | - | The following list of directories and files will be watched when using - | the `horizon:listen` command. Whenever any directories or files are - | changed, Horizon will automatically restart to apply all changes. - | - */ - - 'watch' => [ - 'app', - 'bootstrap', - 'config/**/*.php', - 'database/**/*.php', - 'public/**/*.php', - 'resources/**/*.php', - 'routes', - 'composer.lock', - 'composer.json', - '.env', - ], -]; diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 03ccac4..6ec9df5 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -73,15 +73,26 @@ services: timeout: 5s retries: 12 - horizon: + worker: <<: *app-service - container_name: daily-meal-api-horizon + container_name: daily-meal-api-worker healthcheck: disable: true depends_on: app: condition: service_healthy - command: ["php", "artisan", "horizon"] + command: + [ + "php", + "artisan", + "queue:work", + "redis", + "--sleep=3", + "--tries=1", + "--timeout=60", + "--memory=128", + "--max-time=3600", + ] scheduler: <<: *app-service diff --git a/docker/database-backup/restore-production b/docker/database-backup/restore-production index 2c05163..3db5b75 100755 --- a/docker/database-backup/restore-production +++ b/docker/database-backup/restore-production @@ -20,7 +20,7 @@ if [ "$confirmation" != "$confirmation_phrase" ]; then exit 1 fi -docker compose -f "$compose_file" stop app horizon scheduler db-backup +docker compose -f "$compose_file" stop app worker scheduler db-backup if ! RESTORE_CONFIRM="$confirmation_phrase" docker compose \ -f "$compose_file" \ @@ -32,6 +32,6 @@ then exit 1 fi -docker compose -f "$compose_file" up -d app horizon scheduler db-backup +docker compose -f "$compose_file" up -d app worker scheduler db-backup echo "Application restarted after database restoration." diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 94afb0d..094632e 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -3,7 +3,7 @@ set -eu cd /app -# Allow Docker Compose services such as Horizon and the scheduler to override +# Allow Docker Compose services such as the queue worker and scheduler to override # the default FrankenPHP process with their own command. if [ "$#" -gt 0 ]; then exec "$@" diff --git a/lang/vendor/filament-spatie-backup/ar/backup.php b/lang/vendor/filament-spatie-backup/ar/backup.php deleted file mode 100644 index 25840ac..0000000 --- a/lang/vendor/filament-spatie-backup/ar/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'تحميل', - 'delete' => 'حذف', - ], - - 'fields' => [ - 'path' => 'المسار', - 'disk' => 'قرص التخزين', - 'date' => 'التاريخ', - 'size' => 'الحجم', - ], - - 'filters' => [ - 'disk' => 'قرص التخزين', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'الإسم', - 'disk' => 'قرص التخزين', - 'healthy' => 'الحالة', - 'amount' => 'السعة', - 'newest' => 'الأحدث', - 'used_storage' => 'السعة المستخدمة', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'إنشاء نسخة إحتياطية', - ], - - 'heading' => 'النسخ الإحتياطي', - - 'messages' => [ - 'backup_success' => 'إنشاء نسخة إحتياطية في الخلفية.', - 'backup_delete_success' => 'تم حذف النسخة الإحتياطية بنجاح.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'قاعدة البيانات', - 'only_files' => 'الملفات', - 'db_and_files' => 'الملفات والقاعدة', - ], - - 'label' => 'الرجاء الاختيار لإنشاء نسخة إحتياطية', - ], - - 'navigation' => [ - 'group' => 'إعدادات', - 'label' => 'النسخ الإحتياطي', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/cs/backup.php b/lang/vendor/filament-spatie-backup/cs/backup.php deleted file mode 100644 index bad8f27..0000000 --- a/lang/vendor/filament-spatie-backup/cs/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Stáhnout', - 'delete' => 'Smazat', - ], - - 'fields' => [ - 'path' => 'Cesta', - 'disk' => 'Disk', - 'date' => 'Datum', - 'size' => 'Velikost', - ], - - 'filters' => [ - 'disk' => 'Disk', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Název', - 'disk' => 'Disk', - 'healthy' => 'Stav zdraví', - 'amount' => 'Počet', - 'newest' => 'Nejnovější', - 'used_storage' => 'Využité místo', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Vytvořit zálohu', - ], - - 'heading' => 'Zálohy', - - 'messages' => [ - 'backup_success' => 'Nová záloha byla úspěšně vytvořena.', - 'backup_delete_success' => '"Záloha byla úspěšně odstraněna.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Pouze databáze', - 'only_files' => 'Pouze soubory', - 'db_and_files' => 'Databáze a soubory', - ], - - 'label' => 'Vyberte prosím jednu z možností', - ], - - 'navigation' => [ - 'group' => 'Nastavení', - 'label' => 'Zálohy', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/de/backup.php b/lang/vendor/filament-spatie-backup/de/backup.php deleted file mode 100644 index c9d0541..0000000 --- a/lang/vendor/filament-spatie-backup/de/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Download', - 'delete' => 'Löschen', - ], - - 'fields' => [ - 'path' => 'Pfad', - 'disk' => 'Speicher', - 'date' => 'Datum', - 'size' => 'Größe', - ], - - 'filters' => [ - 'disk' => 'Speicher', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Name', - 'disk' => 'Speicher', - 'healthy' => 'Gesund', - 'amount' => 'Anzahl', - 'newest' => 'Neuestes', - 'used_storage' => 'Verwendeter Speicher', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Sicherung erstellen', - ], - - 'heading' => 'Backups', - - 'messages' => [ - 'backup_success' => 'Erstelle eine neue Sicherung im Hintergrund.', - 'backup_delete_success' => 'Lösche die Sicherung im Hintergrund.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Nur DB', - 'only_files' => 'Nur Dateien', - 'db_and_files' => 'DB & Dateien', - ], - - 'label' => 'Bitte eine Option auswählen', - ], - - 'navigation' => [ - 'group' => 'Einstellungen', - 'label' => 'Sicherungen', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/en/backup.php b/lang/vendor/filament-spatie-backup/en/backup.php deleted file mode 100644 index 387d562..0000000 --- a/lang/vendor/filament-spatie-backup/en/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Download', - 'delete' => 'Delete', - ], - - 'fields' => [ - 'path' => 'Path', - 'disk' => 'Disk', - 'date' => 'Date', - 'size' => 'Size', - ], - - 'filters' => [ - 'disk' => 'Disk', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Name', - 'disk' => 'Disk', - 'healthy' => 'Healthy', - 'amount' => 'Amount', - 'newest' => 'Newest', - 'used_storage' => 'Used Storage', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Create Backup', - ], - - 'heading' => 'Backups', - - 'messages' => [ - 'backup_success' => 'Creating a new backup in background.', - 'backup_delete_success' => 'Deleting this backup in background.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Only DB', - 'only_files' => 'Only Files', - 'db_and_files' => 'DB & Files', - ], - - 'label' => 'Please choose an option', - ], - - 'navigation' => [ - 'group' => 'Settings', - 'label' => 'Backups', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/es/backup.php b/lang/vendor/filament-spatie-backup/es/backup.php deleted file mode 100644 index 553bac5..0000000 --- a/lang/vendor/filament-spatie-backup/es/backup.php +++ /dev/null @@ -1,69 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Descargar', - 'delete' => 'Eliminar', - ], - - 'fields' => [ - 'path' => 'Ruta', - 'disk' => 'Disco', - 'date' => 'Fecha', - 'size' => 'Tamaño', - ], - - 'filters' => [ - 'disk' => 'Disco', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Nombre', - 'disk' => 'Disco', - 'healthy' => 'Estado', - 'amount' => 'Cantidad', - 'newest' => 'Más reciente', - 'used_storage' => 'Espacio utilizado', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Hacer respaldo', - ], - - 'heading' => 'Respaldos', - - 'messages' => [ - 'backup_success' => 'Creando un nuevo respaldo en segundo plano.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Solo la base de datos', - 'only_files' => 'Solo los archivos', - 'db_and_files' => 'Base de datos y archivos', - ], - - 'label' => 'Elija una opción', - ], - - 'navigation' => [ - 'group' => 'Configuraciones', - 'label' => 'Respaldos', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/fa/backup.php b/lang/vendor/filament-spatie-backup/fa/backup.php deleted file mode 100644 index 7aeca84..0000000 --- a/lang/vendor/filament-spatie-backup/fa/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'دانلود', - 'delete' => 'حذف', - ], - - 'fields' => [ - 'path' => 'مسیر', - 'disk' => 'دیسک', - 'date' => 'تاریخ', - 'size' => 'حجم', - ], - - 'filters' => [ - 'disk' => 'دیسک', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'نام', - 'disk' => 'دیسک', - 'healthy' => 'سالم', - 'amount' => 'تعداد', - 'newest' => 'جدیدترین', - 'used_storage' => 'فضای استفاده شده', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'ایجاد پشتیبان', - ], - - 'heading' => 'پشتیبان‌ها', - - 'messages' => [ - 'backup_success' => 'در حال ایجاد پشتیبان در پس‌زمینه.', - 'backup_delete_success' => 'در حال حذف این پشتیبان در پس‌زمینه.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'فقط دیتابیس', - 'only_files' => 'فقط فایل‌ها', - 'db_and_files' => 'فایل‌ها و دیتابیس', - ], - - 'label' => 'یک گزینه را انتخاب کنید', - ], - - 'navigation' => [ - 'group' => 'تنظیمات', - 'label' => 'پشتیبان‌ها', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/fr/backup.php b/lang/vendor/filament-spatie-backup/fr/backup.php deleted file mode 100644 index bce0073..0000000 --- a/lang/vendor/filament-spatie-backup/fr/backup.php +++ /dev/null @@ -1,69 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Télécharger', - 'delete' => 'Supprimer', - ], - - 'fields' => [ - 'path' => 'Chemin d\'accès', - 'disk' => 'Disque', - 'date' => 'Date', - 'size' => 'Taille', - ], - - 'filters' => [ - 'disk' => 'Disque', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Nom', - 'disk' => 'Disque', - 'healthy' => 'Statut', - 'amount' => 'Montant', - 'newest' => 'Plus récent', - 'used_storage' => 'Stockage utilisé', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Créer une sauvegarde', - ], - - 'heading' => 'Sauvegardes', - - 'messages' => [ - 'backup_success' => 'Création d\'une nouvelle sauvegarde en arrière-plan.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Seulement la base de données', - 'only_files' => 'Seulement les fichiers', - 'db_and_files' => 'Base de données & Fichiers', - ], - - 'label' => 'Veuillez choisir une option', - ], - - 'navigation' => [ - 'group' => 'Paramètres', - 'label' => 'Sauvegardes', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/id/backup.php b/lang/vendor/filament-spatie-backup/id/backup.php deleted file mode 100644 index 7caa223..0000000 --- a/lang/vendor/filament-spatie-backup/id/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Unduh', - 'delete' => 'Hapus', - ], - - 'fields' => [ - 'path' => 'Lokasi', - 'disk' => 'Penyimpanan', - 'date' => 'Tanggal', - 'size' => 'Ukuran', - ], - - 'filters' => [ - 'disk' => 'Penyimpanan', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Nama', - 'disk' => 'Penyimpanan', - 'healthy' => 'Sehat', - 'amount' => 'Jumlah', - 'newest' => 'Terbaru', - 'used_storage' => 'Penyimpanan Terpakai', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Buat Cadangan', - ], - - 'heading' => 'Cadangan', - - 'messages' => [ - 'backup_success' => 'Membuat cadangan baru di latar belakang.', - 'backup_delete_success' => 'Menghapus cadangan ini di latar belakang.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Hanya DB', - 'only_files' => 'Hanya Berkas', - 'db_and_files' => 'DB & Berkas', - ], - - 'label' => 'Silakan pilih salah satu opsi', - ], - - 'navigation' => [ - 'group' => 'Pengaturan', - 'label' => 'Cadangan', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/it/backup.php b/lang/vendor/filament-spatie-backup/it/backup.php deleted file mode 100644 index 3753da3..0000000 --- a/lang/vendor/filament-spatie-backup/it/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Download', - 'delete' => 'Cancella', - ], - - 'fields' => [ - 'path' => 'Percorso', - 'disk' => 'Disco', - 'date' => 'Data', - 'size' => 'Dimensione', - ], - - 'filters' => [ - 'disk' => 'Disco', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Nome', - 'disk' => 'Disco', - 'healthy' => 'Salute', - 'amount' => 'Quantità', - 'newest' => 'Più recente', - 'used_storage' => 'Storage Utilizzato', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Crea Backup', - ], - - 'heading' => 'Backup', - - 'messages' => [ - 'backup_success' => 'Creazione di un nuovo backup in background.', - 'backup_delete_success' => 'Eliminazione di questo backup in background.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Solo DB', - 'only_files' => 'Solo File', - 'db_and_files' => 'DB & File', - ], - - 'label' => "Scegli un'opzione", - ], - - 'navigation' => [ - 'group' => 'Impostazioni', - 'label' => 'Backup', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/ko/backup.php b/lang/vendor/filament-spatie-backup/ko/backup.php deleted file mode 100644 index 3b331be..0000000 --- a/lang/vendor/filament-spatie-backup/ko/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => '다운로드', - 'delete' => '삭제', - ], - - 'fields' => [ - 'path' => '경로', - 'disk' => '디스크', - 'date' => '날짜', - 'size' => '크기', - ], - - 'filters' => [ - 'disk' => '디스크', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => '이름', - 'disk' => '디스크', - 'healthy' => '상태', - 'amount' => '개수', - 'newest' => '최신', - 'used_storage' => '사용된 저장소', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => '백업 생성', - ], - - 'heading' => '백업', - - 'messages' => [ - 'backup_success' => '새 백업을 백그라운드에서 생성하는 중입니다.', - 'backup_delete_success' => '이 백업을 백그라운드에서 삭제하는 중입니다.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => '데이터베이스만', - 'only_files' => '파일만', - 'db_and_files' => '데이터베이스 & 파일', - ], - - 'label' => '옵션을 선택해 주세요', - ], - - 'navigation' => [ - 'group' => '설정', - 'label' => '백업', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/nl/backup.php b/lang/vendor/filament-spatie-backup/nl/backup.php deleted file mode 100644 index da1bec8..0000000 --- a/lang/vendor/filament-spatie-backup/nl/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Download', - 'delete' => 'Verwijderen', - ], - - 'fields' => [ - 'path' => 'Pad', - 'disk' => 'Disk', - 'date' => 'Datum', - 'size' => 'Grootte', - ], - - 'filters' => [ - 'disk' => 'Disk', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Naam', - 'disk' => 'Disk', - 'healthy' => 'Gezond', - 'amount' => 'Aantal', - 'newest' => 'Laatste', - 'used_storage' => 'Gebruikte opslag', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Backup maken', - ], - - 'heading' => 'Backups', - - 'messages' => [ - 'backup_success' => 'Backup maken in de achtergrond.', - 'backup_delete_success' => 'Backup verwijderen in de achtergrond.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Alleen DB', - 'only_files' => 'Alleen bestanden', - 'db_and_files' => 'DB en bestanden', - ], - - 'label' => 'Kies een optie', - ], - - 'navigation' => [ - 'group' => 'Instellingen', - 'label' => 'Backups', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/pt/backup.php b/lang/vendor/filament-spatie-backup/pt/backup.php deleted file mode 100644 index d63a1a9..0000000 --- a/lang/vendor/filament-spatie-backup/pt/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Download', - 'delete' => 'Eliminar', - ], - - 'fields' => [ - 'path' => 'Caminho', - 'disk' => 'Disco', - 'date' => 'Data', - 'size' => 'Tamanho', - ], - - 'filters' => [ - 'disk' => 'Disco', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Nome', - 'disk' => 'Disco', - 'healthy' => 'Estado', - 'amount' => 'Quantidade', - 'newest' => 'Recente', - 'used_storage' => 'Espaço Utilizado', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Criar Cópia de Segurança', - ], - - 'heading' => 'Cópias de Segurança', - - 'messages' => [ - 'backup_success' => 'A criar uma nova cópia de segurança em segundo plano.', - 'backup_delete_success' => 'A eliminar esta cópia de segurança em segundo plano.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Apenas BD', - 'only_files' => 'Apenas Ficheiros', - 'db_and_files' => 'BD & Ficheiros', - ], - - 'label' => 'Por favor, seleccione uma opção', - ], - - 'navigation' => [ - 'group' => 'Definições', - 'label' => 'Cópias de Segurança', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/pt_BR/backup.php b/lang/vendor/filament-spatie-backup/pt_BR/backup.php deleted file mode 100644 index 004aff4..0000000 --- a/lang/vendor/filament-spatie-backup/pt_BR/backup.php +++ /dev/null @@ -1,69 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Download', - 'delete' => 'Excluir', - ], - - 'fields' => [ - 'path' => 'Caminho', - 'disk' => 'Disco', - 'date' => 'Data', - 'size' => 'Tamanho', - ], - - 'filters' => [ - 'disk' => 'Disco', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Nome', - 'disk' => 'Disco', - 'healthy' => 'Saúde', - 'amount' => 'Quant.', - 'newest' => 'Recente', - 'used_storage' => 'Espaço utilizado', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Criar Backup', - ], - - 'heading' => 'Backups', - - 'messages' => [ - 'backup_success' => 'Criando um novo em segundo plano.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Apenas DB', - 'only_files' => 'Apenas arquivos', - 'db_and_files' => 'DB & Arquivos', - ], - - 'label' => 'Por favor, escolha uma opção', - ], - - 'navigation' => [ - 'group' => 'Configurações', - 'label' => 'Backups', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/pt_PT/backup.php b/lang/vendor/filament-spatie-backup/pt_PT/backup.php deleted file mode 100644 index 387e1dd..0000000 --- a/lang/vendor/filament-spatie-backup/pt_PT/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Descarregar', - 'delete' => 'Eliminar', - ], - - 'fields' => [ - 'path' => 'Caminho', - 'disk' => 'Disco', - 'date' => 'Data', - 'size' => 'Tamanho', - ], - - 'filters' => [ - 'disk' => 'Disco', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Nome', - 'disk' => 'Disco', - 'healthy' => 'Estado', - 'amount' => 'Quantidade', - 'newest' => 'Recente', - 'used_storage' => 'Espaço Utilizado', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Criar Cópia de Segurança', - ], - - 'heading' => 'Cópias de Segurança', - - 'messages' => [ - 'backup_success' => 'A criar uma nova cópia de segurança em segundo plano.', - 'backup_delete_success' => 'A eliminar esta cópia de segurança em segundo plano.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Apenas BD', - 'only_files' => 'Apenas Ficheiros', - 'db_and_files' => 'BD & Ficheiros', - ], - - 'label' => 'Por favor, seleccione uma opção', - ], - - 'navigation' => [ - 'group' => 'Definições', - 'label' => 'Cópias de Segurança', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/ru/backup.php b/lang/vendor/filament-spatie-backup/ru/backup.php deleted file mode 100644 index be28896..0000000 --- a/lang/vendor/filament-spatie-backup/ru/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Скачать', - 'delete' => 'Удалить', - ], - - 'fields' => [ - 'path' => 'Путь', - 'disk' => 'Диск', - 'date' => 'Дата', - 'size' => 'Размер', - ], - - 'filters' => [ - 'disk' => 'Диск', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Имя', - 'disk' => 'Диск', - 'healthy' => 'Исправен', - 'amount' => 'Количество', - 'newest' => 'Последний', - 'used_storage' => 'Объём в хранилище', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Создать резервную копию', - ], - - 'heading' => 'Резервные копии', - - 'messages' => [ - 'backup_success' => 'Создание новой резервной копии в фоновом режиме.', - 'backup_delete_success' => 'Удаление этой резервной копии в фоновом режиме.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Только база', - 'only_files' => 'Только файлы', - 'db_and_files' => 'База и файлы', - ], - - 'label' => 'Пожалуйста, выберите опцию', - ], - - 'navigation' => [ - 'group' => 'Настройки', - 'label' => 'Резервные копии', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/tr/backup.php b/lang/vendor/filament-spatie-backup/tr/backup.php deleted file mode 100644 index fafad37..0000000 --- a/lang/vendor/filament-spatie-backup/tr/backup.php +++ /dev/null @@ -1,69 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'İndir', - 'delete' => 'Sil', - ], - - 'fields' => [ - 'path' => 'Yol', - 'disk' => 'Disk', - 'date' => 'Tarih', - 'size' => 'Boyut', - ], - - 'filters' => [ - 'disk' => 'Disk', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Ad', - 'disk' => 'Disk', - 'healthy' => 'Sağlık', - 'amount' => 'Adet', - 'newest' => 'Zaman', - 'used_storage' => 'Kullanılan Depolama', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Yedek Oluştur', - ], - - 'heading' => 'Yedekler', - - 'messages' => [ - 'backup_success' => 'Arka planda yeni bir yedek oluşturuluyor.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Sadece Veri Tabanı', - 'only_files' => 'Sadece Dosyalar', - 'db_and_files' => 'Veri Tabanı & Dosyalar', - ], - - 'label' => 'Bir seçenek seçin', - ], - - 'navigation' => [ - 'group' => 'Ayarlar', - 'label' => 'Yedekler', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/vi/backup.php b/lang/vendor/filament-spatie-backup/vi/backup.php deleted file mode 100644 index 7d1fbeb..0000000 --- a/lang/vendor/filament-spatie-backup/vi/backup.php +++ /dev/null @@ -1,69 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => 'Tải xuống', - 'delete' => 'Xóa', - ], - - 'fields' => [ - 'path' => 'Đường dẫn', - 'disk' => 'Ổ đĩa', - 'date' => 'Ngày', - 'size' => 'Kích thước', - ], - - 'filters' => [ - 'disk' => 'Ổ đĩa', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => 'Tên', - 'disk' => 'Ổ đĩa', - 'healthy' => 'Sức khỏe', - 'amount' => 'Số lượng', - 'newest' => 'Mới nhất', - 'used_storage' => 'Bộ nhớ đã dùng', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => 'Tạo bản sao lưu', - ], - - 'heading' => 'Sao lưu', - - 'messages' => [ - 'backup_success' => 'Đang chạy tạo bản sao lưu dưới nền.', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => 'Chỉ DB', - 'only_files' => 'Chỉ Tệp tin', - 'db_and_files' => 'DB & Tệp tin', - ], - - 'label' => 'Vui lòng chọn một tùy chọn', - ], - - 'navigation' => [ - 'group' => 'Cài đặt', - 'label' => 'Sao lưu', - ], - ], - ], - -]; diff --git a/lang/vendor/filament-spatie-backup/zh_CN/backup.php b/lang/vendor/filament-spatie-backup/zh_CN/backup.php deleted file mode 100644 index 2cddd09..0000000 --- a/lang/vendor/filament-spatie-backup/zh_CN/backup.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'backup_destination_list' => [ - 'table' => [ - 'actions' => [ - 'download' => '下载', - 'delete' => '删除', - ], - - 'fields' => [ - 'path' => '路径', - 'disk' => '磁盘', - 'date' => '日期', - 'size' => '大小', - ], - - 'filters' => [ - 'disk' => '磁盘', - ], - ], - ], - - 'backup_destination_status_list' => [ - 'table' => [ - 'fields' => [ - 'name' => '文件名', - 'disk' => '所属磁盘', - 'healthy' => '健康状况', - 'amount' => '大小', - 'newest' => '最新备份', - 'used_storage' => '占用空间', - ], - ], - ], - ], - - 'pages' => [ - 'backups' => [ - 'actions' => [ - 'create_backup' => '创建备份', - ], - - 'heading' => '数据备份', - - 'messages' => [ - 'backup_success' => '在后台创建新备份', - 'backup_delete_success' => '在后台删除此备份', - ], - - 'modal' => [ - 'buttons' => [ - 'only_db' => '仅备份数据库', - 'only_files' => '仅备份文件', - 'db_and_files' => '备份数据库和文件', - ], - - 'label' => '请选择一个选项', - ], - - 'navigation' => [ - 'group' => '系统设置', - 'label' => '数据备份', - ], - ], - ], - -]; diff --git a/public/css/filament-spatie-backup/filament-spatie-backup-styles.css b/public/css/filament-spatie-backup/filament-spatie-backup-styles.css deleted file mode 100644 index 0f08143..0000000 --- a/public/css/filament-spatie-backup/filament-spatie-backup-styles.css +++ /dev/null @@ -1 +0,0 @@ -.fsb-flex{display:flex}.fsb-flex-col{flex-direction:column}.fsb-justify-between{justify-content:space-between}.fsb-mb-10{margin-bottom:2.5rem}.fsb-gap-x-2{column-gap:.5rem}.fsb-gap-y-8{row-gap:2rem}.fsb-w-full{width:100%} \ No newline at end of file diff --git a/routes/console.php b/routes/console.php index 4f9401d..65ef22b 100644 --- a/routes/console.php +++ b/routes/console.php @@ -8,7 +8,6 @@ Artisan::command('inspire', function () { $this->comment(Inspiring::quote()); })->purpose('Display an inspiring quote'); -Schedule::command('horizon:snapshot')->everyFiveMinutes(); Schedule::command('sanctum:prune-expired --hours=24') ->daily() ->withoutOverlapping() diff --git a/tests/Feature/ProductionToolingAccessTest.php b/tests/Feature/ProductionToolingAccessTest.php index 8e32634..0e723f8 100644 --- a/tests/Feature/ProductionToolingAccessTest.php +++ b/tests/Feature/ProductionToolingAccessTest.php @@ -18,33 +18,14 @@ it('allows only administrators through production tooling gates', function (): v 'role' => UserRole::USER, ]); - expect(Gate::forUser($admin)->allows('viewHorizon'))->toBeTrue() - ->and(Gate::forUser($admin)->allows('viewApiDocs'))->toBeTrue() - ->and(Gate::forUser($moderator)->allows('viewHorizon'))->toBeFalse() + expect(Gate::forUser($admin)->allows('viewApiDocs'))->toBeTrue() ->and(Gate::forUser($moderator)->allows('viewApiDocs'))->toBeFalse() - ->and(Gate::forUser($user)->allows('viewHorizon'))->toBeFalse() ->and(Gate::forUser($user)->allows('viewApiDocs'))->toBeFalse() - ->and(Gate::allows('viewHorizon'))->toBeFalse() ->and(Gate::allows('viewApiDocs'))->toBeFalse(); }); -it('protects the horizon dashboard outside local environments', function (): void { - $admin = User::factory()->create([ - 'role' => UserRole::ADMIN, - ]); - $moderator = User::factory()->create([ - 'role' => UserRole::MODERATOR, - ]); - - $this->get('/horizon')->assertForbidden(); - - $this->actingAs($moderator) - ->get('/horizon') - ->assertForbidden(); - - $this->actingAs($admin) - ->get('/horizon') - ->assertSuccessful(); +it('does not expose a queue dashboard', function (): void { + $this->get('/horizon')->assertNotFound(); }); it('protects the scramble documentation outside local environments', function (): void {