From 41c5d6ac6ccce59a4bd21afc7b1411fd6336578d Mon Sep 17 00:00:00 2001 From: Mathieu Date: Fri, 19 Dec 2025 09:46:00 +0100 Subject: [PATCH 01/12] Remove publishing of translation config in backstage:install --- packages/core/src/BackstageServiceProvider.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index 3f9c69b9..09890e5d 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -73,11 +73,6 @@ public function configurePackage(Package $package): void $command->comment('Preparing stage...'); - $command->callSilently('vendor:publish', [ - '--tag' => 'translations-config', - '--force' => true, - ]); - $command->callSilently('vendor:publish', [ '--tag' => 'backstage-config', '--force' => true, From 4fb236b5c684de5aaa3e385204613f1c5f6cab63 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Fri, 19 Dec 2025 09:47:08 +0100 Subject: [PATCH 02/12] Dont add default vk10 users --- database/seeders/BackstageSeeder.php | 42 ------------------- .../core/src/BackstageServiceProvider.php | 1 - 2 files changed, 43 deletions(-) diff --git a/database/seeders/BackstageSeeder.php b/database/seeders/BackstageSeeder.php index e23fc063..c1455dfa 100644 --- a/database/seeders/BackstageSeeder.php +++ b/database/seeders/BackstageSeeder.php @@ -173,47 +173,5 @@ public function run(): void (string) Str::uuid() => ['type' => 'form', 'data' => ['slug' => 'contact']], ]), ]), 'values')->create(); - - User::factory([ - 'name' => 'Mark', - 'email' => 'mark@vk10.nl', - 'password' => 'mark@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Rob', - 'email' => 'rob@vk10.nl', - 'password' => 'rob@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Mathieu', - 'email' => 'mathieu@vk10.nl', - 'password' => 'mathieu@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Bas', - 'email' => 'bas@vk10.nl', - 'password' => 'bas@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Yoni', - 'email' => 'yoni@vk10.nl', - 'password' => 'yoni@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Patrick', - 'email' => 'patrick@vk10.nl', - 'password' => 'patrick@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Sandro', - 'email' => 'sandro@vk10.nl', - 'password' => 'sandro@vk10.nl', - ])->create(); } } diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index 09890e5d..2d4b1a2f 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -68,7 +68,6 @@ public function configurePackage(Package $package): void $command->comment("Don't trip over the wires; this is where the magic happens."); $command->comment('Let\'s get started!'); - // if ($command->confirm('Would you like us to install Backstage for you?', true)) { $command->comment('Lights, camera, action! Setting up for the show...'); $command->comment('Preparing stage...'); From c689e89c9bbc2e961eea2b29d8ce35b90a9a3ead Mon Sep 17 00:00:00 2001 From: Mathieu Date: Fri, 19 Dec 2025 10:04:50 +0100 Subject: [PATCH 03/12] Remove translation config & option for creating user in install --- database/seeders/BackstageSeeder.php | 1 - .../core/src/BackstageServiceProvider.php | 104 +++--------------- 2 files changed, 15 insertions(+), 90 deletions(-) diff --git a/database/seeders/BackstageSeeder.php b/database/seeders/BackstageSeeder.php index c1455dfa..f66e65de 100644 --- a/database/seeders/BackstageSeeder.php +++ b/database/seeders/BackstageSeeder.php @@ -12,7 +12,6 @@ use Backstage\Models\Language; use Backstage\Models\Site; use Backstage\Models\Type; -use Backstage\Models\User; use Illuminate\Database\Seeder; use Illuminate\Support\Str; diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index 2d4b1a2f..3006c743 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -6,6 +6,7 @@ use Backstage\Commands\BackstageUpgrade; use Backstage\CustomFields\Builder; use Backstage\CustomFields\CheckboxList; +use Backstage\Database\Factories\UserFactory; use Backstage\Events\FormSubmitted; use Backstage\Http\Middleware\SetLocale; use Backstage\Listeners\ExecuteFormActions; @@ -66,7 +67,7 @@ public function configurePackage(Package $package): void ->startWith(function (InstallCommand $command) { $command->info('Welcome to the Backstage setup process.'); $command->comment("Don't trip over the wires; this is where the magic happens."); - $command->comment('Let\'s get started!'); + $command->comment("Let's get started!"); $command->comment('Lights, camera, action! Setting up for the show...'); @@ -81,8 +82,6 @@ public function configurePackage(Package $package): void $this->writeMediaPickerConfig(); - $this->writeTranslationsConfig(); - $command->callSilently('vendor:publish', [ '--tag' => 'backstage-migrations', '--force' => true, @@ -114,12 +113,23 @@ public function configurePackage(Package $package): void $path = app()->environmentFilePath(); file_put_contents($path, file_get_contents($path) . PHP_EOL . $key . '=' . $value); + if ($command->confirm('Would you like to create a user?', true)) { + $command->comment('Our next performer is...'); + $user = $command->ask('Your name?'); + $email = $command->ask('Your email?'); + $password = $command->ask('Your password?'); + UserFactory::create([ + 'name' => $user, + 'email' => $email, + 'password' => $password, + ]); + } + $command->comment('Raise the curtain...'); - // } }) ->endWith(function (InstallCommand $command) { $command->info('The stage is cleared for a fresh start'); - $command->comment('You can now go on stage and start creating!'); + $command->comment('You can now go on stage (/backstage) and start creating!'); }) ->askToStarRepoOnGitHub('backstage/cms'); }); @@ -402,90 +412,6 @@ private function writeMediaPickerConfig(?string $path = null): void file_put_contents($path, $configContent); } - private function generateTranslationsConfig(): array - { - $config = [ - 'scan' => [ - 'paths' => [ - app_path(), - resource_path('views'), - base_path(''), - ], - - 'extensions' => [ - '*.php', - '*.blade.php', - '*.json', - ], - - 'functions' => [ - 'trans', - 'trans_choice', - 'Lang::transChoice', - 'Lang::trans', - 'Lang::get', - 'Lang::choice', - '@lang', - '@choice', - '__', - ], - ], - - 'eloquent' => [ - 'translatable-models' => [ - \Backstage\Models\ContentFieldValue::class, - \Backstage\Models\Tag::class, - ], - ], - - 'translators' => [ - 'default' => env('TRANSLATION_DRIVER', 'google-translate'), - - 'drivers' => [ - 'google-translate' => [ - // no options - ], - - 'ai' => [ - 'provider' => \Prism\Prism\Enums\Provider::OpenAI, - 'model' => 'gpt-5', - 'system_prompt' => 'You are an expert mathematician who explains concepts simply. The only thing you do it output what i ask. No comments, no extra information. Just the answer.', - ], - - 'deep-l' => [ - // - ], - ], - ], - ]; - - config(['translations' => $config]); - - return $config; - } - - private function writeTranslationsConfig(?string $path = null): void - { - $path ??= config_path('translations.php'); - - // Ensure directory exists - $directory = dirname($path); - if (! is_dir($directory)) { - mkdir($directory, 0755, true); - } - - // Generate the config file content - $configContent = "customVarExport($this->generateTranslationsConfig()) . ";\n"; - - file_put_contents($path, $configContent); - } - private function customVarExport($var, $indent = ''): string { switch (gettype($var)) { From 0caf1cfbe88b5257ec9b299693c89cf2677a582b Mon Sep 17 00:00:00 2001 From: Mathieu Date: Fri, 19 Dec 2025 10:26:07 +0100 Subject: [PATCH 04/12] Add secret as password --- packages/core/src/BackstageServiceProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index 3006c743..60c42a3c 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -117,7 +117,7 @@ public function configurePackage(Package $package): void $command->comment('Our next performer is...'); $user = $command->ask('Your name?'); $email = $command->ask('Your email?'); - $password = $command->ask('Your password?'); + $password = $command->secret('Your password?'); UserFactory::create([ 'name' => $user, 'email' => $email, From c564313c86463fa91e20c93554303541ca0b56a9 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Fri, 19 Dec 2025 11:08:31 +0100 Subject: [PATCH 05/12] Remove vk10 users --- packages/core/config/backstage/cms.php | 2 +- .../core/database/seeders/BackstageSeeder.php | 42 ------------------- .../core/src/BackstageServiceProvider.php | 5 ++- 3 files changed, 4 insertions(+), 45 deletions(-) diff --git a/packages/core/config/backstage/cms.php b/packages/core/config/backstage/cms.php index 81e2f533..9578e907 100644 --- a/packages/core/config/backstage/cms.php +++ b/packages/core/config/backstage/cms.php @@ -22,7 +22,7 @@ Backstage\Resources\SettingResource::class, Backstage\Resources\SiteResource::class, Backstage\Resources\TagResource::class, - Backstage\Resources\MediaResource::class, + // Backstage\Resources\MediaResource::class, // Backstage\Resources\TemplateResource::class, Backstage\Resources\TypeResource::class, Backstage\Resources\UserResource::class, diff --git a/packages/core/database/seeders/BackstageSeeder.php b/packages/core/database/seeders/BackstageSeeder.php index e23fc063..c1455dfa 100644 --- a/packages/core/database/seeders/BackstageSeeder.php +++ b/packages/core/database/seeders/BackstageSeeder.php @@ -173,47 +173,5 @@ public function run(): void (string) Str::uuid() => ['type' => 'form', 'data' => ['slug' => 'contact']], ]), ]), 'values')->create(); - - User::factory([ - 'name' => 'Mark', - 'email' => 'mark@vk10.nl', - 'password' => 'mark@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Rob', - 'email' => 'rob@vk10.nl', - 'password' => 'rob@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Mathieu', - 'email' => 'mathieu@vk10.nl', - 'password' => 'mathieu@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Bas', - 'email' => 'bas@vk10.nl', - 'password' => 'bas@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Yoni', - 'email' => 'yoni@vk10.nl', - 'password' => 'yoni@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Patrick', - 'email' => 'patrick@vk10.nl', - 'password' => 'patrick@vk10.nl', - ])->create(); - - User::factory([ - 'name' => 'Sandro', - 'email' => 'sandro@vk10.nl', - 'password' => 'sandro@vk10.nl', - ])->create(); } } diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index 60c42a3c..f2f3d926 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -38,6 +38,7 @@ use Illuminate\Filesystem\Filesystem; use Illuminate\Support\Facades\Blade; use Illuminate\Support\Facades\Event; +use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Route; use Illuminate\Support\Str; use Livewire\Features\SupportTesting\Testable; @@ -118,10 +119,10 @@ public function configurePackage(Package $package): void $user = $command->ask('Your name?'); $email = $command->ask('Your email?'); $password = $command->secret('Your password?'); - UserFactory::create([ + User::factory()->create([ 'name' => $user, 'email' => $email, - 'password' => $password, + 'password' => Hash::make($password), ]); } From faec0992c00da3bf8fd933748144cbcb898f2afc Mon Sep 17 00:00:00 2001 From: Casmo <385764+Casmo@users.noreply.github.com> Date: Fri, 19 Dec 2025 10:09:03 +0000 Subject: [PATCH 06/12] fix: styling --- packages/core/database/seeders/BackstageSeeder.php | 1 - packages/core/src/BackstageServiceProvider.php | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/core/database/seeders/BackstageSeeder.php b/packages/core/database/seeders/BackstageSeeder.php index c1455dfa..f66e65de 100644 --- a/packages/core/database/seeders/BackstageSeeder.php +++ b/packages/core/database/seeders/BackstageSeeder.php @@ -12,7 +12,6 @@ use Backstage\Models\Language; use Backstage\Models\Site; use Backstage\Models\Type; -use Backstage\Models\User; use Illuminate\Database\Seeder; use Illuminate\Support\Str; diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index f2f3d926..7a7d1507 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -6,7 +6,6 @@ use Backstage\Commands\BackstageUpgrade; use Backstage\CustomFields\Builder; use Backstage\CustomFields\CheckboxList; -use Backstage\Database\Factories\UserFactory; use Backstage\Events\FormSubmitted; use Backstage\Http\Middleware\SetLocale; use Backstage\Listeners\ExecuteFormActions; From af5135ebbb6d96e0364cfeeb68c77d0944d7746d Mon Sep 17 00:00:00 2001 From: Mathieu Date: Fri, 19 Dec 2025 12:48:11 +0100 Subject: [PATCH 07/12] email and pw required --- packages/core/src/BackstageServiceProvider.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index f2f3d926..c813d183 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -119,11 +119,13 @@ public function configurePackage(Package $package): void $user = $command->ask('Your name?'); $email = $command->ask('Your email?'); $password = $command->secret('Your password?'); - User::factory()->create([ - 'name' => $user, - 'email' => $email, - 'password' => Hash::make($password), - ]); + if ($email && $password) { + User::factory()->create([ + 'name' => $user, + 'email' => $email, + 'password' => Hash::make($password), + ]); + } } $command->comment('Raise the curtain...'); From 1b58eaa31e92d392ef136bd08604e421adbc8827 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Fri, 2 Jan 2026 14:58:05 +0100 Subject: [PATCH 08/12] RedirectFactory --- .../database/factories/RedirectFactory.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 packages/laravel-redirects/database/factories/RedirectFactory.php diff --git a/packages/laravel-redirects/database/factories/RedirectFactory.php b/packages/laravel-redirects/database/factories/RedirectFactory.php new file mode 100644 index 00000000..822e7bfa --- /dev/null +++ b/packages/laravel-redirects/database/factories/RedirectFactory.php @@ -0,0 +1,21 @@ + $this->faker->url(), + 'destination' => $this->faker->url(), + 'code' => $this->faker->numberBetween(301, 302), + 'hits' => $this->faker->numberBetween(0, 1000), + ]; + } +} From 3c77a824ffa9aa60291d5202bbccf697847e0f8a Mon Sep 17 00:00:00 2001 From: Mathieu Date: Fri, 2 Jan 2026 15:59:41 +0100 Subject: [PATCH 09/12] Dont duplicate pw hash --- packages/core/src/BackstageServiceProvider.php | 2 +- .../laravel-redirects/database/factories/RedirectFactory.php | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index cc42b902..fed5ea29 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -122,7 +122,7 @@ public function configurePackage(Package $package): void User::factory()->create([ 'name' => $user, 'email' => $email, - 'password' => Hash::make($password), + 'password' => $password, ]); } } diff --git a/packages/laravel-redirects/database/factories/RedirectFactory.php b/packages/laravel-redirects/database/factories/RedirectFactory.php index 822e7bfa..dd0b28ac 100644 --- a/packages/laravel-redirects/database/factories/RedirectFactory.php +++ b/packages/laravel-redirects/database/factories/RedirectFactory.php @@ -1,8 +1,9 @@ Date: Fri, 2 Jan 2026 15:00:17 +0000 Subject: [PATCH 10/12] fix: styling --- packages/core/src/BackstageServiceProvider.php | 1 - .../laravel-redirects/database/factories/RedirectFactory.php | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index fed5ea29..24a18754 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -37,7 +37,6 @@ use Illuminate\Filesystem\Filesystem; use Illuminate\Support\Facades\Blade; use Illuminate\Support\Facades\Event; -use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Route; use Illuminate\Support\Str; use Livewire\Features\SupportTesting\Testable; diff --git a/packages/laravel-redirects/database/factories/RedirectFactory.php b/packages/laravel-redirects/database/factories/RedirectFactory.php index dd0b28ac..c3d98c82 100644 --- a/packages/laravel-redirects/database/factories/RedirectFactory.php +++ b/packages/laravel-redirects/database/factories/RedirectFactory.php @@ -1,6 +1,5 @@ Date: Fri, 2 Jan 2026 16:01:15 +0100 Subject: [PATCH 11/12] Feedback --- packages/core/src/BackstageServiceProvider.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index fed5ea29..7f8e1a82 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -125,6 +125,9 @@ public function configurePackage(Package $package): void 'password' => $password, ]); } + else { + $command->error('Stage frights! User not created.'); + } } $command->comment('Raise the curtain...'); From a8e5455cac171525ae26de9f714550c67c6051d1 Mon Sep 17 00:00:00 2001 From: Casmo <385764+Casmo@users.noreply.github.com> Date: Fri, 2 Jan 2026 15:01:54 +0000 Subject: [PATCH 12/12] fix: styling --- packages/core/src/BackstageServiceProvider.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/core/src/BackstageServiceProvider.php b/packages/core/src/BackstageServiceProvider.php index 63640831..3172da1c 100644 --- a/packages/core/src/BackstageServiceProvider.php +++ b/packages/core/src/BackstageServiceProvider.php @@ -123,8 +123,7 @@ public function configurePackage(Package $package): void 'email' => $email, 'password' => $password, ]); - } - else { + } else { $command->error('Stage frights! User not created.'); } }