feat(setup): install-wizard UI (epic 6c)
- Multi-step first-run wizard (intro → admin → Google → SMTP → finish), shown by App while the instance reports configured=false; the one-time token comes from the setup URL (?token=) and is sent as X-Setup-Token on every step. Google/SMTP steps appear only when secrets can be stored. - App holds the 'me' query until setup status is known (so it doesn't 503 against the setup lock); a missing/invalid token shows a 'use the link from the logs' screen. EN/HU/DE.
This commit is contained in:
parent
c33a04c353
commit
e4b997d754
6 changed files with 461 additions and 0 deletions
50
frontend/src/i18n/locales/de/setup.json
Normal file
50
frontend/src/i18n/locales/de/setup.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"intro": {
|
||||
"title": "Willkommen — richten wir Siftlode ein",
|
||||
"body": "Ein paar schnelle Schritte, und deine Instanz ist bereit: Erstelle dein Admin-Konto und verbinde optional die Google-Anmeldung und E-Mail. All das kannst du später in den Admin-Einstellungen ändern."
|
||||
},
|
||||
"admin": {
|
||||
"title": "Admin-Konto erstellen",
|
||||
"desc": "Dies ist das erste Konto und ein Administrator. Nach der Einrichtung meldest du dich mit dieser E-Mail und diesem Passwort an.",
|
||||
"email": "E-Mail-Adresse",
|
||||
"password": "Passwort (min. {{n}} Zeichen)",
|
||||
"invalidEmail": "Gib eine gültige E-Mail-Adresse ein.",
|
||||
"shortPassword": "Das Passwort muss mindestens {{n}} Zeichen lang sein."
|
||||
},
|
||||
"google": {
|
||||
"title": "Mit Google anmelden (optional)",
|
||||
"desc": "Füge deine Google-OAuth-Client-ID und das Secret ein, um die Google-Anmeldung und den YouTube-Zugriff zu aktivieren. Beide leer lassen zum Überspringen — E-Mail+Passwort funktioniert auch ohne.",
|
||||
"clientId": "Google-Client-ID",
|
||||
"clientSecret": "Google-Client-Secret",
|
||||
"bothRequired": "Gib Client-ID und Secret ein oder lass beide leer zum Überspringen.",
|
||||
"skipHint": "Leer lassen, um dies später auf der Admin-Konfigurationsseite einzurichten."
|
||||
},
|
||||
"smtp": {
|
||||
"title": "E-Mail / SMTP (optional)",
|
||||
"desc": "Richte einen SMTP-Server ein, damit Siftlode Bestätigungs-, Reset- und Benachrichtigungs-E-Mails senden kann. Host leer lassen zum Überspringen — ohne E-Mail werden Registrierungen stattdessen vom Admin automatisch freigegeben.",
|
||||
"host": "SMTP-Host (z. B. smtp.gmail.com)",
|
||||
"port": "Port",
|
||||
"user": "Benutzername",
|
||||
"from": "Absenderadresse (optional)",
|
||||
"password": "SMTP-Passwort",
|
||||
"testTo": "Test-E-Mail senden an…",
|
||||
"test": "Test senden",
|
||||
"testOk": "Test-E-Mail gesendet — sieh im Postfach nach.",
|
||||
"testFail": "Senden fehlgeschlagen — prüfe die Einstellungen.",
|
||||
"skipHint": "Leer lassen, um dies später auf der Admin-Konfigurationsseite einzurichten."
|
||||
},
|
||||
"finish": {
|
||||
"title": "Alles bereit!",
|
||||
"body": "Klicke auf Fertig, um die Einrichtung abzuschließen. Der Assistent verschwindet und du gelangst zur Anmeldeseite — melde dich mit dem soeben erstellten Admin-Konto an."
|
||||
},
|
||||
"nav": {
|
||||
"back": "Zurück",
|
||||
"next": "Weiter",
|
||||
"finish": "Fertig"
|
||||
},
|
||||
"token": {
|
||||
"title": "Setup-Link erforderlich",
|
||||
"body": "Öffne den Assistenten über den Link, der beim ersten Start in den Container-Logs ausgegeben wird (sieht aus wie …/setup?token=…). Er stellt sicher, dass nur der Betreiber diese Instanz einrichten kann."
|
||||
},
|
||||
"genericError": "Etwas ist schiefgelaufen — bitte versuche es erneut."
|
||||
}
|
||||
50
frontend/src/i18n/locales/en/setup.json
Normal file
50
frontend/src/i18n/locales/en/setup.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"intro": {
|
||||
"title": "Welcome — let's set up Siftlode",
|
||||
"body": "A few quick steps to get your instance ready: create your admin account, and optionally connect Google sign-in and email. You can change all of this later from the admin settings."
|
||||
},
|
||||
"admin": {
|
||||
"title": "Create your admin account",
|
||||
"desc": "This is the first account and an administrator. You'll sign in with this email and password once setup is done.",
|
||||
"email": "Email address",
|
||||
"password": "Password (min. {{n}} characters)",
|
||||
"invalidEmail": "Enter a valid email address.",
|
||||
"shortPassword": "Password must be at least {{n}} characters."
|
||||
},
|
||||
"google": {
|
||||
"title": "Sign in with Google (optional)",
|
||||
"desc": "Paste your Google OAuth client ID and secret to enable Google sign-in and YouTube access. Leave both empty to skip — email+password works without it.",
|
||||
"clientId": "Google client ID",
|
||||
"clientSecret": "Google client secret",
|
||||
"bothRequired": "Enter both the client ID and secret, or leave both empty to skip.",
|
||||
"skipHint": "Leave empty to set this up later from the admin Configuration page."
|
||||
},
|
||||
"smtp": {
|
||||
"title": "Email / SMTP (optional)",
|
||||
"desc": "Configure an SMTP server so Siftlode can send verification, reset and notification emails. Leave the host empty to skip — without email, registrations are auto-approved by the admin instead.",
|
||||
"host": "SMTP host (e.g. smtp.gmail.com)",
|
||||
"port": "Port",
|
||||
"user": "Username",
|
||||
"from": "From address (optional)",
|
||||
"password": "SMTP password",
|
||||
"testTo": "Send a test email to…",
|
||||
"test": "Send test",
|
||||
"testOk": "Test email sent — check the inbox.",
|
||||
"testFail": "Couldn't send — check the settings.",
|
||||
"skipHint": "Leave empty to set this up later from the admin Configuration page."
|
||||
},
|
||||
"finish": {
|
||||
"title": "All set!",
|
||||
"body": "Click Finish to complete setup. The wizard will disappear and you'll be taken to the sign-in page — log in with the admin account you just created."
|
||||
},
|
||||
"nav": {
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"finish": "Finish"
|
||||
},
|
||||
"token": {
|
||||
"title": "Setup link needed",
|
||||
"body": "Open the setup wizard using the link printed in the container logs at first start (it looks like …/setup?token=…). It's required so only the operator can configure this instance."
|
||||
},
|
||||
"genericError": "Something went wrong — please try again."
|
||||
}
|
||||
50
frontend/src/i18n/locales/hu/setup.json
Normal file
50
frontend/src/i18n/locales/hu/setup.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"intro": {
|
||||
"title": "Üdv — állítsuk be a Siftlode-ot",
|
||||
"body": "Néhány gyors lépés, és kész a példányod: hozd létre az admin fiókodat, és igény szerint kösd be a Google-bejelentkezést és az e-mailt. Mindezt később az admin beállításokból módosíthatod."
|
||||
},
|
||||
"admin": {
|
||||
"title": "Admin fiók létrehozása",
|
||||
"desc": "Ez az első fiók, egyben adminisztrátor. A telepítés után ezzel az e-maillel és jelszóval jelentkezel be.",
|
||||
"email": "E-mail-cím",
|
||||
"password": "Jelszó (min. {{n}} karakter)",
|
||||
"invalidEmail": "Adj meg érvényes e-mail-címet.",
|
||||
"shortPassword": "A jelszó legalább {{n}} karakter legyen."
|
||||
},
|
||||
"google": {
|
||||
"title": "Google bejelentkezés (opcionális)",
|
||||
"desc": "Illeszd be a Google OAuth kliens-azonosítót és -titkot a Google-bejelentkezés és a YouTube-hozzáférés engedélyezéséhez. Hagyd üresen mindkettőt a kihagyáshoz — e-mail+jelszó enélkül is működik.",
|
||||
"clientId": "Google kliens-azonosító",
|
||||
"clientSecret": "Google kliens-titok",
|
||||
"bothRequired": "Add meg a kliens-azonosítót és a -titkot is, vagy hagyd üresen mindkettőt a kihagyáshoz.",
|
||||
"skipHint": "Hagyd üresen, ha később, az admin Configuration oldalon állítanád be."
|
||||
},
|
||||
"smtp": {
|
||||
"title": "E-mail / SMTP (opcionális)",
|
||||
"desc": "Állíts be egy SMTP-szervert, hogy a Siftlode tudjon verifikációs, reset- és értesítő e-mailt küldeni. Hagyd üresen a hostot a kihagyáshoz — e-mail nélkül a regisztrációkat az admin hagyja jóvá automatikusan.",
|
||||
"host": "SMTP-host (pl. smtp.gmail.com)",
|
||||
"port": "Port",
|
||||
"user": "Felhasználónév",
|
||||
"from": "Feladó cím (opcionális)",
|
||||
"password": "SMTP-jelszó",
|
||||
"testTo": "Teszt-e-mail ide…",
|
||||
"test": "Teszt küldése",
|
||||
"testOk": "Teszt-e-mail elküldve — nézd meg a postafiókot.",
|
||||
"testFail": "Nem sikerült elküldeni — ellenőrizd a beállításokat.",
|
||||
"skipHint": "Hagyd üresen, ha később, az admin Configuration oldalon állítanád be."
|
||||
},
|
||||
"finish": {
|
||||
"title": "Minden kész!",
|
||||
"body": "Kattints a Befejezésre a telepítés lezárásához. A varázsló eltűnik, és a bejelentkező oldalra kerülsz — lépj be az imént létrehozott admin fiókkal."
|
||||
},
|
||||
"nav": {
|
||||
"back": "Vissza",
|
||||
"next": "Tovább",
|
||||
"finish": "Befejezés"
|
||||
},
|
||||
"token": {
|
||||
"title": "Setup-link szükséges",
|
||||
"body": "Nyisd meg a varázslót a konténer logjaiba az első indításkor kiírt linkkel (így néz ki: …/setup?token=…). Ez azért kell, hogy csak az üzemeltető tudja beállítani a példányt."
|
||||
},
|
||||
"genericError": "Valami hiba történt — próbáld újra."
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue