coolify/database/seeders/ProductionSeeder.php

92 lines
2.8 KiB
PHP
Raw Normal View History

2023-04-14 10:00:42 +02:00
<?php
namespace Database\Seeders;
2023-05-02 14:12:15 +02:00
use App\Models\GithubApp;
use App\Models\GitlabApp;
2023-04-27 11:29:02 +02:00
use App\Models\InstanceSettings;
2023-04-14 10:00:42 +02:00
use App\Models\PrivateKey;
use App\Models\Project;
use App\Models\Server;
2023-04-14 10:00:42 +02:00
use App\Models\Team;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Storage;
class ProductionSeeder extends Seeder
{
public function run(): void
{
2023-04-27 11:29:02 +02:00
if (InstanceSettings::find(0) == null) {
InstanceSettings::create([
'id' => 0
]);
}
// Add first Team if it doesn't exist
if (Team::find(0) == null) {
Team::create([
'id' => 0,
'name' => "Root's Team",
'personal_team' => true,
]);
}
// Save SSH Keys for the Coolify Host
$coolify_key_name = "id.root@host.docker.internal";
$coolify_key = Storage::disk('local')->get("ssh-keys/{$coolify_key_name}");
2023-04-27 12:25:32 +02:00
if ($coolify_key) {
$private_key = PrivateKey::find(0);
if ($private_key == null) {
PrivateKey::create([
'id' => 0,
'name' => 'localhost\'s key',
'description' => 'The private key for the Coolify host machine (localhost).',
'private_key' => $coolify_key,
'team_id' => 0,
]);
} else {
$private_key->private_key = $coolify_key;
$private_key->save();
}
} else {
echo "No SSH key found for the Coolify host machine (localhost).\n";
echo "Please generate one and save it in storage/app/ssh-keys/{$coolify_key_name}\n";
exit(1);
}
2023-04-27 11:29:02 +02:00
// Add Coolify host (localhost) as Server if it doesn't exist
if (Server::find(0) == null) {
Server::create([
'id' => 0,
'name' => "localhost",
'description' => "This is the local machine",
'user' => 'root',
'ip' => "host.docker.internal",
'team_id' => 0,
'private_key_id' => 0,
]);
}
2023-05-02 14:12:15 +02:00
if (GithubApp::find(0) == null) {
GithubApp::create([
'id' => 0,
'name' => 'Public GitHub',
'api_url' => 'https://api.github.com',
'html_url' => 'https://github.com',
'is_public' => true,
'team_id' => 0,
]);
}
if (GitlabApp::find(0) == null) {
GitlabApp::create([
'id' => 0,
'name' => 'Public GitLab',
'api_url' => 'https://gitlab.com/api/v4',
'html_url' => 'https://gitlab.com',
'is_public' => true,
'team_id' => 0,
]);
}
2023-04-14 10:00:42 +02:00
}
}