pelican-dev / panel

https://pelican.dev
GNU Affero General Public License v3.0
826 stars 85 forks source link

Broken Web Installer #623

Open RMartinOscar opened 16 hours ago

RMartinOscar commented 16 hours ago

Current Behavior

image The last step is displayed before it should. env_database.DB_DATABASE default will always be database.sqlite eventhough mariadb or sqlite is selected. The installer still writes DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD eventhough sqlite is selected. The page expires at the Admin step which forces you to refresh the page before processing.

Expected Behavior

Should only get displayed at the end. We shouldn't writeToEnv('env_general') before the redis step otherwise it won't work if the defaults don't match redis settings. It should create the admin user then go to the Setup complete step (without refresh) and Auto login.

Steps to Reproduce

Install as usual

Panel Version

latest (c0eedc1)

Wings Version

1.0.0-beta5 (not relevent)

Games and/or Eggs Affected

No response

Docker Image

No response

Error Logs

[2024-10-14 01:22:00] production.ERROR: `SELECT` failed: NOAUTH Authentication required. [tcp://localhost:6379] {"exception":"[object] (Predis\\Connection\\ConnectionException(code: 0): `SELECT` failed: NOAUTH Authentication required. [tcp://localhost:6379] at /var/www/pelican/vendor/predis/predis/src/Connection/AbstractConnection.php:131)

Is there an existing issue for this?

RMartinOscar commented 16 hours ago

Separating env_general, env_database env_redis when its all gonna get saved under env kinda feels useless but i may be wrong. I also think that inputs should be kept otherwise you loose everything on page refresh (ToggleButtons & TextInput).

Boy132 commented 11 hours ago

The last step is displayed before it should.

That looks like a filament bug.

env_database.DB_DATABASE default will always be database.sqlite eventhough mariadb or sqlite is selected.

Yeah, you are right. It checks for the env variable instead of using $get.

The installer still writes DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD eventhough sqlite is selected.

That's because hidden fields are written too. But that's not a problem.

The page expires at the Admin step which forces you to refresh the page before processing.

You didn't copy the .env.example file/ ran the setup command that copies it - or you changed the session driver.

Separating env_general, env_database env_redis when its all gonna get saved under env kinda feels useless but i may be wrong.

That's intentional, the settings are written after each step rather than all together at the end.

RMartinOscar commented 6 hours ago

The installer still writes DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD eventhough sqlite is selected.

That's because hidden fields are written too. But that's not a problem.

They shouldn't we just have to default to null and require(false) if the driver is sqlite

The page expires at the Admin step which forces you to refresh the page before processing.

You didn't copy the .env.example file/ ran the setup command that copies it - or you changed the session driver.

You can't access the installer if you don't, i ran php artisan p:environment:setup which copied .env.example into .env and key:generate for me

Separating env_general, env_database env_redis when its all gonna get saved under env kinda feels useless but i may be wrong.

That's intentional, the settings are written after each step rather than all together at the end.

Still if you save them before entering Redis credentials it will cause a 500 cause it can't connect to the cache, we have to save this at the redis step once the connection is successful.

RMartinOscar commented 4 hours ago

Still 500 on redis after #621 & #625 with the same error

Boy132 commented 3 hours ago

Still 500 on redis after #621 & #625 with the same error

Post logs.

RMartinOscar commented 2 hours ago

Right after clicking next at the Database step before i can enter any redis credentials. Like i said exact same error as before

[2024-10-14 15:34:39] production.ERROR: `SELECT` failed: NOAUTH Authentication required. [tcp://localhost:6379] {"exception":"[object] (Predis\\Connection\\ConnectionException(code: 0): `SELECT` failed: NOAUTH Authentication required. [tcp://localhost:6379] at /var/www/pelican/vendor/predis/predis/src/Connection/AbstractConnection.php:131)
[stacktrace]
#0 /var/www/pelican/vendor/predis/predis/src/Connection/StreamConnection.php(235): Predis\\Connection\\AbstractConnection->onConnectionError()
#1 /var/www/pelican/vendor/predis/predis/src/Connection/AbstractConnection.php(156): Predis\\Connection\\StreamConnection->connect()
#2 /var/www/pelican/vendor/predis/predis/src/Connection/StreamConnection.php(260): Predis\\Connection\\AbstractConnection->getResource()
#3 /var/www/pelican/vendor/predis/predis/src/Connection/StreamConnection.php(367): Predis\\Connection\\StreamConnection->write()
#4 /var/www/pelican/vendor/predis/predis/src/Connection/AbstractConnection.php(109): Predis\\Connection\\StreamConnection->writeRequest()
#5 /var/www/pelican/vendor/predis/predis/src/Client.php(349): Predis\\Connection\\AbstractConnection->executeCommand()
#6 /var/www/pelican/vendor/predis/predis/src/Client.php(303): Predis\\Client->executeCommand()
#7 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(116): Predis\\Client->__call()
#8 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(229): Illuminate\\Redis\\Connections\\Connection->command()
#9 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php(65): Illuminate\\Redis\\Connections\\Connection->__call()
#10 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(107): Illuminate\\Cache\\RedisStore->get()
#11 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php(64): Illuminate\\Cache\\Repository->get()
#12 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Session/Store.php(113): Illuminate\\Session\\CacheBasedSessionHandler->read()
#13 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Session/Store.php(101): Illuminate\\Session\\Store->readFromHandler()
#14 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Session/Store.php(85): Illuminate\\Session\\Store->loadSession()
#15 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(147): Illuminate\\Session\\Store->start()
#16 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Support/helpers.php(363): Illuminate\\Session\\Middleware\\StartSession->Illuminate\\Session\\Middleware\\{closure}()
#17 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(144): tap()
#18 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(116): Illuminate\\Session\\Middleware\\StartSession->startSession()
#19 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#20 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Session\\Middleware\\StartSession->handle()
#21 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#22 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#23 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(75): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#24 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#25 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Routing/Router.php(805): Illuminate\\Pipeline\\Pipeline->then()
#27 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Routing/Router.php(784): Illuminate\\Routing\\Router->runRouteWithinStack()
#28 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Routing/Router.php(748): Illuminate\\Routing\\Router->runRoute()
#29 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Routing/Router.php(737): Illuminate\\Routing\\Router->dispatchToRoute()
#30 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#31 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#32 /var/www/pelican/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware->handle()
#34 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#36 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(47): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#38 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#40 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#42 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\HandleCors->handle()
#44 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#46 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#48 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#49 /var/www/pelican/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1183): Illuminate\\Foundation\\Http\\Kernel->handle()
#50 /var/www/pelican/public/index.php(17): Illuminate\\Foundation\\Application->handleRequest()
#51 {main}
"} 

Im in General if you wanna talk this out