v0.315.0 worked and looked, in the operator's words, messy: boxes of different widths stacked down
the page, with the same card shape around things you act on and things you only read. The mockup
approved on 2026-10-15 replaces it, and each of its three rules has a reason:
ONE COLUMN OF ONE WIDTH (820px). Differing widths read as a page assembled by accident.
SECTIONS ARE HAIRLINES, NOT CARDS. A card says "this is a thing you act on"; most of an app page
is a thing you READ, so a card there is a promise the content cannot keep.
A BOX MEANS SOMETHING. Exactly two remain: blue when the app is waiting for the household,
amber when something is risky. The exception-colour principle applied to shape as well.
What moved:
- the hero loses its box: a 64px logo tile, the name at 26px, the tagline, then hairline chips
(state, lifecycle, update) and meta text (the address, the last automatic update);
- the tabs are links with a 2px blue underline under the open one — no pills, no fills;
- sections are `padding: 28px 0` with a bottom hairline; rows are a 200px label column so every
value on the page starts at the same x, and stack under 720px;
- the after-start callout is now the FIRST thing on Beallitasok. A household opening a Plex that
wants its claim code should meet the code box, not a Restart button;
- "2. mentes beallitasa — <app>" and "<app> — Exportalas" are gone: they were the headings of
pages that no longer exist, on a tab that already says which app this is;
- the settings tab gains "Cim es kulcsok" with one address row, and the disabled subdomain input
that said the same thing is skipped for an installed app (the install wizard still asks);
- the "this app is already installed, the settings are read-only" BANNER becomes the hint under
the fields it is about;
- the install wizard gets the same back link, hero and column, so pressing Telepites does not
land the household on a page that looks like a different product.
THE AUTO-UPDATE SUCCESS BANNER IS GONE. It was a full-width blue box above the tabs, level with
"the update failed" and "your files are missing". A success that asked nothing of the household is
a date, and it is now meta text in the hero. Every banner that DOES need a decision — a failed
update, a hold, lost files, a missing drive, an interrupted install — is untouched, above the tabs,
exactly where R-571 puts it.
Tests: TestAppPage_OneColumnLayout (one column, one aria-current, no card-shaped section, no
success banner), TestAppPage_AutoUpdateSuccessIsMetaNotBanner, TestAppPage_CalloutsOnlyForAskAndWarn
(one blue callout on a waiting app and it comes first; one amber on a same-disk backup; none on the
good case). Four red-proofs recorded in REPORT.
app_row_dedup_gate convicted `.app-row`, correctly: that class already means "a row in the app
list". The app page's label/value row is `.app-field-row`. Restoring the list's own rule after an
over-broad rename was part of the fix.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117kRTSgs3rJWUFGxyoWN6Y
This commit is contained in:
@@ -114,6 +114,9 @@
|
||||
"app_import.tarolo": "Storage",
|
||||
"app_import.titkos": "Encrypted",
|
||||
"app_import.visszaallitas_inditasa": "Start restore",
|
||||
"app_page.address_and_keys": "Address and keys",
|
||||
"app_page.address": "Address",
|
||||
"app_page.installed_readonly": "These were created at install time and cannot be changed.",
|
||||
"app_page.after_start_btn": "Save",
|
||||
"app_page.after_start_title": "One more step",
|
||||
"app_page.faq": "Frequently asked questions",
|
||||
|
||||
@@ -110,6 +110,9 @@
|
||||
"app_import.tarolo": "Tároló",
|
||||
"app_import.titkos": "Titkos",
|
||||
"app_import.visszaallitas_inditasa": "Visszaállítás indítása",
|
||||
"app_page.address_and_keys": "Cím és kulcsok",
|
||||
"app_page.address": "Cím",
|
||||
"app_page.installed_readonly": "Ezek telepítéskor jöttek létre, és nem módosíthatók.",
|
||||
"app_page.after_start_btn": "Mentés",
|
||||
"app_page.after_start_title": "Még egy lépés",
|
||||
"app_page.faq": "Gyakori kérdések",
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"gitea.dooplex.hu/admin/felhom-controller/internal/stacks"
|
||||
)
|
||||
|
||||
// THE ONE-COLUMN LAYOUT (v0.316.0, the operator-approved mockup of 2026-10-15).
|
||||
//
|
||||
// These assert STRUCTURE, not strings: the rules the mockup is made of are "one column", "sections
|
||||
// are hairlines, not cards" and "a box means something". Each is checkable in the rendered HTML,
|
||||
// and each had a counter-example in v0.315.0 — which looked, in the operator's words, messy.
|
||||
|
||||
// TestAppPage_OneColumnLayout — per tab: one column, exactly one current tab, the auto-update
|
||||
// SUCCESS banner gone and its date in the meta line instead, and no section drawn as a card.
|
||||
//
|
||||
// RED-PROOF (REPORT.md): put the success banner back in app_shell.html -> the banner assertion
|
||||
// fails; drop .app-page from a tab -> the column assertion fails. Both reverted.
|
||||
func TestAppPage_OneColumnLayout(t *testing.T) {
|
||||
s := appPageHarness(t)
|
||||
for _, tab := range []string{"", "/settings", "/data", "/guide", "/logs"} {
|
||||
body := appGet(t, s, "/apps/adventurelog"+tab).Body.String()
|
||||
where := "/apps/adventurelog" + tab
|
||||
|
||||
// ONE COLUMN: the content sits in exactly one .app-page wrapper.
|
||||
if n := strings.Count(body, `class="app-page`); n != 1 {
|
||||
t.Errorf("%s: %d .app-page wrappers, want exactly 1 — the column is what makes the "+
|
||||
"widths agree", where, n)
|
||||
}
|
||||
|
||||
// EXACTLY ONE current tab. Two would be a lie about where the household is; none would
|
||||
// leave the bar looking like a row of links, which is what v0.315.0 shipped.
|
||||
if n := strings.Count(body, `aria-current="page"`); n != 1 {
|
||||
t.Errorf("%s: %d aria-current=\"page\", want exactly 1", where, n)
|
||||
}
|
||||
|
||||
// THE SUCCESS BANNER IS NEVER A BANNER. (Whether this app HAS one is the sub-test below;
|
||||
// here the rule is that no tab ever renders it as an alert.)
|
||||
if strings.Contains(body, `class="alert alert-info" style="margin-top:1rem" data-auto-update="done"`) {
|
||||
t.Errorf("%s: the auto-update SUCCESS banner is back", where)
|
||||
}
|
||||
|
||||
// NO SECTION IS A CARD. .app-info-card carries a background, a border and a radius; inside
|
||||
// the app page nothing may use it — a section is a hairline.
|
||||
if strings.Contains(body, "app-info-card") {
|
||||
t.Errorf("%s: a section is still drawn as a card (app-info-card)", where)
|
||||
}
|
||||
|
||||
// The tab bar and the hero are on every tab, and the hero is not a box.
|
||||
for _, marker := range []string{`class="app-back"`, `class="app-hero"`, `class="app-tabs"`} {
|
||||
if !strings.Contains(body, marker) {
|
||||
t.Errorf("%s: missing %s", where, marker)
|
||||
}
|
||||
}
|
||||
if strings.Contains(body, `class="app-info-hero"`) {
|
||||
t.Errorf("%s: the hero is still the boxed one", where)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestAppPage_AutoUpdateSuccessIsMetaNotBanner — the other half of the rule, on a fixture that
|
||||
// actually has an automatic update to report. v0.315.0 gave it a full-width blue banner above the
|
||||
// tabs, level with "the update failed" and "your files are missing"; a success that asked nothing
|
||||
// of the household is a date.
|
||||
//
|
||||
// RED-PROOF (REPORT.md): restore the `{{else if .AutoUpdateLine}}` banner branch in
|
||||
// app_shell.html -> this fails on the banner assertion. Reverted.
|
||||
func TestAppPage_AutoUpdateSuccessIsMetaNotBanner(t *testing.T) {
|
||||
st := i18nStack("privatebin", "PrivateBin", stacks.StateRunning, true)
|
||||
body := renderBackupPage(t, "app_settings", map[string]interface{}{
|
||||
"Page": "stacks", "Title": "PrivateBin", "Domain": "example.hu", "CSRFToken": "tok",
|
||||
"Stack": st, "Meta": st.Meta, "AppInfo": st.Meta.AppInfo,
|
||||
"Deployed": true, "AppOperational": true,
|
||||
"AutoUpdateLine": "A frissites 2026. 09. 28-kor sikerult.",
|
||||
// An installed app has a tab bar, and the point of this test is WHERE the line sits
|
||||
// relative to it.
|
||||
"ActiveTab": appTabSettings,
|
||||
"AppTabs": []AppTabLink{
|
||||
{Key: appTabSettings, Href: "/apps/privatebin/settings", Label: "Beallitasok", Active: true},
|
||||
{Key: appTabData, Href: "/apps/privatebin/data", Label: "Adatok"},
|
||||
},
|
||||
})
|
||||
if !strings.Contains(body, `class="app-meta" data-auto-update="done"`) {
|
||||
t.Error("the auto-update success line is not the meta line")
|
||||
}
|
||||
if strings.Contains(body, `class="alert alert-info" style="margin-top:1rem" data-auto-update="done"`) {
|
||||
t.Error("the auto-update success is still a banner")
|
||||
}
|
||||
// It sits in the hero, above the tabs — not in the banner strip under it.
|
||||
meta, tabs := strings.Index(body, `data-auto-update="done"`), strings.Index(body, `class="app-tabs"`)
|
||||
if meta < 0 || tabs < 0 || meta > tabs {
|
||||
t.Errorf("the meta line must be in the hero, above the tab bar (meta=%d tabs=%d)", meta, tabs)
|
||||
}
|
||||
}
|
||||
|
||||
// TestAppPage_CalloutsOnlyForAskAndWarn (Scenario E) — the two boxes, and nothing else.
|
||||
//
|
||||
// RED-PROOF (REPORT.md): draw an informational section as a callout -> the count assertions fail.
|
||||
func TestAppPage_CalloutsOnlyForAskAndWarn(t *testing.T) {
|
||||
// An app WAITING for the household: exactly one blue callout, and it is the after-start card.
|
||||
t.Run("waiting for a value -> one blue callout", func(t *testing.T) {
|
||||
s := afterStartHarness(t, "plex", "PLEX_CLAIM", true)
|
||||
body := appGet(t, s, "/apps/plex").Body.String()
|
||||
if n := strings.Count(body, "app-callout-ask"); n != 1 {
|
||||
t.Errorf("%d blue callouts, want exactly 1 (the after-start card)", n)
|
||||
}
|
||||
if n := strings.Count(body, "app-callout-warn"); n != 0 {
|
||||
t.Errorf("%d amber callouts on an app with nothing wrong, want 0 — amber is for a "+
|
||||
"deviation, and being asked for a code is not one", n)
|
||||
}
|
||||
// It is the FIRST section: the app is waiting, so nothing else goes above it.
|
||||
ask := strings.Index(body, "app-callout-ask")
|
||||
run := strings.Index(body, `data-run-card="1"`)
|
||||
if ask < 0 || run < 0 || ask > run {
|
||||
t.Errorf("the after-start callout must come before the Mukodes card (ask=%d run=%d)", ask, run)
|
||||
}
|
||||
})
|
||||
|
||||
// An app with nothing to ask: no blue callout anywhere.
|
||||
t.Run("nothing to ask -> no blue callout", func(t *testing.T) {
|
||||
s := appPageHarness(t)
|
||||
for _, tab := range []string{"", "/settings", "/data", "/guide", "/logs"} {
|
||||
body := appGet(t, s, "/apps/adventurelog"+tab).Body.String()
|
||||
if n := strings.Count(body, "app-callout-ask"); n != 0 {
|
||||
t.Errorf("/apps/adventurelog%s: %d blue callouts, want 0", tab, n)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// The amber callout is reserved for the risky fact — the app's data sharing a disk with its
|
||||
// backup. Rendered straight, because the harness app is not an HDD app.
|
||||
t.Run("backup on the same disk -> one amber callout", func(t *testing.T) {
|
||||
st := i18nStack("privatebin", "PrivateBin", stacks.StateRunning, true)
|
||||
d := map[string]interface{}{
|
||||
"Page": "stacks", "Title": "PrivateBin", "Domain": "example.hu", "CSRFToken": "tok",
|
||||
"Stack": st, "Meta": st.Meta, "AppInfo": st.Meta.AppInfo,
|
||||
"Deployed": true, "AppOperational": true,
|
||||
"StackName": "privatebin", "DisplayName": "PrivateBin",
|
||||
"Tier2": map[string]interface{}{"IsHDDApp": false},
|
||||
"SystemBackup": "same_disk",
|
||||
}
|
||||
body := renderBackupPage(t, "app_data", d)
|
||||
if n := strings.Count(body, "app-callout-warn"); n != 1 {
|
||||
t.Errorf("%d amber callouts, want exactly 1 (the same-disk warning)", n)
|
||||
}
|
||||
if n := strings.Count(body, "app-callout-ask"); n != 0 {
|
||||
t.Errorf("%d blue callouts on the data tab, want 0", n)
|
||||
}
|
||||
if !strings.Contains(body, `data-system-backup="same_disk"`) {
|
||||
t.Error("the same-disk marker is gone")
|
||||
}
|
||||
// The honest branch when the whole-system backup IS on its own drive is NOT a warning.
|
||||
d["SystemBackup"] = "protected"
|
||||
ok := renderBackupPage(t, "app_data", d)
|
||||
if n := strings.Count(ok, "app-callout-warn"); n != 0 {
|
||||
t.Errorf("a protected whole-system backup drew %d amber callouts, want 0 — amber is a "+
|
||||
"deviation, and this is the good case", n)
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -149,15 +149,15 @@ func TestAppPage_DeployedDefaultsToSettings(t *testing.T) {
|
||||
|
||||
// The header does not. This is the whole point of the Mukodes card: the three buttons used to
|
||||
// sit in the page header and read as menu items.
|
||||
// The header is everything before the hero block; app-info-hero is the design system's existing
|
||||
// hero class, which the shell reuses rather than inventing one with no rules behind it.
|
||||
hi, hj := strings.Index(body, `class="page-header"`), strings.Index(body, `class="app-info-hero"`)
|
||||
// v0.316.0: the header IS the hero — a back link, the name, the chips and (at most) „Megnyitas".
|
||||
// Everything above the tab bar is therefore what must carry no state-change button.
|
||||
hi, hj := strings.Index(body, `class="app-back"`), strings.Index(body, `class="app-tabs"`)
|
||||
if hi < 0 || hj < 0 || hj < hi {
|
||||
t.Fatalf("the shell's header/hero markers are gone (page-header=%d app-info-hero=%d)", hi, hj)
|
||||
t.Fatalf("the shell's hero/tab markers are gone (app-back=%d app-tabs=%d)", hi, hj)
|
||||
}
|
||||
header := body[hi:hj]
|
||||
if strings.Contains(header, "stackAction(") {
|
||||
t.Errorf("the page header must carry no state-change button, got: %q", header)
|
||||
t.Errorf("the hero must carry no state-change button — they belong in the Mukodes card, got: %q", header)
|
||||
}
|
||||
|
||||
// Part 3: Raspberry Pi is no longer supported, so neither badge may appear.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{{define "app_data"}}
|
||||
{{template "layout_start" .}}
|
||||
<div class="app-page">
|
||||
{{template "app_shell_start" .}}
|
||||
|
||||
{{/* „ADATOK ES MENTES" — everything about this app's FILES, in the order the household asks it:
|
||||
@@ -17,7 +18,7 @@
|
||||
{{if .FlashError}}<div class="monitoring-banner monitoring-banner-red">{{.FlashError}}</div>{{end}}
|
||||
|
||||
{{if .DataPathCards}}
|
||||
<div class="app-info-card" style="margin-top:1rem">
|
||||
<div class="app-section" style="margin-top:1rem">
|
||||
<h3>{{T "app_info.hova_tegyem_a_fajlokat"}}</h3>
|
||||
<p class="form-hint">{{T "app_info.ezeket_a_mappakat_a_fajlkezeloben"}}</p>
|
||||
<div class="datapath-list">
|
||||
@@ -35,7 +36,7 @@
|
||||
{{end}}
|
||||
|
||||
{{if and .Stack.Deployed .MigrateTargets}}
|
||||
<div class="app-info-card" style="margin-top:1rem">
|
||||
<div class="app-section" style="margin-top:1rem">
|
||||
<h3>{{T "app_info.athelyezes_masik_tarhelyre"}}</h3>
|
||||
<p class="form-hint">{{T "app_info.ennek_az_alkalmazasnak_az_adatait"}}</p>
|
||||
<div style="display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -97,8 +98,10 @@ function appMigrate(btn,app,label){
|
||||
</div>
|
||||
|
||||
{{if .Tier2}}
|
||||
<h3 style="margin-top:1.5rem">{{T "tier2_config.2_mentes_beallitasa"}}</h3>
|
||||
<div class="monitor-card">
|
||||
{{/* v0.316.0: a SECTION, not a page title over a card. „2. mentés beállítása — <app>" was the
|
||||
heading of a page that no longer exists; the tab already says which app this is. */}}
|
||||
<div class="app-section">
|
||||
<h3>{{T "tier2_config.2_mentes_beallitasa"}}</h3>
|
||||
{{with .Tier2}}
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
{{T "tier2_config.a_2_mentes_egy_masik"}}
|
||||
@@ -106,19 +109,19 @@ function appMigrate(btn,app,label){
|
||||
|
||||
{{if not .IsHDDApp}}
|
||||
{{if eq $.SystemBackup "protected"}}
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem" data-system-backup="protected">
|
||||
<div class="app-callout" style="margin-top:1rem" data-system-backup="protected">
|
||||
{{T "tier2_config.rendszerlemez.vedett"}}
|
||||
</div>
|
||||
{{else if eq $.SystemBackup "same_disk"}}
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem" data-system-backup="same_disk">
|
||||
<div class="app-callout app-callout-warn" style="margin-top:1rem" data-system-backup="same_disk">
|
||||
{{T "tier2_config.rendszerlemez.ugyanaz"}}
|
||||
</div>
|
||||
{{else if eq $.SystemBackup "absent"}}
|
||||
<div class="monitoring-banner monitoring-banner-red" style="margin-top:1rem" data-system-backup="absent">
|
||||
<div class="app-callout app-callout-warn" style="margin-top:1rem" data-system-backup="absent">
|
||||
{{T "tier2_config.rendszerlemez.hianyzik"}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem" data-system-backup="unknown">
|
||||
<div class="app-callout app-callout-warn" style="margin-top:1rem" data-system-backup="unknown">
|
||||
{{T "tier2_config.rendszerlemez.ismeretlen"}}
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -151,7 +154,7 @@ function appMigrate(btn,app,label){
|
||||
</div>
|
||||
|
||||
{{if .EffectiveIsSSD}}
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem">
|
||||
<div class="app-callout app-callout-warn" style="margin-top:1rem">
|
||||
{{T "tier2_config.jelenleg_csak_a_belso_ssd"}}
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -186,9 +189,9 @@ function appMigrate(btn,app,label){
|
||||
{{end}}
|
||||
|
||||
{{if .ExportOffered}}
|
||||
<h3 style="margin-top:2rem">{{T "app_export.exportalas"}}</h3>
|
||||
<div class="card" style="max-width:700px">
|
||||
<h3>{{T "app_export.mentes_helye"}}</h3>
|
||||
<div class="app-section">
|
||||
<h3>{{T "app_export.exportalas"}}</h3>
|
||||
<h4 style="font-size:14px;font-weight:600;margin:12px 0 6px">{{T "app_export.mentes_helye"}}</h4>
|
||||
<select id="destDrive" onchange="loadEstimate()" style="width:100%;padding:.5rem;margin-bottom:1rem">
|
||||
<option value="">{{T "app_export.valassz_tarolot"}}</option>
|
||||
{{range .Drives}}
|
||||
@@ -495,5 +498,6 @@ function showDone(data) {
|
||||
</div>
|
||||
|
||||
{{template "app_press_script" .}}
|
||||
</div>{{/* .app-page */}}
|
||||
{{template "layout_end" .}}
|
||||
{{end}}
|
||||
|
||||
@@ -60,6 +60,10 @@
|
||||
<div class="form-section">
|
||||
<h4>{{T "deploy.beallitasok"}}</h4>
|
||||
{{range .UserFields}}
|
||||
{{/* v0.316.0: an INSTALLED app shows its address once, as the „Cim" row above these
|
||||
fields, so the disabled subdomain input saying the same thing is skipped. The
|
||||
install wizard still asks for it — this is the read-only view's duplicate only. */}}
|
||||
{{if and $.AlreadyDeployed (eq .Type "subdomain")}}{{continue}}{{end}}
|
||||
<div class="form-group">
|
||||
<label for="field-{{.EnvVar}}">
|
||||
{{.Label}}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{{define "app_guide"}}
|
||||
{{template "layout_start" .}}
|
||||
<div class="app-page">
|
||||
{{template "app_shell_start" .}}
|
||||
|
||||
{{/* „UTMUTATO" — the app's own copy, and the WHOLE page for an app that is not installed yet.
|
||||
@@ -27,7 +28,7 @@
|
||||
{{/* The install button lives on this tab, because this tab IS the page for a not-installed app.
|
||||
The server refuses a non-installable template regardless; hiding the button keeps the page
|
||||
from offering an action that would be rejected. */}}
|
||||
<div class="app-info-card" style="margin-top:1rem">
|
||||
<div class="app-section" style="margin-top:1rem">
|
||||
{{if canInstall .Meta}}
|
||||
<a href="/apps/{{.Meta.Slug}}/install" class="btn btn-primary" data-install-cta="1"
|
||||
onclick="return checkBeforeDeploy(event, '{{.Stack.Name}}')">{{T "app_info.telepites"}}</a>
|
||||
@@ -37,9 +38,9 @@
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
{{if .AppInfo.UseCases}}
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>{{T "app_info.mire_hasznalhato"}}</h3>
|
||||
<ul class="app-info-list">
|
||||
{{range .AppInfo.UseCases}}<li>{{.}}</li>{{end}}
|
||||
@@ -48,7 +49,7 @@
|
||||
{{end}}
|
||||
|
||||
{{if .AppInfo.FirstSteps}}
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>{{T "app_info.elso_lepesek"}}</h3>
|
||||
<ol class="app-info-list">
|
||||
{{range .AppInfo.FirstSteps}}<li>{{.}}</li>{{end}}
|
||||
@@ -57,7 +58,7 @@
|
||||
{{end}}
|
||||
|
||||
{{if .AppInfo.Prerequisites}}
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>{{T "app_info.elofeltetelek"}}</h3>
|
||||
<ul class="app-info-list">
|
||||
{{range .AppInfo.Prerequisites}}<li>{{.}}</li>{{end}}
|
||||
@@ -70,7 +71,7 @@
|
||||
{{if .AppInfo.Guide.Rendered}}
|
||||
<div class="app-guide" data-guide="1" data-guide-checked="{{.AppInfo.Guide.CheckedVersion}}">
|
||||
{{- range .AppInfo.Guide.Sections}}
|
||||
<div class="app-info-card" style="margin-top:1rem" data-guide-section="1">
|
||||
<div class="app-section" style="margin-top:1rem" data-guide-section="1">
|
||||
<h3>{{.Title}}</h3>
|
||||
{{if .Intro}}<p>{{.Intro}}</p>{{end}}
|
||||
{{if .Steps}}
|
||||
@@ -81,7 +82,7 @@
|
||||
</div>
|
||||
{{- end}}
|
||||
{{- if .AppInfo.Guide.FAQ}}
|
||||
<div class="app-info-card" style="margin-top:1rem" data-guide-faq="1">
|
||||
<div class="app-section" style="margin-top:1rem" data-guide-faq="1">
|
||||
<h3>{{T "app_page.faq"}}</h3>
|
||||
<dl class="app-faq">
|
||||
{{- range .AppInfo.Guide.FAQ}}
|
||||
@@ -96,14 +97,15 @@
|
||||
<p class="form-hint" style="margin-top:1rem" data-guide-missing="1">{{T "app_page.guide_missing"}}</p>
|
||||
{{end}}
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
{{if .AppInfo.DocsURL}}
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>{{T "app_info.dokumentacio"}}</h3>
|
||||
<p><a href="{{.AppInfo.DocsURL}}" target="_blank" class="app-info-link">{{T "app_info.hivatalos_dokumentacio"}}</a></p>
|
||||
</div>
|
||||
{{end}}</div>
|
||||
|
||||
{{template "app_press_script" .}}
|
||||
</div>{{/* .app-page */}}
|
||||
{{template "layout_end" .}}
|
||||
{{end}}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{{define "app_logs"}}
|
||||
{{template "layout_start" .}}
|
||||
<div class="app-page app-page-wide">
|
||||
{{template "app_shell_start" .}}
|
||||
|
||||
{{/* „NAPLO" — today's logs page inside the shell. Its live poller runs ONLY on this tab, which is
|
||||
@@ -73,5 +74,6 @@
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</div>{{/* .app-page */}}
|
||||
{{template "layout_end" .}}
|
||||
{{end}}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{{define "app_settings"}}
|
||||
{{template "layout_start" .}}
|
||||
<div class="app-page">
|
||||
{{template "app_shell_start" .}}
|
||||
|
||||
{{/* „BEALLITASOK" — the tab an installed app opens on.
|
||||
@@ -20,10 +21,33 @@
|
||||
{{if .FlashSuccess}}<div class="flash flash-success">{{.FlashSuccess}}</div>{{end}}
|
||||
{{if .FlashError}}<div class="flash flash-error">{{.FlashError}}</div>{{end}}
|
||||
|
||||
{{/* 1. MUKODES. Stop asks first — it takes the app away from everyone in the house, and the
|
||||
{{/* 1. WHAT THE APP IS WAITING FOR — the generic after-start card (Part 4, D2 = A).
|
||||
FIRST on the tab (v0.316.0): a household opening a Plex that wants its claim code should
|
||||
meet the code box, not a Restart button. It is the page's one BLUE callout — a request,
|
||||
never a fault, so never amber.
|
||||
The catalog says a value is asked after the The catalog says a value is asked after the
|
||||
app starts and supplies its label; the ACTION is Go code in after_start.go, keyed by slug
|
||||
and env var. A field with no registered action renders nothing and POSTs 404 — the catalog
|
||||
cannot make the box run anything. */}}
|
||||
{{- range .AfterStartFields}}
|
||||
<div class="app-section app-callout app-callout-ask" data-afterstart="{{.EnvVar}}">
|
||||
<h3>{{T "app_page.after_start_title"}}</h3>
|
||||
{{if .Description}}<p>{{.Description}}</p>{{end}}
|
||||
<div class="input-with-button">
|
||||
<input type="text" id="after-start-{{.EnvVar}}" class="form-control"
|
||||
placeholder="{{.Placeholder}}" autocomplete="off" spellcheck="false"
|
||||
aria-label="{{.Label}}">
|
||||
<button type="button" class="btn btn-sm btn-primary"
|
||||
onclick="appAfterStart(this, '{{$.Meta.Slug}}', '{{.EnvVar}}')">{{T "app_page.after_start_btn"}}</button>
|
||||
</div>
|
||||
<span class="form-hint app-press-err" style="display:none;color:var(--red)"></span>
|
||||
</div>
|
||||
{{- end}}
|
||||
|
||||
{{/* 2. MUKODES. Stop asks first — it takes the app away from everyone in the house, and the
|
||||
protected stacks refuse it server-side regardless (traefik, cloudflared, the controller
|
||||
itself and always samba). */}}
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>{{T "app_page.mukodes"}}</h3>
|
||||
<p class="form-hint" data-run-state="{{.Stack.State}}">{{stateLabel .Stack.State}}</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -36,15 +60,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{/* 2. WHAT THE APP STILL WANTS FROM THE HOUSEHOLD. */}}
|
||||
{{/* 3. THE REST OF WHAT THE APP WANTS FROM THE HOUSEHOLD. */}}
|
||||
{{- if .InstallHoldClosed}}
|
||||
<div class="app-info-card" style="margin-top:1rem" id="install-hold-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="install-hold-card">
|
||||
<h3>{{T "app_info.install_hold_title"}}</h3>
|
||||
<p>{{T "app_info.install_hold_closed"}}</p>
|
||||
</div>
|
||||
{{- end}}
|
||||
{{- if .SetupGateClosed}}
|
||||
<div class="app-info-card" style="margin-top:1rem" id="setup-gate-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="setup-gate-card">
|
||||
<h3>{{T "app_info.setup_gate_title"}}</h3>
|
||||
<p>{{T "app_info.setup_gate_closed"}}</p>{{- if .SignupNative}}
|
||||
<p class="form-hint" data-restarts-once="true">{{T "app_info.restarts_once"}}</p>{{- end}}
|
||||
@@ -59,26 +83,8 @@
|
||||
</div>
|
||||
{{- end}}
|
||||
|
||||
{{/* The generic after-start card (Part 4, D2 = A). The catalog says a value is asked after the
|
||||
app starts and supplies its label; the ACTION is Go code in after_start.go, keyed by slug and
|
||||
env var. A field with no registered action renders nothing and POSTs 404 — the catalog
|
||||
cannot make the box run anything. */}}
|
||||
{{- range .AfterStartFields}}
|
||||
<div class="app-info-card after-start-card" data-afterstart="{{.EnvVar}}">
|
||||
<h3>{{T "app_page.after_start_title"}}</h3>
|
||||
{{if .Description}}<p>{{.Description}}</p>{{end}}
|
||||
<div class="input-with-button">
|
||||
<input type="text" id="after-start-{{.EnvVar}}" class="form-control"
|
||||
placeholder="{{.Placeholder}}" autocomplete="off" spellcheck="false"
|
||||
aria-label="{{.Label}}">
|
||||
<button type="button" class="btn btn-sm btn-primary"
|
||||
onclick="appAfterStart(this, '{{$.Meta.Slug}}', '{{.EnvVar}}')">{{T "app_page.after_start_btn"}}</button>
|
||||
</div>
|
||||
<span class="form-hint app-press-err" style="display:none;color:var(--red)"></span>
|
||||
</div>
|
||||
{{- end}}
|
||||
{{- if .CloseSignupOffered}}
|
||||
<div class="app-info-card" style="margin-top:1rem" id="close-signup-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="close-signup-card">
|
||||
<h3>{{T "app_info.signup_title"}}</h3>
|
||||
<p>{{T "app_info.close_signup_text"}}</p>{{- if .SignupNative}}
|
||||
<p class="form-hint" data-restarts-once="true">{{T "app_info.restarts_once"}}</p>{{- end}}
|
||||
@@ -87,7 +93,7 @@
|
||||
</div>
|
||||
{{- end}}
|
||||
{{- if or .SignupClosed .SignupOpenUntil}}
|
||||
<div class="app-info-card" style="margin-top:1rem" id="signup-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="signup-card">
|
||||
<h3>{{T "app_info.signup_title"}}</h3>
|
||||
{{- if .SignupOpenUntil}}
|
||||
<p>{{T "app_info.signup_open_until"}} {{.SignupOpenUntil}}</p>
|
||||
@@ -114,9 +120,9 @@
|
||||
{{- end}}
|
||||
|
||||
{{/* The logins, each already its own guarded card on the details page. */}}
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
{{if .InitialCreds}}
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>{{T "app_info.kezdeti_belepesi_adatok"}}</h3>
|
||||
<table class="initcred-table">
|
||||
{{if .InitialCreds.Username}}
|
||||
@@ -151,7 +157,7 @@
|
||||
{{end}}
|
||||
|
||||
{{if and .AppInfo.DefaultCreds (not .DefaultLoginReplaced)}}
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>{{T "app_info.alapertelmezett_belepes"}}</h3>
|
||||
<p class="app-info-creds">{{.AppInfo.DefaultCreds}}</p>
|
||||
{{if .KnownLoginLine}}<p class="app-info-creds-warn" id="known-login-line">{{.KnownLoginLine}}</p>{{else}}<p class="app-info-creds-warn">{{T "app_info.az_elso_bejelentkezes_utan_azonnal_2"}}</p>{{end}}
|
||||
@@ -162,10 +168,10 @@
|
||||
</div>
|
||||
{{end}}</div>
|
||||
|
||||
{{/* 3. THE SETTINGS. Everything below came from the install page's deployed mode, unchanged. */}}
|
||||
<div class="alert alert-info">
|
||||
{{T "deploy.ez_az_alkalmazas_mar_telepitve"}}
|
||||
</div>
|
||||
{{/* 3. THE SETTINGS. v0.316.0: the „this app is already installed, the settings below are
|
||||
read-only" BANNER is gone — it was a box saying what a one-line hint says, on a tab the
|
||||
household reached by pressing „Beallitasok" on an installed app. The hint lives with the
|
||||
fields it is about, at the bottom of this tab. */}}
|
||||
{{if .StorageInfo}}
|
||||
<div class="deploy-storage-info">
|
||||
<h4>{{T "deploy.adattarolas"}}</h4>
|
||||
@@ -536,9 +542,19 @@
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
<div class="app-section">
|
||||
<h3>{{T "app_page.address_and_keys"}}</h3>
|
||||
{{if .EffectiveSubdomain}}
|
||||
<div class="app-field-row">
|
||||
<div class="app-field-label">{{T "app_page.address"}}</div>
|
||||
<div class="app-field-value" data-app-address-row="1">{{.EffectiveSubdomain}}.{{.Domain}}</div>
|
||||
</div>
|
||||
{{end}}
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
{{template "app_deploy_fields" .}}
|
||||
</form>
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">{{T "app_page.installed_readonly"}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{if .InitialCreds}}
|
||||
@@ -711,5 +727,6 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>{{/* .app-page */}}
|
||||
{{template "layout_end" .}}
|
||||
{{end}}
|
||||
|
||||
@@ -11,36 +11,45 @@
|
||||
are now the first card of the „Beallitasok" tab, where a state change belongs. */}}
|
||||
|
||||
{{define "app_shell_start"}}
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">{{T "app_info.alkalmazasok"}}</a>
|
||||
<h2>{{.Meta.DisplayName}}</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
{{if .Deployed}}
|
||||
<span class="stack-state-badge state-{{stateColor .Stack.State}}">{{stateLabel .Stack.State}}</span>
|
||||
{{if .Stack.Orphaned}}<span class="badge badge-orphaned">{{T "common.elavult"}}</span>{{end}}
|
||||
{{template "meta_badge" (lifecycleBadge .Meta)}}
|
||||
{{template "meta_badge" (updateBadge .Stack)}}{{if and (gt .Stack.LadderStepsLeft 0) (not .Stack.HoldReason)}}<small class="text-muted" data-ladder-steps="{{.Stack.LadderStepsLeft}}">{{T "app_info.ladder_steps_left"}} {{.Stack.LadderStepsLeft}}</small>{{end}}
|
||||
{{if and .AppOperational .EffectiveSubdomain}}<a href="https://{{.EffectiveSubdomain}}.{{.Domain}}{{.Meta.OpenPath}}" target="_blank" class="btn btn-sm btn-primary" data-app-open="1">{{T "app_info.megnyitas"}}</a>{{end}}
|
||||
{{if .Stack.Orphaned}}<button class="btn btn-sm btn-danger" onclick="deleteOrphanStack('{{.Stack.Name}}')">{{T "common.torles"}}</button>{{end}}
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">{{T "app_info.alkalmazasok"}}</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="{{logoURL .Meta.Slug}}"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="{{logoURL .Meta.Slug}}"
|
||||
alt="{{.Meta.DisplayName}}" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='{{logoPNGURL .Meta.Slug}}';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
{{if .AppInfo.Tagline}}<p class="app-info-tagline">{{.AppInfo.Tagline}}</p>{{else}}<p class="app-info-tagline">{{.Meta.Description}}</p>{{end}}
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~{{.Meta.Resources.MemRequest}} RAM</span>
|
||||
<span class="meta-badge">{{.Meta.Category}}</span>
|
||||
{{if .Meta.Resources.NeedsHDD}}<span class="meta-badge meta-badge-warn">{{T "common.hdd_szukseges"}}</span>{{end}}
|
||||
{{if .Meta.Resources.HungarianUI}}<span class="meta-badge meta-badge-ok">{{T "common.magyar_felulet"}}</span>{{end}}
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">{{.Meta.DisplayName}}</h2>
|
||||
{{if .AppInfo.Tagline}}<p class="app-hero-tagline">{{.AppInfo.Tagline}}</p>{{else if .Meta.Description}}<p class="app-hero-tagline">{{.Meta.Description}}</p>{{end}}
|
||||
<div class="app-chips">
|
||||
{{if .Deployed}}
|
||||
<span class="app-chip" data-state-chip="{{.Stack.State}}">● {{stateLabel .Stack.State}}</span>
|
||||
{{if .Stack.Orphaned}}<span class="app-chip">{{T "common.elavult"}}</span>{{end}}
|
||||
{{template "meta_badge" (lifecycleBadge .Meta)}}
|
||||
{{template "meta_badge" (updateBadge .Stack)}}{{if and (gt .Stack.LadderStepsLeft 0) (not .Stack.HoldReason)}}<span class="app-meta" data-ladder-steps="{{.Stack.LadderStepsLeft}}">{{T "app_info.ladder_steps_left"}} {{.Stack.LadderStepsLeft}}</span>{{end}}
|
||||
{{/* v0.316.0: the auto-update SUCCESS line is meta text here, not a banner below.
|
||||
A success that asked nothing of the household is a date, not news; the banners
|
||||
under the hero stay for the things that DO need them (a failed update, a hold,
|
||||
lost files, a missing drive) — R-571's placement rule is untouched. */}}
|
||||
{{if .EffectiveSubdomain}}<span class="app-meta" data-app-address="1">{{.EffectiveSubdomain}}.{{.Domain}}</span>{{end}}
|
||||
{{if .AutoUpdateLine}}<span class="app-meta" data-auto-update="done">{{.AutoUpdateLine}}</span>{{end}}
|
||||
{{else}}
|
||||
<span class="app-chip">~{{.Meta.Resources.MemRequest}} RAM</span>
|
||||
{{if .Meta.Category}}<span class="app-chip">{{.Meta.Category}}</span>{{end}}
|
||||
{{if .Meta.Resources.NeedsHDD}}<span class="app-chip">{{T "common.hdd_szukseges"}}</span>{{end}}
|
||||
{{if .Meta.Resources.HungarianUI}}<span class="app-chip">{{T "common.magyar_felulet"}}</span>{{end}}
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
{{if and .Deployed .AppOperational .EffectiveSubdomain}}
|
||||
<div class="app-hero-actions">
|
||||
<a href="https://{{.EffectiveSubdomain}}.{{.Domain}}{{.Meta.OpenPath}}" target="_blank" class="btn btn-primary" data-app-open="1">{{T "app_info.megnyitas"}}</a>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if and .Deployed .Stack.Orphaned}}
|
||||
<div class="app-hero-actions">
|
||||
<button class="btn btn-sm btn-danger" onclick="deleteOrphanStack('{{.Stack.Name}}')">{{T "common.torles"}}</button>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
{{template "app_banners" .}}
|
||||
@@ -77,8 +86,6 @@
|
||||
<div class="alert alert-warning" style="margin-top:1rem" data-update-error="true">{{updateErrorText .Stack}}</div>
|
||||
{{else if .UpdateUndoneLine}}
|
||||
<div class="alert alert-info" style="margin-top:1rem" data-update-undone="true">{{.UpdateUndoneLine}}</div>
|
||||
{{else if .AutoUpdateLine}}
|
||||
<div class="alert alert-info" style="margin-top:1rem" data-auto-update="done">{{.AutoUpdateLine}}</div>
|
||||
{{end}}{{if and .Stack.HealthProbe .Stack.HealthProbe.NotChecked}}{{/* R-772: the declared health check could not run — said, never shown as healthy. */}}
|
||||
<p class="form-hint" style="margin-top:0.5rem" data-health-not-checked="true">{{T "health.no_probe_container"}}</p>{{end}}
|
||||
{{if .MissingStorageLabel}}
|
||||
|
||||
@@ -9,35 +9,26 @@
|
||||
Vissza and Megsem go to the APP, not to the list: the household got here from the app's page
|
||||
and that is where cancelling belongs. */}}
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
<a href="/apps/{{.Meta.Slug}}" class="btn btn-sm btn-outline" data-install-back="1">{{T "deploy.vissza"}}</a>
|
||||
<h2>{{.Meta.DisplayName}} — {{T "deploy.telepites"}}</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
<a href="/apps/{{.Meta.Slug}}" class="btn btn-sm btn-outline"><svg class="ico ico-sm"><use href="#i-info"/></svg> {{T "deploy.reszletek"}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="/apps/{{.Meta.Slug}}" class="app-back" data-install-back="1">{{T "deploy.vissza"}}</a>
|
||||
|
||||
|
||||
<div class="deploy-container">
|
||||
<div class="app-page deploy-container">
|
||||
{{if .FlashSuccess}}<div class="flash flash-success">{{.FlashSuccess}}</div>{{end}}
|
||||
{{if .FlashError}}<div class="flash flash-error">{{.FlashError}}</div>{{end}}
|
||||
{{- if .KnownLoginLine}}<div class="flash flash-error" id="known-login-line">{{.KnownLoginLine}}</div>{{end}}
|
||||
<div class="deploy-info">
|
||||
<img class="deploy-logo" src="{{.LogoURL}}" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
{{/* v0.316.0: the same hero as the app page, so pressing „Telepites" does not land the
|
||||
household on a page that looks like a different product. */}}
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="{{.LogoURL}}" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='{{.LogoPNGURL}}';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div>
|
||||
<h3>{{.Meta.DisplayName}}</h3>
|
||||
{{if .Meta.Description}}<p>{{.Meta.Description}}</p>{{end}}
|
||||
<div class="metarows">
|
||||
{{if .Meta.Resources.MemRequest}}<span class="metarow"><svg class="ico"><use href="#i-memory-stick"/></svg><span class="mono">~{{.Meta.Resources.MemRequest}}</span></span>{{end}}
|
||||
{{if .Meta.Resources.NeedsHDD}}<span class="metarow"><svg class="ico"><use href="#i-hard-drive"/></svg>{{T "common.hdd_szukseges"}}</span>{{end}}
|
||||
{{if .Meta.Resources.HungarianUI}}<span class="metarow"><svg class="ico"><use href="#i-check"/></svg>{{T "common.magyar_felulet"}}</span>{{end}}
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">{{.Meta.DisplayName}} — {{T "deploy.telepites"}}</h2>
|
||||
{{if .Meta.Description}}<p class="app-hero-tagline">{{.Meta.Description}}</p>{{end}}
|
||||
<div class="app-chips">
|
||||
{{if .Meta.Resources.MemRequest}}<span class="app-chip">~{{.Meta.Resources.MemRequest}} RAM</span>{{end}}
|
||||
{{if .Meta.Resources.NeedsHDD}}<span class="app-chip">{{T "common.hdd_szukseges"}}</span>{{end}}
|
||||
{{if .Meta.Resources.HungarianUI}}<span class="app-chip">{{T "common.magyar_felulet"}}</span>{{end}}
|
||||
<a href="/apps/{{.Meta.Slug}}" class="app-meta" style="text-decoration:none">{{T "deploy.reszletes_leiras_kepernyokepek"}}</a>
|
||||
</div>
|
||||
<a href="/apps/{{.Meta.Slug}}" class="btn btn-sm btn-outline" style="margin-top:0.5rem">
|
||||
{{T "deploy.reszletes_leiras_kepernyokepek"}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -389,7 +389,7 @@ h3 {
|
||||
border: 1px solid var(--line);
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
.stack-list .app-row {
|
||||
.stack-list .app-field-row {
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-top: 1px solid var(--line-soft);
|
||||
@@ -1300,50 +1300,138 @@ a.stat-card:hover {
|
||||
.login-footer a:hover { color: var(--blue); }
|
||||
|
||||
/* --- App Info Page --- */
|
||||
/* THE APP PAGE'S TAB BAR (v0.315.0) — links, not panels.
|
||||
Design system v2: 2px radius, hairline borders, no shadow, and blue reserved for the tab the
|
||||
household is ON. An inactive tab is --text-2: a tab bar is navigation, not a deviation. */
|
||||
/* ── THE APP PAGE (v0.316.0) — one column, hairlines, boxes only where they mean something ───────
|
||||
Operator-approved mockup, 2026-10-15. The rules, and why each one:
|
||||
ONE COLUMN of ONE WIDTH. Boxes of different widths read as a page assembled by accident.
|
||||
SECTIONS ARE SEPARATED BY HAIRLINES, not drawn as cards. A card says "this is a thing you act
|
||||
on"; most of an app page is a thing you READ, so a card there is a promise it cannot keep.
|
||||
A BOX MEANS SOMETHING. Exactly two exist: blue when the app is waiting for the household, amber
|
||||
when something is risky. The exception-colour principle, applied to shape as well as colour.
|
||||
Tokens only — no raw hexes, 2px radius, no shadows. */
|
||||
|
||||
.app-page {
|
||||
max-width: 820px;
|
||||
padding: 32px 48px 64px;
|
||||
}
|
||||
/* The log is the one tab whose content is genuinely wide: log lines are long, and wrapping them at
|
||||
820px makes them unreadable. */
|
||||
.app-page-wide { max-width: none; }
|
||||
|
||||
.app-back {
|
||||
display: inline-block;
|
||||
font-size: 13px;
|
||||
color: var(--text-2);
|
||||
text-decoration: none;
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.app-back:hover { color: var(--text-1); }
|
||||
|
||||
/* HERO — no box, no border. The app's identity is a heading, not a card. */
|
||||
.app-hero {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 20px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.app-hero-logo {
|
||||
width: 64px; height: 64px;
|
||||
min-width: 64px;
|
||||
border: 1px solid var(--line);
|
||||
background: var(--bg-1);
|
||||
border-radius: var(--radius);
|
||||
object-fit: contain;
|
||||
padding: 8px;
|
||||
}
|
||||
.app-hero-text { flex: 1 1 320px; min-width: 0; }
|
||||
.app-hero-name { font-size: 26px; font-weight: 700; color: var(--text-1); margin: 0; line-height: 1.2; }
|
||||
.app-hero-tagline { font-size: 15px; color: var(--text-2); margin: 4px 0 10px; }
|
||||
.app-hero-actions { margin-left: auto; }
|
||||
|
||||
.app-chips { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
||||
.app-chip {
|
||||
font-size: 12px; font-weight: 600;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: var(--radius);
|
||||
padding: 3px 8px;
|
||||
color: var(--text-1);
|
||||
white-space: nowrap;
|
||||
}
|
||||
/* The meta line carries what used to be a full-width green banner saying the automatic update
|
||||
worked. A success that needed no decision is not news; it is a date. */
|
||||
.app-meta { font-size: 12px; color: var(--text-3); }
|
||||
|
||||
/* TABS — links with a line under the open one. No pills, no fills. */
|
||||
.app-tabs {
|
||||
display: flex;
|
||||
gap: .25rem;
|
||||
gap: 28px;
|
||||
flex-wrap: wrap;
|
||||
margin: 1.25rem 0 1.5rem;
|
||||
margin: 28px 0 8px;
|
||||
border-bottom: 1px solid var(--line);
|
||||
}
|
||||
.app-tab {
|
||||
padding: .55rem 1rem;
|
||||
font-size: 15px; font-weight: 600;
|
||||
padding: 12px 0;
|
||||
color: var(--text-2);
|
||||
text-decoration: none;
|
||||
font-size: .9rem;
|
||||
border: 1px solid transparent;
|
||||
border-bottom: none;
|
||||
border-radius: var(--radius) var(--radius) 0 0;
|
||||
/* The bar's own 1px line is what the active tab sits on, so each tab reaches it. */
|
||||
border-bottom: 2px solid transparent;
|
||||
margin-bottom: -1px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.app-tab:hover { color: var(--text-1); background: var(--bg-1); }
|
||||
.app-tab-active {
|
||||
color: var(--blue-bright);
|
||||
background: var(--bg-1);
|
||||
border-color: var(--line);
|
||||
border-bottom: 1px solid var(--bg-1);
|
||||
}
|
||||
.app-tab-active:hover { color: var(--blue-bright); }
|
||||
@media (max-width: 640px) {
|
||||
.app-tabs { gap: 0; }
|
||||
.app-tab { padding: .55rem .6rem; font-size: .85rem; }
|
||||
}
|
||||
.app-tab:hover { color: var(--text-1); }
|
||||
.app-tab-active { color: var(--text-1); border-bottom-color: var(--blue-bright); }
|
||||
|
||||
/* „Még egy lépés" — a value the app wants once it is running (Part 4). It is a request, not a
|
||||
fault, so it stays neutral: the blue hairline marks it as the thing to do next. */
|
||||
.after-start-card { border-left: 2px solid var(--blue); }
|
||||
/* SECTIONS — a hairline between, nothing around. */
|
||||
.app-section {
|
||||
padding: 28px 0;
|
||||
border-bottom: 1px solid var(--line-soft);
|
||||
background: none;
|
||||
border-left: 0; border-right: 0; border-top: 0;
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.app-section:last-child { border-bottom: 0; }
|
||||
.app-section > h3, .app-section > h4 {
|
||||
font-size: 17px; font-weight: 700; color: var(--text-1); margin: 0 0 6px;
|
||||
}
|
||||
.app-section > p { font-size: 14px; color: var(--text-2); line-height: 1.55; margin: 0 0 16px; }
|
||||
|
||||
/* ROWS — label and value, one grid so every value on the page starts at the same x. */
|
||||
.app-field-row {
|
||||
display: grid;
|
||||
grid-template-columns: 200px minmax(0, 1fr);
|
||||
gap: 16px;
|
||||
padding: 10px 0;
|
||||
align-items: baseline;
|
||||
}
|
||||
.app-field-label { font-size: 14px; color: var(--text-2); }
|
||||
.app-field-value { font-size: 14px; color: var(--text-1); min-width: 0; }
|
||||
.app-field-hint { font-size: 12px; color: var(--text-3); margin: 6px 0 0; }
|
||||
|
||||
/* CALLOUTS — the only boxes on the page. */
|
||||
.app-callout {
|
||||
padding: 14px 16px;
|
||||
border-radius: var(--radius);
|
||||
font-size: 14px;
|
||||
border: 1px solid var(--line);
|
||||
}
|
||||
.app-callout > h3, .app-callout > h4 { font-size: 15px; font-weight: 700; margin: 0 0 6px; color: var(--text-1); }
|
||||
/* „The app is waiting for you" — a request, never a fault, so blue and never amber. */
|
||||
.app-callout-ask { border-color: var(--blue); background: var(--blue-dim); }
|
||||
/* „Something here is risky" — the exception colour, and only on a deviation. */
|
||||
.app-callout-warn { border-color: var(--warn); background: var(--warn-dim); }
|
||||
|
||||
/* The guide's FAQ. */
|
||||
.app-faq { margin: .5rem 0 0; }
|
||||
.app-faq dt { color: var(--text-1); font-weight: 600; margin-top: .85rem; }
|
||||
.app-faq dd { color: var(--text-2); margin: .25rem 0 0; padding: 0; }
|
||||
|
||||
@media (max-width: 720px) {
|
||||
.app-page { padding: 20px 16px 48px; }
|
||||
.app-field-row { grid-template-columns: 1fr; gap: 4px; }
|
||||
.app-hero-actions { margin-left: 0; flex-basis: 100%; }
|
||||
.app-tabs { gap: 18px; }
|
||||
.app-tab { font-size: 14px; }
|
||||
}
|
||||
|
||||
.app-info-hero {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -2759,7 +2847,7 @@ a.stat-card:hover {
|
||||
.no-js .nav-burger { display: none; }
|
||||
.content { margin-left: 0; padding: 1rem; }
|
||||
body { flex-direction: column; }
|
||||
.app-row { flex-wrap: wrap; }
|
||||
.app-field-row { flex-wrap: wrap; }
|
||||
.app-row-actions { width: 100%; justify-content: flex-end; }
|
||||
.stack-grid { grid-template-columns: 1fr; }
|
||||
/* R-907: a page header (title, domain chip, buttons) wraps instead of running off the screen; on the
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>PrivateBin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>PrivateBin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="PrivateBin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">PrivateBin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem">
|
||||
<div class="app-section" style="margin-top:1rem">
|
||||
<h3>Hova tegyem a fájlokat?</h3>
|
||||
<p class="form-hint">Ezeket a mappákat a Fájlkezelőben éred el. Előfordulhat, hogy először be kell jelentkezned a Fájlkezelőbe.</p>
|
||||
<div class="datapath-list">
|
||||
@@ -247,7 +241,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem">
|
||||
<div class="app-section" style="margin-top:1rem">
|
||||
<h3>Áthelyezés másik tárhelyre</h3>
|
||||
<p class="form-hint">Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át. Az alkalmazás az áthelyezés alatt rövid időre leáll, az adatok pedig csak az ellenőrzés és a sikeres újraindítás után törlődnek a régi helyről.</p>
|
||||
<div style="display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -309,8 +303,9 @@ function appMigrate(btn,app,label){
|
||||
</div>
|
||||
|
||||
|
||||
<h3 style="margin-top:1.5rem">2. mentés beállítása — PrivateBin</h3>
|
||||
<div class="monitor-card">
|
||||
|
||||
<div class="app-section">
|
||||
<h3>2. mentés beállítása — PrivateBin</h3>
|
||||
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
@@ -368,9 +363,9 @@ function appMigrate(btn,app,label){
|
||||
|
||||
|
||||
|
||||
<h3 style="margin-top:2rem">PrivateBin — Exportálás</h3>
|
||||
<div class="card" style="max-width:700px">
|
||||
<h3>Mentés helye</h3>
|
||||
<div class="app-section">
|
||||
<h3>PrivateBin — Exportálás</h3>
|
||||
<h4 style="font-size:14px;font-weight:600;margin:12px 0 6px">Mentés helye</h4>
|
||||
<select id="destDrive" onchange="loadEstimate()" style="width:100%;padding:.5rem;margin-bottom:1rem">
|
||||
<option value="">Válassz tárolót...</option>
|
||||
|
||||
@@ -707,6 +702,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin exportálása — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -247,9 +241,9 @@
|
||||
|
||||
|
||||
|
||||
<h3 style="margin-top:2rem">Private Bin — Exportálás</h3>
|
||||
<div class="card" style="max-width:700px">
|
||||
<h3>Mentés helye</h3>
|
||||
<div class="app-section">
|
||||
<h3>Private Bin — Exportálás</h3>
|
||||
<h4 style="font-size:14px;font-weight:600;margin:12px 0 6px">Mentés helye</h4>
|
||||
<select id="destDrive" onchange="loadEstimate()" style="width:100%;padding:.5rem;margin-bottom:1rem">
|
||||
<option value="">Válassz tárolót...</option>
|
||||
|
||||
@@ -588,6 +582,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -245,8 +239,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<h3 style="margin-top:1.5rem">2. mentés beállítása — Private Bin</h3>
|
||||
<div class="monitor-card">
|
||||
|
||||
<div class="app-section">
|
||||
<h3>2. mentés beállítása — Private Bin</h3>
|
||||
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
@@ -256,7 +251,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem" data-system-backup="unknown">
|
||||
<div class="app-callout app-callout-warn" style="margin-top:1rem" data-system-backup="unknown">
|
||||
Ennek az alkalmazásnak az adatai a belső rendszerlemezen vannak, és a teljes rendszermentés része.
|
||||
Hogy a rendszermentés most hová készül, azt nem tudtuk lekérdezni — a Mentések oldalon láthatod.
|
||||
</div>
|
||||
@@ -300,6 +295,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+25
-29
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -245,8 +239,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<h3 style="margin-top:1.5rem">2. mentés beállítása — Private Bin</h3>
|
||||
<div class="monitor-card">
|
||||
|
||||
<div class="app-section">
|
||||
<h3>2. mentés beállítása — Private Bin</h3>
|
||||
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
@@ -256,7 +251,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="monitoring-banner monitoring-banner-red" style="margin-top:1rem" data-system-backup="absent">
|
||||
<div class="app-callout app-callout-warn" style="margin-top:1rem" data-system-backup="absent">
|
||||
Ennek az alkalmazásnak az adatai a belső rendszerlemezen vannak. A teljes rendszermentés meghajtója
|
||||
<strong>most nem érhető el</strong> — amíg vissza nem csatlakoztatod, erről az alkalmazásról sem készül friss rendszermentés.
|
||||
</div>
|
||||
@@ -300,6 +295,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+25
-29
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -245,8 +239,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<h3 style="margin-top:1.5rem">2. mentés beállítása — Private Bin</h3>
|
||||
<div class="monitor-card">
|
||||
|
||||
<div class="app-section">
|
||||
<h3>2. mentés beállítása — Private Bin</h3>
|
||||
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
@@ -256,7 +251,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem" data-system-backup="protected">
|
||||
<div class="app-callout" style="margin-top:1rem" data-system-backup="protected">
|
||||
Ennek az alkalmazásnak az adatai a belső rendszerlemezen vannak, amelyek
|
||||
<strong>szerepelnek a teljes rendszermentésben</strong>, és az egy külön meghajtóra készül. A 2. (off-drive) másolat
|
||||
kiegészítő, és elsősorban a külső adatmeghajtón tárolt alkalmazásokhoz készül — ehhez az
|
||||
@@ -302,6 +297,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+25
-29
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -245,8 +239,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<h3 style="margin-top:1.5rem">2. mentés beállítása — Private Bin</h3>
|
||||
<div class="monitor-card">
|
||||
|
||||
<div class="app-section">
|
||||
<h3>2. mentés beállítása — Private Bin</h3>
|
||||
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
@@ -256,7 +251,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem" data-system-backup="same_disk">
|
||||
<div class="app-callout app-callout-warn" style="margin-top:1rem" data-system-backup="same_disk">
|
||||
Ennek az alkalmazásnak az adatai a belső rendszerlemezen vannak. A teljes rendszermentés
|
||||
<strong>jelenleg ugyanerre a lemezre készül</strong> — így hibás fájlok ellen véd, lemezhiba ellen nem.
|
||||
Ha csatlakoztatsz egy második meghajtót, és a Mentések oldalon kijelölöd a rendszermentés helyéül, ez az alkalmazás is védett lesz.
|
||||
@@ -301,6 +296,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+24
-28
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -245,8 +239,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<h3 style="margin-top:1.5rem">2. mentés beállítása — Immich Photos</h3>
|
||||
<div class="monitor-card">
|
||||
|
||||
<div class="app-section">
|
||||
<h3>2. mentés beállítása — Immich Photos</h3>
|
||||
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
@@ -337,6 +332,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -245,8 +239,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<h3 style="margin-top:1.5rem">2. mentés beállítása — Immich Photos</h3>
|
||||
<div class="monitor-card">
|
||||
|
||||
<div class="app-section">
|
||||
<h3>2. mentés beállítása — Immich Photos</h3>
|
||||
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
@@ -337,6 +332,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -245,8 +239,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<h3 style="margin-top:1.5rem">2. mentés beállítása — Immich Photos</h3>
|
||||
<div class="monitor-card">
|
||||
|
||||
<div class="app-section">
|
||||
<h3>2. mentés beállítása — Immich Photos</h3>
|
||||
|
||||
<p style="color:var(--text-3);font-size:.9rem;margin-top:0">
|
||||
A 2. mentés egy <strong>másik fizikai meghajtóra</strong> készít másolatot az alkalmazás
|
||||
@@ -274,7 +269,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="monitoring-banner monitoring-banner-yellow" style="margin-top:1rem">
|
||||
<div class="app-callout app-callout-warn" style="margin-top:1rem">
|
||||
Jelenleg csak a belső SSD érhető el 2. célként, ezért csak az adatbázis és a konfiguráció
|
||||
másolódik. A belső rendszerlemez kicsi, ezért a nagy fájlok off-drive mentéséhez egy
|
||||
<strong>2. adatmeghajtó</strong> szükséges (hogy a rendszerlemez ne teljen meg).
|
||||
@@ -340,6 +335,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>PrivateBin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,30 +171,28 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>PrivateBin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="PrivateBin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Titkosított jegyzetek.</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~64M RAM</span>
|
||||
<span class="meta-badge">Hasznos eszközök</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">PrivateBin</h2>
|
||||
<p class="app-hero-tagline">Titkosított jegyzetek.</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip">~64M RAM</span>
|
||||
<span class="app-chip">Hasznos eszközök</span>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -221,14 +219,14 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem">
|
||||
<div class="app-section" style="margin-top:1rem">
|
||||
|
||||
<p class="form-hint" data-not-installable="1">Ez az alkalmazás most nem telepíthető.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
|
||||
@@ -241,7 +239,7 @@
|
||||
<p class="form-hint" style="margin-top:1rem" data-guide-missing="1">Ehhez az alkalmazáshoz még nem készült útmutató.</p>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
</div>
|
||||
|
||||
|
||||
@@ -275,6 +273,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>PrivateBin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>PrivateBin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="PrivateBin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Titkosított szövegmegosztás.</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">PrivateBin</h2>
|
||||
<p class="app-hero-tagline">Titkosított szövegmegosztás.</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -236,9 +230,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Mire használható?</h3>
|
||||
<ul class="app-info-list">
|
||||
<li>Jelszó átadása</li>
|
||||
@@ -247,7 +241,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Első lépések</h3>
|
||||
<ol class="app-info-list">
|
||||
<li>Nyisd meg a címet</li>
|
||||
@@ -256,7 +250,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Előfeltételek</h3>
|
||||
<ul class="app-info-list">
|
||||
<li>Semmi különös</li>
|
||||
@@ -268,7 +262,7 @@
|
||||
|
||||
|
||||
<div class="app-guide" data-guide="1" data-guide-checked="2.0.6">
|
||||
<div class="app-info-card" style="margin-top:1rem" data-guide-section="1">
|
||||
<div class="app-section" style="margin-top:1rem" data-guide-section="1">
|
||||
<h3>Első bekapcsolás</h3>
|
||||
<p>Nyisd meg a böngészőben.</p>
|
||||
|
||||
@@ -276,7 +270,7 @@
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
<div class="app-info-card" style="margin-top:1rem" data-guide-section="1">
|
||||
<div class="app-section" style="margin-top:1rem" data-guide-section="1">
|
||||
<h3>Megosztás másokkal</h3>
|
||||
|
||||
|
||||
@@ -284,7 +278,7 @@
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
<div class="app-info-card" style="margin-top:1rem" data-guide-faq="1">
|
||||
<div class="app-section" style="margin-top:1rem" data-guide-faq="1">
|
||||
<h3>Gyakori kérdések</h3>
|
||||
<dl class="app-faq">
|
||||
<dt>Hol vannak a fájlok?</dt>
|
||||
@@ -296,9 +290,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Dokumentáció</h3>
|
||||
<p><a href="https://privatebin.info" target="_blank" class="app-info-link">Hivatalos dokumentáció ↗</a></p>
|
||||
</div>
|
||||
@@ -335,6 +329,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>PrivateBin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,30 +171,28 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>PrivateBin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="PrivateBin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~64M RAM</span>
|
||||
<span class="meta-badge">Hasznos eszközök</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">PrivateBin</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip">~64M RAM</span>
|
||||
<span class="app-chip">Hasznos eszközök</span>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -219,7 +217,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem">
|
||||
<div class="app-section" style="margin-top:1rem">
|
||||
|
||||
<a href="/apps/privatebin/install" class="btn btn-primary" data-install-cta="1"
|
||||
onclick="return checkBeforeDeploy(event, 'privatebin')">Telepítés</a>
|
||||
@@ -227,7 +225,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
|
||||
@@ -240,7 +238,7 @@
|
||||
<p class="form-hint" style="margin-top:1rem" data-guide-missing="1">Ehhez az alkalmazáshoz még nem készült útmutató.</p>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
</div>
|
||||
|
||||
|
||||
@@ -274,6 +272,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Grocy — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,30 +171,28 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Grocy</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/grocy-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/grocy-logo.svg"
|
||||
alt="Grocy" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/grocy-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Házi készletnyilvántartó.</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Grocy</h2>
|
||||
<p class="app-hero-tagline">Házi készletnyilvántartó.</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip">~128M RAM</span>
|
||||
|
||||
<span class="app-chip">HDD szükséges</span>
|
||||
<span class="app-chip">Magyar felület</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -219,7 +217,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem">
|
||||
<div class="app-section" style="margin-top:1rem">
|
||||
|
||||
<a href="/apps/grocy/install" class="btn btn-primary" data-install-cta="1"
|
||||
onclick="return checkBeforeDeploy(event, 'grocy')">Telepítés</a>
|
||||
@@ -227,7 +225,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
|
||||
@@ -240,7 +238,7 @@
|
||||
<p class="form-hint" style="margin-top:1rem" data-guide-missing="1">Ehhez az alkalmazáshoz még nem készült útmutató.</p>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
</div>
|
||||
|
||||
|
||||
@@ -274,6 +272,7 @@ function appAfterStart(btn, slug, envVar) {
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+21
-26
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin naplók — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page app-page-wide">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -292,6 +286,7 @@ line two</pre>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+62
-65
@@ -8,7 +8,7 @@
|
||||
<title>Plex — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Plex</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/plex-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/plex-logo.svg"
|
||||
alt="Plex" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/plex-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Plex</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,28 +223,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
|
||||
<button class="btn btn-sm btn-warning" data-run-action="restart" onclick="stackAction(event, 'plex', 'restart')">Újraindítás</button>
|
||||
<button class="btn btn-sm btn-danger" data-run-action="stop" onclick="var b=this; felhomConfirm(b, 'Leállítod az alkalmazást? Amíg áll, a házban senki nem tudja használni.', function(){ stackAction(event, 'plex', 'stop'); })">Leállítás</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="setup-gate-card">
|
||||
<h3>Első beállítás</h3>
|
||||
<p>Most csak te éred el ezt az alkalmazást, amíg be vagy jelentkezve a vezérlőpultba. Így más nem hozhatja létre az első admin fiókot. Nyisd meg, és végezd el az első beállítást.</p>
|
||||
<p class="form-hint">Ha kész, a doboz magától észreveszi, és mindenkinek megnyitja az alkalmazást.</p>
|
||||
<button type="button" class="btn btn-sm btn-outline" onclick="appPress(this, '/apps/plex/setup-gate/open')">Kész, beállítottam</button>
|
||||
<span class="form-hint app-press-err" style="display:none;color:var(--red)"></span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-card after-start-card" data-afterstart="PLEX_CLAIM">
|
||||
<div class="app-section app-callout app-callout-ask" data-afterstart="PLEX_CLAIM">
|
||||
<h3>Még egy lépés</h3>
|
||||
<p>Illeszd be a plex.tv-n kapott kódot.</p>
|
||||
<div class="input-with-button">
|
||||
@@ -263,32 +236,55 @@
|
||||
<span class="form-hint app-press-err" style="display:none;color:var(--red)"></span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
|
||||
<button class="btn btn-sm btn-warning" data-run-action="restart" onclick="stackAction(event, 'plex', 'restart')">Újraindítás</button>
|
||||
<button class="btn btn-sm btn-danger" data-run-action="stop" onclick="var b=this; felhomConfirm(b, 'Leállítod az alkalmazást? Amíg áll, a házban senki nem tudja használni.', function(){ stackAction(event, 'plex', 'stop'); })">Leállítás</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="app-info-grid">
|
||||
|
||||
<div class="app-section" style="margin-top:1rem" id="setup-gate-card">
|
||||
<h3>Első beállítás</h3>
|
||||
<p>Most csak te éred el ezt az alkalmazást, amíg be vagy jelentkezve a vezérlőpultba. Így más nem hozhatja létre az első admin fiókot. Nyisd meg, és végezd el az első beállítást.</p>
|
||||
<p class="form-hint">Ha kész, a doboz magától észreveszi, és mindenkinek megnyitja az alkalmazást.</p>
|
||||
<button type="button" class="btn btn-sm btn-outline" onclick="appPress(this, '/apps/plex/setup-gate/open')">Kész, beállítottam</button>
|
||||
<span class="form-hint app-press-err" style="display:none;color:var(--red)"></span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -440,6 +436,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Opengist — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Opengist</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/opengist-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/opengist-logo.svg"
|
||||
alt="Opengist" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/opengist-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Opengist</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,9 +237,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="close-signup-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="close-signup-card">
|
||||
<h3>Regisztráció</h3>
|
||||
<p>Ennél az alkalmazásnál bárki regisztrálhat, aki megtalálja a címét. Zárd le a regisztrációt most — a családtagjaidat utána is fel tudod venni.</p>
|
||||
<button type="button" class="btn btn-sm btn-primary" onclick="appPress(this, '/apps/opengist/close-signup')">Regisztráció lezárása most</button>
|
||||
@@ -251,31 +245,33 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -427,6 +423,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Opengist — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Opengist</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/opengist-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/opengist-logo.svg"
|
||||
alt="Opengist" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/opengist-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Opengist</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,9 +237,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="close-signup-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="close-signup-card">
|
||||
<h3>Regisztráció</h3>
|
||||
<p>Ennél az alkalmazásnál bárki regisztrálhat, aki megtalálja a címét. Zárd le a regisztrációt most — a családtagjaidat utána is fel tudod venni.</p>
|
||||
<p class="form-hint" data-restarts-once="true">Ehhez az alkalmazás egyszer újraindul, és közben rövid ideig nem érhető el.</p>
|
||||
@@ -252,31 +246,33 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -428,6 +424,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>PrivateBin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,35 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>PrivateBin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
<span class="tag tag-error" title="A frissítés megállt: nincs friss mentés.">Megállítva — visszaállítás szükséges</span>
|
||||
<a href="https://paste.example.hu" target="_blank" class="btn btn-sm btn-primary" data-app-open="1">Megnyitás ↗</a>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="PrivateBin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Titkosított szövegmegosztás.</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~64M RAM</span>
|
||||
<span class="meta-badge">Hasznos eszközök</span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">PrivateBin</h2>
|
||||
<p class="app-hero-tagline">Titkosított szövegmegosztás.</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
<span class="tag tag-error" title="A frissítés megállt: nincs friss mentés.">Megállítva — visszaállítás szükséges</span>
|
||||
|
||||
<span class="app-meta" data-app-address="1">paste.example.hu</span>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="app-hero-actions">
|
||||
<a href="https://paste.example.hu" target="_blank" class="btn btn-primary" data-app-open="1">Megnyitás ↗</a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -236,7 +234,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -249,12 +249,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Kezdeti belépési adatok</h3>
|
||||
<table class="initcred-table">
|
||||
|
||||
@@ -282,7 +280,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Alapértelmezett belépés</h3>
|
||||
<p class="app-info-creds">nincs</p>
|
||||
<p class="app-info-creds-warn">Az első bejelentkezés után azonnal változtasd meg!</p>
|
||||
@@ -290,25 +288,32 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<div class="app-field-row">
|
||||
<div class="app-field-label">Cím</div>
|
||||
<div class="app-field-value" data-app-address-row="1">paste.example.hu</div>
|
||||
</div>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -511,6 +516,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>AdventureLog — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>AdventureLog</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-neutral">Leállítva</span>
|
||||
|
||||
|
||||
<span class="tag tag-error" title="Az AdventureLog frissítése nem sikerült, az alkalmazás leállítva marad.">Megállítva — visszaállítás szükséges</span>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/adventurelog-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/adventurelog-logo.svg"
|
||||
alt="AdventureLog" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/adventurelog-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">AdventureLog</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="stopped">● Leállítva</span>
|
||||
|
||||
|
||||
<span class="tag tag-error" title="Az AdventureLog frissítése nem sikerült, az alkalmazás leállítva marad.">Megállítva — visszaállítás szükséges</span>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -231,7 +225,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="stopped">Leállítva</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -243,34 +239,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -422,6 +418,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Calibre — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Calibre</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/calibre-web-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/calibre-web-logo.svg"
|
||||
alt="Calibre" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/calibre-web-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Calibre</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,39 +237,39 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="install-hold-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="install-hold-card">
|
||||
<h3>Még csak te éred el</h3>
|
||||
<p>A doboz most cseréli le az alkalmazás ismert első jelszavát egy saját, generált jelszóra. Addig csak te éred el, amíg be vagy jelentkezve a vezérlőpultba – más nem léphet be az ismert jelszóval. Ha a csere nem sikerül, változtasd meg a jelszót kézzel, és jelezd itt, hogy megtetted.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -425,6 +421,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Calibre-Web — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Calibre-Web</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/calibre-web-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/calibre-web-logo.svg"
|
||||
alt="Calibre-Web" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/calibre-web-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Calibre-Web</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -242,14 +238,12 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Alapértelmezett belépés</h3>
|
||||
<p class="app-info-creds">admin / admin123</p>
|
||||
<p class="app-info-creds-warn" id="known-login-line">Ez az alkalmazás egy ismert, közös jelszóval indul: admin / admin123. Telepítés után azonnal változtasd meg.</p>
|
||||
@@ -259,25 +253,27 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -429,6 +425,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+43
-46
@@ -8,7 +8,7 @@
|
||||
<title>RomM — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>RomM</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
<small class="text-muted" data-ladder-steps="2">Hátralévő frissítési lépések: 2</small>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/romm-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/romm-logo.svg"
|
||||
alt="RomM" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/romm-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">RomM</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
<span class="app-meta" data-ladder-steps="2">Hátralévő frissítési lépések: 2</span>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -242,34 +238,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -421,6 +417,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+43
-46
@@ -8,7 +8,7 @@
|
||||
<title>Opengist — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Opengist</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/opengist-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/opengist-logo.svg"
|
||||
alt="Opengist" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/opengist-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Opengist</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -239,7 +233,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -252,34 +248,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -431,6 +427,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+43
-46
@@ -8,7 +8,7 @@
|
||||
<title>Karakeep — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Karakeep</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-warn">Részlegesen leállt</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/karakeep-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/karakeep-logo.svg"
|
||||
alt="Karakeep" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/karakeep-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~64M RAM</span>
|
||||
<span class="meta-badge">Hasznos eszközök</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Karakeep</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="degraded">● Részlegesen leállt</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -230,7 +224,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="degraded">Részlegesen leállt</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -243,34 +239,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -422,6 +418,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+48
-47
@@ -8,7 +8,7 @@
|
||||
<title>Fájlkezelő app — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,35 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Fájlkezelő app</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-neutral">Leállítva</span>
|
||||
<span class="badge badge-orphaned">Elavult</span>
|
||||
|
||||
|
||||
|
||||
<button class="btn btn-sm btn-danger" onclick="deleteOrphanStack('filebrowser')">Törlés</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/filebrowser-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/filebrowser-logo.svg"
|
||||
alt="Fájlkezelő app" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/filebrowser-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Fájlkezelő app</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="stopped">● Leállítva</span>
|
||||
<span class="app-chip">Elavult</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-hero-actions">
|
||||
<button class="btn btn-sm btn-danger" onclick="deleteOrphanStack('filebrowser')">Törlés</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -231,7 +229,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="stopped">Leállítva</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -243,12 +243,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Kezdeti belépési adatok</h3>
|
||||
<table class="initcred-table">
|
||||
|
||||
@@ -272,25 +270,27 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -493,6 +493,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+53
-61
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin telepítése — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,35 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
<a href="https://paste.example.hu" target="_blank" class="btn btn-sm btn-primary" data-app-open="1">Megnyitás ↗</a>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="app-meta" data-app-address="1">paste.example.hu</span>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="app-hero-actions">
|
||||
<a href="https://paste.example.hu" target="_blank" class="btn btn-primary" data-app-open="1">Megnyitás ↗</a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +227,9 @@
|
||||
<div class="flash flash-error">A művelet most nem sikerült.</div>
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -242,14 +242,12 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Alapértelmezett belépés</h3>
|
||||
<p class="app-info-creds">nincs ilyen</p>
|
||||
<p class="app-info-creds-warn">Az első bejelentkezés után azonnal változtasd meg!</p>
|
||||
@@ -257,9 +255,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
</div>
|
||||
|
||||
<div class="deploy-storage-info">
|
||||
<h4>Adattárolás</h4>
|
||||
@@ -702,7 +697,15 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<div class="app-field-row">
|
||||
<div class="app-field-label">Cím</div>
|
||||
<div class="app-field-value" data-app-address-row="1">paste.example.hu</div>
|
||||
</div>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
<div class="form-section">
|
||||
@@ -755,31 +758,9 @@
|
||||
<div class="form-section">
|
||||
<h4>Beállítások</h4>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-SUBDOMAIN">
|
||||
Webcím eleje
|
||||
<span class="required">*</span>
|
||||
|
||||
</label>
|
||||
|
||||
|
||||
<div class="subdomain-input-group">
|
||||
<input type="text" id="field-SUBDOMAIN" name="SUBDOMAIN"
|
||||
class="form-control subdomain-input"
|
||||
|
||||
value="paste"
|
||||
placeholder="aldomain"
|
||||
pattern="[a-z0-9]([a-z0-9-]*[a-z0-9])?"
|
||||
required
|
||||
disabled
|
||||
oninput="this.value=this.value.toLowerCase().replace(/[^a-z0-9-]/g,'')">
|
||||
<span class="subdomain-suffix">.example.hu</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-LANG_SEL">
|
||||
@@ -800,6 +781,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-ADMIN_PASSWORD">
|
||||
Admin jelszó mező
|
||||
@@ -819,6 +802,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-FLAG">
|
||||
Kapcsoló mező itt
|
||||
@@ -839,6 +824,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-HDD_PATH">
|
||||
Adatok helye itt
|
||||
@@ -888,6 +875,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-NOTE">
|
||||
Megjegyzés mező
|
||||
@@ -909,7 +898,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1061,6 +1052,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin telepítése — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,35 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
<a href="https://paste.example.hu" target="_blank" class="btn btn-sm btn-primary" data-app-open="1">Megnyitás ↗</a>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="app-meta" data-app-address="1">paste.example.hu</span>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="app-hero-actions">
|
||||
<a href="https://paste.example.hu" target="_blank" class="btn btn-primary" data-app-open="1">Megnyitás ↗</a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +227,9 @@
|
||||
<div class="flash flash-error">A művelet most nem sikerült.</div>
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -242,14 +242,12 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Alapértelmezett belépés</h3>
|
||||
<p class="app-info-creds">nincs ilyen</p>
|
||||
<p class="app-info-creds-warn">Az első bejelentkezés után azonnal változtasd meg!</p>
|
||||
@@ -257,9 +255,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
</div>
|
||||
|
||||
<div class="deploy-storage-info">
|
||||
<h4>Adattárolás</h4>
|
||||
@@ -702,7 +697,15 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<div class="app-field-row">
|
||||
<div class="app-field-label">Cím</div>
|
||||
<div class="app-field-value" data-app-address-row="1">paste.example.hu</div>
|
||||
</div>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
<div class="form-section">
|
||||
@@ -755,31 +758,9 @@
|
||||
<div class="form-section">
|
||||
<h4>Beállítások</h4>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-SUBDOMAIN">
|
||||
Webcím eleje
|
||||
<span class="required">*</span>
|
||||
|
||||
</label>
|
||||
|
||||
|
||||
<div class="subdomain-input-group">
|
||||
<input type="text" id="field-SUBDOMAIN" name="SUBDOMAIN"
|
||||
class="form-control subdomain-input"
|
||||
|
||||
value="paste"
|
||||
placeholder="aldomain"
|
||||
pattern="[a-z0-9]([a-z0-9-]*[a-z0-9])?"
|
||||
required
|
||||
disabled
|
||||
oninput="this.value=this.value.toLowerCase().replace(/[^a-z0-9-]/g,'')">
|
||||
<span class="subdomain-suffix">.example.hu</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-LANG_SEL">
|
||||
@@ -800,6 +781,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-ADMIN_PASSWORD">
|
||||
Admin jelszó mező
|
||||
@@ -822,6 +805,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-FLAG">
|
||||
Kapcsoló mező itt
|
||||
@@ -842,6 +827,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-HDD_PATH">
|
||||
Adatok helye itt
|
||||
@@ -891,6 +878,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-NOTE">
|
||||
Megjegyzés mező
|
||||
@@ -912,7 +901,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1064,6 +1055,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Immich — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Immich</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/immich-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/immich-logo.svg"
|
||||
alt="Immich" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/immich-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Immich</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,7 +237,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="setup-gate-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="setup-gate-card">
|
||||
<h3>Első beállítás</h3>
|
||||
<p>Most csak te éred el ezt az alkalmazást, amíg be vagy jelentkezve a vezérlőpultba. Így más nem hozhatja létre az első admin fiókot. Nyisd meg, és végezd el az első beállítást.</p>
|
||||
<p class="form-hint">Ha kész, nyomd meg ezt a gombot. Addig a telefonos alkalmazások és a család többi tagja nem éri el.</p>
|
||||
@@ -249,34 +245,34 @@
|
||||
<span class="form-hint app-press-err" style="display:none;color:var(--red)"></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -428,6 +424,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Immich — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Immich</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/immich-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/immich-logo.svg"
|
||||
alt="Immich" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/immich-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Immich</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,7 +237,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="setup-gate-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="setup-gate-card">
|
||||
<h3>Első beállítás</h3>
|
||||
<p>Most csak te éred el ezt az alkalmazást, amíg be vagy jelentkezve a vezérlőpultba. Így más nem hozhatja létre az első admin fiókot. Nyisd meg, és végezd el az első beállítást.</p>
|
||||
<p class="form-hint" data-restarts-once="true">Ehhez az alkalmazás egyszer újraindul, és közben rövid ideig nem érhető el.</p>
|
||||
@@ -250,34 +246,34 @@
|
||||
<span class="form-hint app-press-err" style="display:none;color:var(--red)"></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -429,6 +425,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Immich — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Immich</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/immich-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/immich-logo.svg"
|
||||
alt="Immich" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/immich-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Immich</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,7 +237,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="setup-gate-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="setup-gate-card">
|
||||
<h3>Első beállítás</h3>
|
||||
<p>Most csak te éred el ezt az alkalmazást, amíg be vagy jelentkezve a vezérlőpultba. Így más nem hozhatja létre az első admin fiókot. Nyisd meg, és végezd el az első beállítást.</p>
|
||||
<p class="form-hint">Ha kész, a doboz magától észreveszi, és mindenkinek megnyitja az alkalmazást.</p>
|
||||
@@ -249,34 +245,34 @@
|
||||
<span class="form-hint app-press-err" style="display:none;color:var(--red)"></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -428,6 +424,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Opengist — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Opengist</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/opengist-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/opengist-logo.svg"
|
||||
alt="Opengist" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/opengist-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Opengist</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,9 +237,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="signup-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="signup-card">
|
||||
<h3>Regisztráció</h3>
|
||||
<p>Az első admin fiók után a regisztráció zárva: idegen nem hozhat létre fiókot.</p>
|
||||
<p class="form-hint" id="add-people">Családtagot így adhatsz hozzá: Admin panel → Users.</p>
|
||||
@@ -252,31 +246,33 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -428,6 +424,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Opengist — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Opengist</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/opengist-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/opengist-logo.svg"
|
||||
alt="Opengist" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/opengist-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Opengist</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,9 +237,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="signup-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="signup-card">
|
||||
<h3>Regisztráció</h3>
|
||||
<p>Az első admin fiók után a regisztráció zárva: idegen nem hozhat létre fiókot.</p>
|
||||
<p class="form-hint" id="add-people">Családtagot így adhatsz hozzá: Admin panel → Users.</p>
|
||||
@@ -254,31 +248,33 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -430,6 +426,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Opengist — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Opengist</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/opengist-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/opengist-logo.svg"
|
||||
alt="Opengist" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/opengist-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Opengist</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,9 +237,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="signup-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="signup-card">
|
||||
<h3>Regisztráció</h3>
|
||||
<p>Az első admin fiók után a regisztráció zárva: idegen nem hozhat létre fiókot.</p>
|
||||
<p class="form-hint" id="add-people">Családtagot így adhatsz hozzá: Admin panel → Users.</p>
|
||||
@@ -253,31 +247,33 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -429,6 +425,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+44
-47
@@ -8,7 +8,7 @@
|
||||
<title>Opengist — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Opengist</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-run">Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/opengist-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/opengist-logo.svg"
|
||||
alt="Opengist" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/opengist-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Opengist</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="running">● Fut</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="running">Fut</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,40 +237,40 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" style="margin-top:1rem" id="signup-card">
|
||||
<div class="app-section" style="margin-top:1rem" id="signup-card">
|
||||
<h3>Regisztráció</h3>
|
||||
<p>A regisztráció most nyitva, eddig: 14:05</p>
|
||||
<p class="form-hint" id="add-people">Családtagot így adhatsz hozzá: Admin panel → Users.</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -426,6 +422,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin telepítése — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>Private Bin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-neutral">Leállítva</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="Private Bin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~128M RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<span class="meta-badge meta-badge-warn">HDD szükséges</span>
|
||||
<span class="meta-badge meta-badge-ok">Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="stopped">● Leállítva</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="app-meta" data-app-address="1">paste.example.hu</span>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -229,7 +223,9 @@
|
||||
<div class="flash flash-error">A művelet most nem sikerült.</div>
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="stopped">Leállítva</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -241,14 +237,12 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card">
|
||||
<div class="app-section">
|
||||
<h3>Alapértelmezett belépés</h3>
|
||||
<p class="app-info-creds">nincs ilyen</p>
|
||||
<p class="app-info-creds-warn">Az első bejelentkezés után azonnal változtasd meg!</p>
|
||||
@@ -256,9 +250,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
</div>
|
||||
|
||||
<div class="deploy-storage-info">
|
||||
<h4>Adattárolás</h4>
|
||||
@@ -653,7 +644,15 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<div class="app-field-row">
|
||||
<div class="app-field-label">Cím</div>
|
||||
<div class="app-field-value" data-app-address-row="1">paste.example.hu</div>
|
||||
</div>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
<div class="form-section">
|
||||
@@ -706,31 +705,9 @@
|
||||
<div class="form-section">
|
||||
<h4>Beállítások</h4>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-SUBDOMAIN">
|
||||
Webcím eleje
|
||||
<span class="required">*</span>
|
||||
|
||||
</label>
|
||||
|
||||
|
||||
<div class="subdomain-input-group">
|
||||
<input type="text" id="field-SUBDOMAIN" name="SUBDOMAIN"
|
||||
class="form-control subdomain-input"
|
||||
|
||||
value="paste"
|
||||
placeholder="aldomain"
|
||||
pattern="[a-z0-9]([a-z0-9-]*[a-z0-9])?"
|
||||
required
|
||||
disabled
|
||||
oninput="this.value=this.value.toLowerCase().replace(/[^a-z0-9-]/g,'')">
|
||||
<span class="subdomain-suffix">.example.hu</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-LANG_SEL">
|
||||
@@ -751,6 +728,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-ADMIN_PASSWORD">
|
||||
Admin jelszó mező
|
||||
@@ -773,6 +752,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-FLAG">
|
||||
Kapcsoló mező itt
|
||||
@@ -793,6 +774,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-HDD_PATH">
|
||||
Adatok helye itt
|
||||
@@ -814,6 +797,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-NOTE">
|
||||
Megjegyzés mező
|
||||
@@ -835,7 +820,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -987,6 +974,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>PrivateBin — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -171,37 +171,31 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-page">
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:1rem">
|
||||
<a href="/stacks" class="btn btn-sm btn-outline">← Alkalmazások</a>
|
||||
<h2>PrivateBin</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
|
||||
<span class="stack-state-badge state-progress">Telepítés...</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a href="/stacks" class="app-back">← Alkalmazások</a>
|
||||
|
||||
<div class="app-info-hero">
|
||||
<img class="app-info-logo" src="/static/assets/privatebin-logo.svg"
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/static/assets/privatebin-logo.svg"
|
||||
alt="PrivateBin" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/static\/assets\/privatebin-logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div class="app-info-hero-text">
|
||||
<p class="app-info-tagline"></p>
|
||||
<div class="stack-meta-badges">
|
||||
<span class="meta-badge">~ RAM</span>
|
||||
<span class="meta-badge"></span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">PrivateBin</h2>
|
||||
|
||||
<div class="app-chips">
|
||||
|
||||
<span class="app-chip" data-state-chip="deploying">● Telepítés...</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -231,7 +225,9 @@
|
||||
|
||||
|
||||
|
||||
<div class="app-info-card" id="app-run-card" data-run-card="1">
|
||||
|
||||
|
||||
<div class="app-section" id="app-run-card" data-run-card="1">
|
||||
<h3>Működés</h3>
|
||||
<p class="form-hint" data-run-state="deploying">Telepítés...</p>
|
||||
<div style="display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem">
|
||||
@@ -243,34 +239,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-info-grid">
|
||||
<div class="app-sections">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="alert alert-info">
|
||||
Ez az alkalmazás már telepítve van. Az alábbi beállítások csak olvashatók.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="app-section">
|
||||
<h3>Cím és kulcsok</h3>
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
<p class="app-field-hint" data-readonly-hint="1">Ezek telepítéskor jöttek létre, és nem módosíthatók.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<form id="deploy-form" class="deploy-form">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -422,6 +418,7 @@ function deleteStaleDataRun(stackName, stalePath, btn) {
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<script>
|
||||
|
||||
+26
-24
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin telepítése — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -174,34 +174,24 @@
|
||||
|
||||
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline" data-install-back="1">← Vissza</a>
|
||||
<h2>Private Bin — Telepítés</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline"><svg class="ico ico-sm"><use href="#i-info"/></svg> Részletek</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="/apps/privatebin" class="app-back" data-install-back="1">← Vissza</a>
|
||||
|
||||
|
||||
<div class="deploy-container">
|
||||
<div class="app-page deploy-container">
|
||||
<div class="flash flash-success">A mentés sikeresen elkészült.</div>
|
||||
<div class="flash flash-error">A művelet most nem sikerült.</div>
|
||||
<div class="deploy-info">
|
||||
<img class="deploy-logo" src="/logo.svg" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/logo.svg" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div>
|
||||
<h3>Private Bin</h3>
|
||||
<p>Egy teszt alkalmazás leírása</p>
|
||||
<div class="metarows">
|
||||
<span class="metarow"><svg class="ico"><use href="#i-memory-stick"/></svg><span class="mono">~128M</span></span>
|
||||
<span class="metarow"><svg class="ico"><use href="#i-hard-drive"/></svg>HDD szükséges</span>
|
||||
<span class="metarow"><svg class="ico"><use href="#i-check"/></svg>Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin — Telepítés</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
<span class="app-chip">~128M RAM</span>
|
||||
<span class="app-chip">HDD szükséges</span>
|
||||
<span class="app-chip">Magyar felület</span>
|
||||
<a href="/apps/privatebin" class="app-meta" style="text-decoration:none">Részletes leírás, képernyőképek</a>
|
||||
</div>
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline" style="margin-top:0.5rem">
|
||||
Részletes leírás, képernyőképek
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -310,6 +300,8 @@
|
||||
<div class="form-section">
|
||||
<h4>Beállítások</h4>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-SUBDOMAIN">
|
||||
Webcím eleje
|
||||
@@ -338,6 +330,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-LANG_SEL">
|
||||
Felület nyelve
|
||||
@@ -357,6 +351,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-ADMIN_PASSWORD">
|
||||
Admin jelszó mező
|
||||
@@ -389,6 +385,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-FLAG">
|
||||
Kapcsoló mező itt
|
||||
@@ -409,6 +407,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-HDD_PATH">
|
||||
Adatok helye itt
|
||||
@@ -458,6 +458,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-NOTE">
|
||||
Megjegyzés mező
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin telepítése — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -174,34 +174,24 @@
|
||||
|
||||
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline" data-install-back="1">← Vissza</a>
|
||||
<h2>Private Bin — Telepítés</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline"><svg class="ico ico-sm"><use href="#i-info"/></svg> Részletek</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="/apps/privatebin" class="app-back" data-install-back="1">← Vissza</a>
|
||||
|
||||
|
||||
<div class="deploy-container">
|
||||
<div class="app-page deploy-container">
|
||||
<div class="flash flash-success">A mentés sikeresen elkészült.</div>
|
||||
<div class="flash flash-error">A művelet most nem sikerült.</div>
|
||||
<div class="deploy-info">
|
||||
<img class="deploy-logo" src="/logo.svg" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/logo.svg" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div>
|
||||
<h3>Private Bin</h3>
|
||||
<p>Egy teszt alkalmazás leírása</p>
|
||||
<div class="metarows">
|
||||
<span class="metarow"><svg class="ico"><use href="#i-memory-stick"/></svg><span class="mono">~128M</span></span>
|
||||
<span class="metarow"><svg class="ico"><use href="#i-hard-drive"/></svg>HDD szükséges</span>
|
||||
<span class="metarow"><svg class="ico"><use href="#i-check"/></svg>Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin — Telepítés</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
<span class="app-chip">~128M RAM</span>
|
||||
<span class="app-chip">HDD szükséges</span>
|
||||
<span class="app-chip">Magyar felület</span>
|
||||
<a href="/apps/privatebin" class="app-meta" style="text-decoration:none">Részletes leírás, képernyőképek</a>
|
||||
</div>
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline" style="margin-top:0.5rem">
|
||||
Részletes leírás, képernyőképek
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -292,6 +282,8 @@
|
||||
<div class="form-section">
|
||||
<h4>Beállítások</h4>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-SUBDOMAIN">
|
||||
Webcím eleje
|
||||
@@ -320,6 +312,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-LANG_SEL">
|
||||
Felület nyelve
|
||||
@@ -339,6 +333,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-ADMIN_PASSWORD">
|
||||
Admin jelszó mező
|
||||
@@ -371,6 +367,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-FLAG">
|
||||
Kapcsoló mező itt
|
||||
@@ -391,6 +389,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-HDD_PATH">
|
||||
Adatok helye itt
|
||||
@@ -412,6 +412,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-NOTE">
|
||||
Megjegyzés mező
|
||||
|
||||
+26
-24
@@ -8,7 +8,7 @@
|
||||
<title>Private Bin telepítése — Felhom.eu</title>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=0.247.0">
|
||||
<link rel="stylesheet" href="/static/style.css?v=ASSET">
|
||||
<meta name="csrf-token" content="tok">
|
||||
<script>
|
||||
|
||||
@@ -174,34 +174,24 @@
|
||||
|
||||
|
||||
|
||||
<div class="page-header">
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline" data-install-back="1">← Vissza</a>
|
||||
<h2>Private Bin — Telepítés</h2>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;gap:.5rem">
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline"><svg class="ico ico-sm"><use href="#i-info"/></svg> Részletek</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="/apps/privatebin" class="app-back" data-install-back="1">← Vissza</a>
|
||||
|
||||
|
||||
<div class="deploy-container">
|
||||
<div class="app-page deploy-container">
|
||||
<div class="flash flash-success">A mentés sikeresen elkészült.</div>
|
||||
<div class="flash flash-error">A művelet most nem sikerült.</div>
|
||||
<div class="deploy-info">
|
||||
<img class="deploy-logo" src="/logo.svg" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
|
||||
<div class="app-hero">
|
||||
<img class="app-hero-logo" src="/logo.svg" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='\/logo.png';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<div>
|
||||
<h3>Private Bin</h3>
|
||||
<p>Egy teszt alkalmazás leírása</p>
|
||||
<div class="metarows">
|
||||
<span class="metarow"><svg class="ico"><use href="#i-memory-stick"/></svg><span class="mono">~128M</span></span>
|
||||
<span class="metarow"><svg class="ico"><use href="#i-hard-drive"/></svg>HDD szükséges</span>
|
||||
<span class="metarow"><svg class="ico"><use href="#i-check"/></svg>Magyar felület</span>
|
||||
<div class="app-hero-text">
|
||||
<h2 class="app-hero-name">Private Bin — Telepítés</h2>
|
||||
<p class="app-hero-tagline">Egy teszt alkalmazás leírása</p>
|
||||
<div class="app-chips">
|
||||
<span class="app-chip">~128M RAM</span>
|
||||
<span class="app-chip">HDD szükséges</span>
|
||||
<span class="app-chip">Magyar felület</span>
|
||||
<a href="/apps/privatebin" class="app-meta" style="text-decoration:none">Részletes leírás, képernyőképek</a>
|
||||
</div>
|
||||
<a href="/apps/privatebin" class="btn btn-sm btn-outline" style="margin-top:0.5rem">
|
||||
Részletes leírás, képernyőképek
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -287,6 +277,8 @@
|
||||
<div class="form-section">
|
||||
<h4>Beállítások</h4>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-SUBDOMAIN">
|
||||
Webcím eleje
|
||||
@@ -315,6 +307,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-LANG_SEL">
|
||||
Felület nyelve
|
||||
@@ -334,6 +328,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-ADMIN_PASSWORD">
|
||||
Admin jelszó mező
|
||||
@@ -366,6 +362,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-FLAG">
|
||||
Kapcsoló mező itt
|
||||
@@ -386,6 +384,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-HDD_PATH">
|
||||
Adatok helye itt
|
||||
@@ -437,6 +437,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="field-NOTE">
|
||||
Megjegyzés mező
|
||||
|
||||
Reference in New Issue
Block a user