chore: Update SSH key generation in install.sh script
This commit is contained in:
@@ -8,18 +8,18 @@ class PopulateSshKeysAndClearMuxDirectory extends Migration
|
|||||||
{
|
{
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Storage::disk('ssh-keys')->deleteDirectory('');
|
// Storage::disk('ssh-keys')->deleteDirectory('');
|
||||||
Storage::disk('ssh-keys')->makeDirectory('');
|
// Storage::disk('ssh-keys')->makeDirectory('');
|
||||||
|
|
||||||
Storage::disk('ssh-mux')->deleteDirectory('');
|
// Storage::disk('ssh-mux')->deleteDirectory('');
|
||||||
Storage::disk('ssh-mux')->makeDirectory('');
|
// Storage::disk('ssh-mux')->makeDirectory('');
|
||||||
PrivateKey::chunk(100, function ($keys) {
|
// PrivateKey::chunk(100, function ($keys) {
|
||||||
foreach ($keys as $key) {
|
// foreach ($keys as $key) {
|
||||||
$key->storeInFileSystem();
|
// $key->storeInFileSystem();
|
||||||
if ($key->id === 0) {
|
// if ($key->id === 0) {
|
||||||
Storage::disk('ssh-keys')->put('id.root@host.docker.internal', $key->private_key);
|
// Storage::disk('ssh-keys')->put('id.root@host.docker.internal', $key->private_key);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -64,43 +64,6 @@ class ProductionSeeder extends Seeder
|
|||||||
'team_id' => 0,
|
'team_id' => 0,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! isCloud() && config('coolify.is_windows_docker_desktop') == false) {
|
|
||||||
echo "Checking localhost key.\n";
|
|
||||||
|
|
||||||
$found = PrivateKey::find(0);
|
|
||||||
if ($found) {
|
|
||||||
echo 'Private Key found in database.';
|
|
||||||
} else {
|
|
||||||
$coolify_key_name = 'id.root@host.docker.internal';
|
|
||||||
$coolify_key = Storage::disk('ssh-keys')->get("{$coolify_key_name}");
|
|
||||||
|
|
||||||
if ($coolify_key) {
|
|
||||||
PrivateKey::create(
|
|
||||||
[
|
|
||||||
'id' => 0,
|
|
||||||
'team_id' => 0,
|
|
||||||
'name' => 'localhost\'s key',
|
|
||||||
'description' => 'The private key for the Coolify host machine (localhost).',
|
|
||||||
'private_key' => $coolify_key,
|
|
||||||
]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
PrivateKey::create(
|
|
||||||
[
|
|
||||||
'id' => 0,
|
|
||||||
'team_id' => 0,
|
|
||||||
'name' => 'localhost\'s key',
|
|
||||||
'description' => 'The private key for the Coolify host machine (localhost).',
|
|
||||||
'private_key' => 'Paste here you private key!!',
|
|
||||||
]
|
|
||||||
);
|
|
||||||
echo "No SSH key found for the Coolify host machine (localhost).\n";
|
|
||||||
echo "Please read the following documentation (point 3) to fix it: https://coolify.io/docs/knowledge-base/server/openssh/\n";
|
|
||||||
echo "Your localhost connection won't work until then.";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add Coolify host (localhost) as Server if it doesn't exist
|
// Add Coolify host (localhost) as Server if it doesn't exist
|
||||||
if (Server::find(0) == null) {
|
if (Server::find(0) == null) {
|
||||||
$server_details = [
|
$server_details = [
|
||||||
@@ -134,6 +97,50 @@ class ProductionSeeder extends Seeder
|
|||||||
'server_id' => 0,
|
'server_id' => 0,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! isCloud() && config('coolify.is_windows_docker_desktop') == false) {
|
||||||
|
echo "Checking localhost key.\n";
|
||||||
|
$coolify_key_name = '@host.docker.internal';
|
||||||
|
$ssh_keys_directory = Storage::disk('ssh-keys')->files();
|
||||||
|
$coolify_key = collect($ssh_keys_directory)->firstWhere(fn ($item) => str($item)->contains($coolify_key_name));
|
||||||
|
|
||||||
|
$found = PrivateKey::find(0);
|
||||||
|
if ($found) {
|
||||||
|
echo 'Private Key found in database.';
|
||||||
|
if ($coolify_key) {
|
||||||
|
echo "SSH key found for the Coolify host machine (localhost).\n";
|
||||||
|
Storage::disk('ssh-keys')->delete($coolify_key);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($coolify_key) {
|
||||||
|
$coolify_key = Storage::disk('ssh-keys')->get($coolify_key);
|
||||||
|
$user = str($coolify_key)->before('@')->after('id.');
|
||||||
|
PrivateKey::create([
|
||||||
|
'id' => 0,
|
||||||
|
'team_id' => 0,
|
||||||
|
'name' => 'localhost\'s key',
|
||||||
|
'description' => 'The private key for the Coolify host machine (localhost).',
|
||||||
|
'private_key' => $coolify_key,
|
||||||
|
]);
|
||||||
|
$server->update(['user' => $user]);
|
||||||
|
echo "SSH key found for the Coolify host machine (localhost).\n";
|
||||||
|
Storage::disk('ssh-keys')->delete($coolify_key);
|
||||||
|
} else {
|
||||||
|
PrivateKey::create(
|
||||||
|
[
|
||||||
|
'id' => 0,
|
||||||
|
'team_id' => 0,
|
||||||
|
'name' => 'localhost\'s key',
|
||||||
|
'description' => 'The private key for the Coolify host machine (localhost).',
|
||||||
|
'private_key' => 'Paste here you private key!!',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
echo "No SSH key found for the Coolify host machine (localhost).\n";
|
||||||
|
echo "Please read the following documentation (point 3) to fix it: https://coolify.io/docs/knowledge-base/server/openssh/\n";
|
||||||
|
echo "Your localhost connection won't work until then.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (config('coolify.is_windows_docker_desktop')) {
|
if (config('coolify.is_windows_docker_desktop')) {
|
||||||
PrivateKey::updateOrCreate(
|
PrivateKey::updateOrCreate(
|
||||||
|
@@ -10,6 +10,8 @@ DATE=$(date +"%Y%m%d-%H%M%S")
|
|||||||
|
|
||||||
VERSION="1.5"
|
VERSION="1.5"
|
||||||
DOCKER_VERSION="26.0"
|
DOCKER_VERSION="26.0"
|
||||||
|
# TODO: Ask for a user
|
||||||
|
CURRENT_USER=$USER
|
||||||
|
|
||||||
mkdir -p /data/coolify/{source,ssh,applications,databases,backups,services,proxy,webhooks-during-maintenance,metrics,logs}
|
mkdir -p /data/coolify/{source,ssh,applications,databases,backups,services,proxy,webhooks-during-maintenance,metrics,logs}
|
||||||
mkdir -p /data/coolify/ssh/{keys,mux}
|
mkdir -p /data/coolify/ssh/{keys,mux}
|
||||||
@@ -23,7 +25,7 @@ INSTALLATION_LOG_WITH_DATE="/data/coolify/source/installation-${DATE}.log"
|
|||||||
exec > >(tee -a $INSTALLATION_LOG_WITH_DATE) 2>&1
|
exec > >(tee -a $INSTALLATION_LOG_WITH_DATE) 2>&1
|
||||||
|
|
||||||
getAJoke() {
|
getAJoke() {
|
||||||
JOKES=$(curl -s --max-time 2 https://v2.jokeapi.dev/joke/Programming?format=txt&type=single&amount=1 || true)
|
JOKES=$(curl -s --max-time 2 "https://v2.jokeapi.dev/joke/Programming?blacklistFlags=nsfw,religious,political,racist,sexist,explicit&format=txt&type=single" || true)
|
||||||
if [ "$JOKES" != "" ]; then
|
if [ "$JOKES" != "" ]; then
|
||||||
echo -e " - Until then, here's a joke for you:\n"
|
echo -e " - Until then, here's a joke for you:\n"
|
||||||
echo -e "$JOKES\n"
|
echo -e "$JOKES\n"
|
||||||
@@ -477,7 +479,16 @@ syncSshKeys() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
syncSshKeys || true
|
IS_COOLIFY_VOLUME_EXISTS=$(docker volume inspect coolify-db 2>/dev/null)
|
||||||
|
|
||||||
|
if [ -z "$IS_COOLIFY_VOLUME_EXISTS" ]; then
|
||||||
|
echo " - Generating SSH key."
|
||||||
|
ssh-keygen -t ed25519 -a 100 -f /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal -q -N "" -C coolify
|
||||||
|
chown 9999 /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal
|
||||||
|
sed -i "/coolify/d" ~/.ssh/authorized_keys
|
||||||
|
cat /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal.pub >> ~/.ssh/authorized_keys
|
||||||
|
rm -f /data/coolify/ssh/keys/id.$CURRENT_USER@host.docker.internal.pub
|
||||||
|
fi
|
||||||
|
|
||||||
chown -R 9999:root /data/coolify
|
chown -R 9999:root /data/coolify
|
||||||
chmod -R 700 /data/coolify
|
chmod -R 700 /data/coolify
|
||||||
|
Reference in New Issue
Block a user