diff --git a/app/Controllers/Install.php b/app/Controllers/Install.php
index 712033c22c7ea7cce0437df2ad5f15846213cd9a..6cdb342266fe92ccb602aae87ee606426ac0b155 100644
--- a/app/Controllers/Install.php
+++ b/app/Controllers/Install.php
@@ -163,13 +163,21 @@ class Install extends Controller
                 ->with('errors', $this->validator->getErrors());
         }
 
+        $baseUrl = $this->request->getPost('hostname');
         self::writeEnv([
-            'app.baseURL' => $this->request->getPost('hostname'),
+            'app.baseURL' => $baseUrl,
             'app.adminGateway' => $this->request->getPost('admin_gateway'),
             'app.authGateway' => $this->request->getPost('auth_gateway'),
         ]);
 
-        return redirect()->back();
+        helper('text');
+
+        // redirect to full install url with new baseUrl input
+        return redirect(0)->to(
+            reduce_double_slashes(
+                $baseUrl . '/' . config('App')->installGateway
+            )
+        );
     }
 
     public function databaseConfig()
diff --git a/app/Views/install/instance_config.php b/app/Views/install/instance_config.php
index 19416b9f89eb5b042d804ad83aad457750d8c042..522bf87b8a4ddecc7b1fc098fddb48db2968ac49 100644
--- a/app/Views/install/instance_config.php
+++ b/app/Views/install/instance_config.php
@@ -15,7 +15,7 @@
     'id' => 'hostname',
     'name' => 'hostname',
     'class' => 'form-input mb-4',
-    'value' => old('hostname', set_value(host_url(), config('App')->baseURL)),
+    'value' => old('hostname', host_url() ?? config('App')->baseURL),
     'required' => 'required',
 ]) ?>