From 4dc1ae8bf50d95b6703d41c531336c5ac669a579 Mon Sep 17 00:00:00 2001 From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com> Date: Wed, 4 Feb 2026 00:32:30 +0100 Subject: [PATCH 1/3] feat(ui): add official postgres 18 support - add postgres 18 support - add pgvector 18 support - add postgres 16 as well as it is still widely used --- .../livewire/project/new/select.blade.php | 67 ++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/resources/views/livewire/project/new/select.blade.php b/resources/views/livewire/project/new/select.blade.php index 03316277f..18a495d2d 100644 --- a/resources/views/livewire/project/new/select.blade.php +++ b/resources/views/livewire/project/new/select.blade.php @@ -448,14 +448,56 @@ function searchResources() {

Select a Postgresql type

If you need extra extensions, you can select Supabase PostgreSQL (or others), otherwise select PostgreSQL - 17 (default).
+ 18 (default).
+
+
+
PostgreSQL 18 (default)
+
+ PostgreSQL is a powerful, open-source object-relational database system (no extensions). +
+
+ + + + + +
-
PostgreSQL 17 (default)
+
PostgreSQL 17
+
+ PostgreSQL is a powerful, open-source object-relational database system (no extensions). +
+
+ + + + + +
+
+
+
PostgreSQL 16
PostgreSQL is a powerful, open-source object-relational database system (no extensions).
@@ -513,6 +555,27 @@ class="absolute top-2 right-2 p-1.5 rounded hover:bg-neutral-200 dark:hover:bg-c
+
+
+
PGVector (18)
+
+ PGVector is a PostgreSQL extension for vector data types. +
+
+ + + + + +
Date: Wed, 4 Feb 2026 00:35:01 +0100 Subject: [PATCH 2/3] feat(database): add official postgres 18 support - postgres versions 18 and higher require a different volume mount path, so we need to adjust the path when creating them --- app/Models/StandalonePostgresql.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/Models/StandalonePostgresql.php b/app/Models/StandalonePostgresql.php index be86438fe..ea59ccaa9 100644 --- a/app/Models/StandalonePostgresql.php +++ b/app/Models/StandalonePostgresql.php @@ -28,9 +28,23 @@ class StandalonePostgresql extends BaseModel protected static function booted() { static::created(function ($database) { + // This is really stupid and it took me 1h to figure out why the image was not loading properly. This is exactly the reason why we need to use the action pattern because Model events and Accessors are a fragile mess! + $image = (string) ($database->getAttributes()['image'] ?? ''); + $majorVersion = 0; + + if (preg_match('/:(\d+)/', $image, $matches)) { + $majorVersion = (int) $matches[1]; + } + + // PostgreSQL 18+ uses /var/lib/postgresql as mount path + // Older versions use /var/lib/postgresql/data + $mountPath = $majorVersion >= 18 + ? '/var/lib/postgresql' + : '/var/lib/postgresql/data'; + LocalPersistentVolume::create([ 'name' => 'postgres-data-'.$database->uuid, - 'mount_path' => '/var/lib/postgresql/data', + 'mount_path' => $mountPath, 'host_path' => null, 'resource_id' => $database->id, 'resource_type' => $database->getMorphClass(), From 807cb4349d46f2f7c33d04d02e75b70395191a74 Mon Sep 17 00:00:00 2001 From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com> Date: Wed, 4 Feb 2026 17:17:51 +0100 Subject: [PATCH 3/3] feat(ui): use 2 column layout --- resources/views/livewire/project/new/select.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/livewire/project/new/select.blade.php b/resources/views/livewire/project/new/select.blade.php index 18a495d2d..8f97c22d8 100644 --- a/resources/views/livewire/project/new/select.blade.php +++ b/resources/views/livewire/project/new/select.blade.php @@ -449,7 +449,7 @@ function searchResources() {
If you need extra extensions, you can select Supabase PostgreSQL (or others), otherwise select PostgreSQL 18 (default).
-
+