Plugins base (#613)

* wip

* wip

* cleanup

* notification channels

* phpstan

* services

* remove server types

* refactoring

* refactoring
This commit is contained in:
Saeed Vaziry
2025-06-14 14:35:18 +02:00
committed by GitHub
parent adc0653d15
commit 131b828807
311 changed files with 3976 additions and 2660 deletions

View File

@ -3,6 +3,10 @@
namespace Database\Seeders;
use App\Models\NotificationChannel;
use App\NotificationChannels\Discord;
use App\NotificationChannels\Email;
use App\NotificationChannels\Slack;
use App\NotificationChannels\Telegram;
use Illuminate\Database\Seeder;
class NotificationChannelsSeeder extends Seeder
@ -11,7 +15,7 @@ public function run(): void
{
NotificationChannel::factory()->create([
'label' => 'Slack',
'provider' => \App\Enums\NotificationChannel::SLACK,
'provider' => Slack::id(),
'data' => [
'webhook' => 'slack_webhook',
],
@ -20,7 +24,7 @@ public function run(): void
NotificationChannel::factory()->create([
'label' => 'Discord',
'provider' => \App\Enums\NotificationChannel::DISCORD,
'provider' => Discord::id(),
'data' => [
'webhook' => 'discord_webhook',
],
@ -29,7 +33,7 @@ public function run(): void
NotificationChannel::factory()->create([
'label' => 'Telegram',
'provider' => \App\Enums\NotificationChannel::TELEGRAM,
'provider' => Telegram::id(),
'data' => [
'token' => 'telegram_token',
'chat_id' => 'telegram_chat_id',
@ -39,7 +43,7 @@ public function run(): void
NotificationChannel::factory()->create([
'label' => 'Email',
'provider' => \App\Enums\NotificationChannel::EMAIL,
'provider' => Email::id(),
'data' => [
'email' => 'email@vitodeploy.com',
],

View File

@ -71,8 +71,8 @@ private function database(Server $server): void
Service::query()->create([
'server_id' => $server->id,
'type' => 'database',
'name' => config('core.databases_name.mysql80'),
'version' => config('core.databases_version.mysql80'),
'name' => 'mysql',
'version' => '8.4',
'status' => ServiceStatus::READY,
]);
}

View File

@ -2,7 +2,6 @@
namespace Database\Seeders;
use App\Enums\SiteType;
use App\Enums\SslStatus;
use App\Enums\SslType;
use App\Enums\WorkerStatus;
@ -11,6 +10,8 @@
use App\Models\SourceControl;
use App\Models\Ssl;
use App\Models\Worker;
use App\SiteTypes\Laravel;
use App\SiteTypes\Wordpress;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Seeder;
@ -31,7 +32,7 @@ public function run(): void
'server_id' => $server->id,
'domain' => $server->project->name.'.com',
'source_control_id' => $sourceControls->random()->id,
'type' => SiteType::LARAVEL,
'type' => Laravel::id(),
'path' => '/home/vito/'.$server->project->name.'.com',
'aliases' => ['www.'.$server->project->name.'.com'],
]);
@ -52,7 +53,7 @@ public function run(): void
$blog = Site::factory()->create([
'server_id' => $server->id,
'domain' => 'blog.'.$server->project->name.'.com',
'type' => SiteType::WORDPRESS,
'type' => Wordpress::id(),
'path' => '/home/vito/blog.'.$server->project->name.'.com',
'aliases' => ['www.blog.'.$server->project->name.'.com'],
]);

View File

@ -3,6 +3,9 @@
namespace Database\Seeders;
use App\Models\SourceControl;
use App\SourceControlProviders\Bitbucket;
use App\SourceControlProviders\Github;
use App\SourceControlProviders\Gitlab;
use Illuminate\Database\Seeder;
class SourceControlsSeeder extends Seeder
@ -11,7 +14,7 @@ public function run(): void
{
SourceControl::factory()->create([
'profile' => 'GitHub',
'provider' => \App\Enums\SourceControl::GITHUB,
'provider' => Github::id(),
'provider_data' => [
'token' => 'github_token',
],
@ -19,7 +22,7 @@ public function run(): void
SourceControl::factory()->create([
'profile' => 'GitLab',
'provider' => \App\Enums\SourceControl::GITLAB,
'provider' => Gitlab::id(),
'provider_data' => [
'token' => 'gitlab_token',
],
@ -27,7 +30,7 @@ public function run(): void
SourceControl::factory()->create([
'profile' => 'Bitbucket',
'provider' => \App\Enums\SourceControl::BITBUCKET,
'provider' => Bitbucket::id(),
'provider_data' => [
'username' => 'bitbucket_username',
'password' => 'bitbucket_password',

View File

@ -3,6 +3,8 @@
namespace Database\Seeders;
use App\Models\StorageProvider;
use App\StorageProviders\FTP;
use App\StorageProviders\S3;
use Illuminate\Database\Seeder;
class StorageProvidersSeeder extends Seeder
@ -11,7 +13,7 @@ public function run(): void
{
StorageProvider::factory()->create([
'profile' => 'FTP',
'provider' => \App\Enums\StorageProvider::FTP,
'provider' => FTP::id(),
'credentials' => [
'host' => 'ftp.example.com',
'username' => 'ftp_user',
@ -21,7 +23,7 @@ public function run(): void
StorageProvider::factory()->create([
'profile' => 'S3',
'provider' => \App\Enums\StorageProvider::S3,
'provider' => S3::id(),
'credentials' => [
'secret' => 's3_secret',
],