v0.320.0: FileBrowser is part of the box again; every app says where its login is; a „Fájlok" button
gates / gates (push) Successful in 50s

FileBrowser (and traefik, cloudflared, samba) has no app.yaml, so Deployed is false. Since v0.315.0 the
app page read Deployed alone and showed FileBrowser "not installed", with Install and without its login.
A protected infra stack is now installed by definition on the app page (Deployed || Protected, as every
other surface already counted): settings/guide/log tabs, Restart only, no install page, no data tab.
The Install press would have deployed the infra stack as an app: DeployStack and the deploy API now
refuse a protected stack.

In the operator state (the box does not know FileBrowser's password - both demo boxes) the login panel
offers "Új jelszó beállítása": the file browser's own CLI with the server stopped (spiked on demo-hp:
new 200, old 401, users/shares/settings unchanged), verified, stored encrypted, state generated.

Every installed app's settings tab has the login panel with exactly one answer: the box's fields, the
login the app wrote (InitialCreds), or a sentence chosen by the catalog's new app_info.login_kind
(first_visit default, email, none; none behind the family gate says the family sign-in is the login).

"Fájlok ↗" opens the library folder, else the first declared folder, else a media app's first present
drive's media folder. The data tab lists each drive's media folders; a folder whose drive is not bound
into FileBrowser is text, never a link.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-10-16 15:19:14 +02:00
parent 39bf56298d
commit f30a80841e
59 changed files with 5669 additions and 104 deletions
+20
View File
@@ -34,6 +34,7 @@
"api.deploy.hdd_path_inside_drive": "The data location of an app must be a drive, not a folder inside a drive. Choose this one: %s.",
"api.deploy.no_space": "There is not enough free space to install: only %.0f GB is free, and the system keeps %.0f GB in reserve to protect the core services (controller, proxy). Free some space, or add more storage.",
"api.deploy.not_installable": "This app cannot be installed right now.",
"api.deploy.part_of_box": "This is part of the box; it is not installed.",
"api.deploy.started": "The install has started – the card shows how it is going",
"api.geo.app_removed": "App country limit removed",
"api.geo.app_set": "App country limit set",
@@ -122,6 +123,17 @@
"app_page.login_desc": "For the first sign-in. If you change the password in the app, the old one stays here.",
"app_page.login_no_password": "The box saved no password for this install. Sign in with the one you set in the app.",
"app_page.login_no_name": "The box saved no user name for this install. Sign in with the one you set in the app.",
"app_page.login_kind_first_visit": "You create the admin account on the first visit. The box does not know the password — keep it in your password manager.",
"app_page.login_kind_email": "This app signs you in with a link by e-mail. It needs the app's e-mail sending (Settings tab).",
"app_page.login_kind_none": "This app needs no sign-in.",
"app_page.login_kind_family": "You sign in to this app with your family name and password. You add family members on the Family card of the Settings, Security page.",
"app_page.fb_operator_set": "You set this password in the File manager; the box does not know it.",
"app_page.fb_reset_btn": "Set a new password",
"app_page.fb_reset_confirm": "The old password will stop working.",
"app_page.files_btn": "Files ↗",
"app_page.files_login_note": "The File manager asks for its own password the first time. You see the password on the File manager's page.",
"app_page.files_login_link": "The File manager's page",
"app_page.infra_guide": "It is part of the box: Felhom installs it, updates it and looks after it. You do not install it, and you cannot remove it.",
"app_page.value_no": "No",
"app_page.after_start_btn": "Save",
"app_page.after_start_title": "One more step",
@@ -935,6 +947,12 @@
"datapath.consequence.import_excluded": "Copy the files to be processed in here. The app reads them and then deletes them from here — this folder is temporary and is not backed up.",
"datapath.consequence.kept": "This is where your files are kept. It is backed up.",
"datapath.free_space": "%.1f GB free",
"datapath.unavailable": "(the drive is not available now)",
"datapath.media.row": "%s — %s",
"datapath.media.root": "Media",
"datapath.media.movies": "Movies",
"datapath.media.tv": "TV shows",
"datapath.media.downloads": "Downloads",
"debug.night_chain": "Tonight's chain now (dump → second drive → off-site → update)",
"debug.aktiv": "Active",
"debug.aktiv_feladat": "Active job",
@@ -1420,6 +1438,8 @@
"escrow.app_settings_unreadable": "The app’s settings cannot be read.",
"escrow.field_not_revealable": "This field cannot be revealed.",
"escrow.filebrowser_not_ours": "Felhom did not set the File manager password on this machine, so we cannot show it.",
"filebrowser.reset_not_operator": "The box already knows the password of the File manager — the Show button shows it.",
"filebrowser.reset_failed": "The new password could not be set. Try again in a few minutes.",
"escrow.initial_pw_read_failed": "The first password could not be read.",
"escrow.initial_pw_unavailable": "The first password cannot be read right now — the app has to be running, and the file may have been deleted after the first sign-in.",
"escrow.missing_field": "A field is missing.",
+20
View File
@@ -30,6 +30,7 @@
"api.deploy.hdd_path_inside_drive": "Az alkalmazás adatainak helye egy meghajtó lehet, nem egy mappa a meghajtón belül. Válaszd ezt: %s.",
"api.deploy.no_space": "Nincs elég szabad tárhely a telepítéshez: csak %.0f GB szabad, és a rendszer %.0f GB tartalékot tart fenn az alapszolgáltatások (vezérlő, proxy) védelmében. Szabadíts fel helyet, vagy bővítsd a tárhelyet.",
"api.deploy.not_installable": "Ez az alkalmazás jelenleg nem telepíthető.",
"api.deploy.part_of_box": "Ez a doboz része, nem kell telepíteni.",
"api.deploy.started": "Telepítés elindítva – az állapot a kártyán követhető",
"api.geo.app_removed": "Alkalmazás geo-korlátozás eltávolítva",
"api.geo.app_set": "Alkalmazás geo-korlátozás beállítva",
@@ -118,6 +119,17 @@
"app_page.login_desc": "Az első bejelentkezéshez. Ha az alkalmazásban megváltoztatod a jelszót, itt a régi marad.",
"app_page.login_no_password": "A doboz ennél a telepítésnél nem mentett jelszót. A belépéshez azt használd, amit az alkalmazásban beállítottál.",
"app_page.login_no_name": "A doboz ennél a telepítésnél nem mentett felhasználónevet. A belépéshez azt használd, amit az alkalmazásban beállítottál.",
"app_page.login_kind_first_visit": "Az admin fiókot az első megnyitáskor te hozod létre. A jelszót a doboz nem tudja — írd fel a jelszókezelődbe.",
"app_page.login_kind_email": "Ez az alkalmazás e-mailben küld belépési linket. Ehhez az alkalmazás e-mail küldése kell (Beállítások fül).",
"app_page.login_kind_none": "Ehhez az alkalmazáshoz nem kell belépés.",
"app_page.login_kind_family": "Ehhez az alkalmazáshoz a családi neveddel és jelszavaddal lépsz be. A családtagokat a Beállítások, Biztonság oldal Család kártyáján adod hozzá.",
"app_page.fb_operator_set": "Ezt a jelszót te állítottad be a Fájlkezelőben; a doboz nem ismeri.",
"app_page.fb_reset_btn": "Új jelszó beállítása",
"app_page.fb_reset_confirm": "A régi jelszó nem fog működni.",
"app_page.files_btn": "Fájlok ↗",
"app_page.files_login_note": "A Fájlkezelő a saját jelszavát kéri az első alkalommal. A jelszót a Fájlkezelő oldalán látod.",
"app_page.files_login_link": "A Fájlkezelő oldala",
"app_page.infra_guide": "A doboz része: a Felhom telepíti, frissíti és felügyeli. Nem kell telepíteni, és nem lehet eltávolítani.",
"app_page.value_no": "Nem",
"app_page.after_start_btn": "Mentés",
"app_page.after_start_title": "Még egy lépés",
@@ -930,6 +942,12 @@
"datapath.consequence.import_excluded": "Ide másold a feldolgozandó fájlokat. Az alkalmazás beolvassa, majd törli innen — ez a mappa átmeneti, és nem készül róla biztonsági mentés.",
"datapath.consequence.kept": "Itt tárolódnak a fájljaid. Biztonsági mentés készül róla.",
"datapath.free_space": "%.1f GB szabad",
"datapath.unavailable": "(a tárhely most nem érhető el)",
"datapath.media.row": "%s — %s",
"datapath.media.root": "Média",
"datapath.media.movies": "Filmek",
"datapath.media.tv": "Sorozatok",
"datapath.media.downloads": "Letöltések",
"debug.night_chain": "Az éjszakai lánc most (mentés → 2. meghajtó → távoli → frissítés)",
"debug.aktiv": "Aktív",
"debug.aktiv_feladat": "Aktív feladat",
@@ -1411,6 +1429,8 @@
"escrow.app_settings_unreadable": "Az alkalmazás beállításai nem olvashatók.",
"escrow.field_not_revealable": "Ez a mező nem kérhető le.",
"escrow.filebrowser_not_ours": "A Fájlkezelő jelszavát nem a Felhom állította be ezen a gépen, ezért nem tudjuk megmutatni.",
"filebrowser.reset_not_operator": "A Fájlkezelő jelszavát a doboz már ismeri — a Megjelenítés gomb mutatja.",
"filebrowser.reset_failed": "Az új jelszót nem sikerült beállítani. Próbáld újra pár perc múlva.",
"escrow.initial_pw_read_failed": "A kezdeti jelszó beolvasása nem sikerült.",
"escrow.initial_pw_unavailable": "A kezdeti jelszó most nem olvasható ki — az alkalmazásnak futnia kell hozzá, és lehet, hogy a fájlt az első bejelentkezés után már törölték.",
"escrow.missing_field": "Hiányzó mező.",