feat: first-run setup wizard on initial admin login

After first login, admins are redirected to a 4-step setup wizard:
1. Server hostname (FQDN)
2. Primary and secondary nameservers
3. Admin email and optional password change
4. Review and confirm

Setup state is persisted in the settings table (setup_complete=true).
Once complete, the redirect never triggers again. Settings are saved
to the DB and hostname is applied via hostnamectl.
This commit is contained in:
NixReaper
2026-04-05 13:17:16 -05:00
parent 75394fcaa5
commit fa61d0d766
5 changed files with 414 additions and 14 deletions
+2
View File
@@ -11,8 +11,10 @@ import systemRoutes from './system.js'
import securityRoutes from './security.js'
import backupRoutes from './backup.js'
import webserverRoutes from './webserver.js'
import setupRoutes from './setup.js'
export default async function nixserverRoutes(fastify: FastifyInstance) {
fastify.register(setupRoutes, { prefix: '/setup' })
fastify.register(accountRoutes, { prefix: '/accounts' })
fastify.register(packageRoutes, { prefix: '/packages' })
fastify.register(resellerRoutes, { prefix: '/resellers' })