0695d8eeda
gates / gates (push) Failing after 2s
adventurelog, bentopdf, bookstack, calcom, calibre-web, ghost, grafana,
home-assistant, homebox, homepage, n8n, nextcloud, outline, papra, radarr,
sparkyfitness, wanderer. EN_MISSING_CEILING 943 -> 624.
No Hungarian byte moved; no image, pin, catalog_since or compose line changed.
The blocks are GENERATED from a flat {path: english} map rather than hand-written:
fifty nested blocks whose keys must match the Hungarian exactly is fifty chances to
mistype an env_var, and a mistyped key is INERT on the box rather than an error, so
nobody would learn. The generator builds from the same flat paths the freeze uses,
derived from the Hungarian file itself, so an invented key cannot be written.
One string is deliberately untranslated: papra's AUTH_SECRET description is a
Hungarian DEFECT (it describes a session-signing key as "the app's subdomain").
Translating it faithfully would ship the error in a second language; changing the
Hungarian is forbidden in a localisation release. It falls back, papra stands at
13/14, and the ceiling's floor is 1 until R-593 is fixed — stated in the ceiling's
own comment so a later batch does not "fix" it by editing Hungarian.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
172 lines
6.5 KiB
YAML
172 lines
6.5 KiB
YAML
# =============================================================================
|
|
# .felhom.yml - App metadata for felhom-controller
|
|
# =============================================================================
|
|
|
|
# --- Display info (shown on dashboard) ---
|
|
display_name: "Nextcloud"
|
|
description: "Saját felhő tárhely - Google Drive/Dropbox alternatíva"
|
|
category: "files"
|
|
subdomain: "cloud"
|
|
slug: "nextcloud"
|
|
# catalog_since: the date THIS repo last changed this app's pinned images. Any commit that
|
|
# changes an image: line must set this to the same day (see CLAUDE.md).
|
|
catalog_since: "2026-07-18"
|
|
|
|
# --- Resource hints (displayed on deploy screen) ---
|
|
resources:
|
|
mem_request: "256M"
|
|
mem_limit: "1024M"
|
|
pi_compatible: false
|
|
needs_hdd: true
|
|
|
|
# --- Backup classification (referential coupling; see felhom.eu documentation/audits/SPIKE-backup-classification-2026-07-14.md) ---
|
|
backup:
|
|
hdd:
|
|
- path: appdata/nextcloud
|
|
class: mandatory # THE user files — oc_filecache/shares reference them
|
|
|
|
# --- Deploy fields (first deployment only) ---
|
|
deploy_fields:
|
|
- env_var: DOMAIN
|
|
label: "Domain"
|
|
type: domain
|
|
description: "A szerver domain neve"
|
|
locked_after_deploy: true
|
|
|
|
- env_var: SUBDOMAIN
|
|
label: "Aldomain"
|
|
type: subdomain
|
|
default: "cloud"
|
|
required: true
|
|
locked_after_deploy: true
|
|
description: "Az alkalmazás aldomainje"
|
|
|
|
- env_var: DB_PASSWORD
|
|
label: "Adatbázis jelszó"
|
|
type: secret
|
|
generate: "password:24"
|
|
locked_after_deploy: true
|
|
|
|
- env_var: MYSQL_ROOT_PASSWORD
|
|
label: "MariaDB root jelszó"
|
|
type: secret
|
|
generate: "password:24"
|
|
locked_after_deploy: true
|
|
|
|
- env_var: NEXTCLOUD_ADMIN_USER
|
|
label: "Admin felhasználónév"
|
|
type: text
|
|
default: "admin"
|
|
locked_after_deploy: true
|
|
|
|
- env_var: NEXTCLOUD_ADMIN_PASSWORD
|
|
label: "Admin jelszó"
|
|
type: password
|
|
generate: "password:16"
|
|
description: "Első bejelentkezéshez. Utána a webes felületen módosítható."
|
|
locked_after_deploy: false
|
|
|
|
- env_var: HDD_PATH
|
|
label: "Adattárolási útvonal"
|
|
type: path
|
|
required: true
|
|
placeholder: "/mnt/felhom-drives/hdd_1"
|
|
description: "A külső merevlemez elérési útja"
|
|
locked_after_deploy: true
|
|
|
|
# --- App info (info page content) ---
|
|
app_info:
|
|
tagline: "A saját Google Drive-od - fájlok, naptár, névjegyek egy helyen"
|
|
default_creds: "Az admin fiók adatait a telepítéskor adod meg"
|
|
docs_url: "https://docs.nextcloud.com/server/latest/user_manual/"
|
|
|
|
use_cases:
|
|
- 'Fájlok szinkronizálása és megosztása eszközök között'
|
|
- 'Naptár és névjegyek szinkronizálás (CalDAV/CardDAV)'
|
|
- 'Dokumentumok közös szerkesztése (OnlyOffice integrációval)'
|
|
- 'Fotó és videó automatikus feltöltés telefonról'
|
|
- 'Alkalmazásbolt - kibővíthető funkciók (Notes, Tasks, Forms, stb.)'
|
|
|
|
first_steps:
|
|
- 'Nyisd meg a cloud.DOMAIN címet a böngészőben'
|
|
- 'Jelentkezz be a telepítéskor megadott admin fiókkal'
|
|
- 'Telepítsd a Nextcloud asztali alkalmazást a számítógépedre'
|
|
- 'Telepítsd a Nextcloud mobil alkalmazást a telefonodra'
|
|
- 'Hívd meg a családtagokat felhasználói fiókok létrehozásával'
|
|
|
|
prerequisites:
|
|
- 'Külső HDD szükséges a fájlok tárolásához'
|
|
- 'Legalább 1 GB szabad RAM (Nextcloud + MariaDB + Redis)'
|
|
- 'x86 processzor ajánlott a legjobb teljesítményhez'
|
|
|
|
# --- Controller-side health probe ---
|
|
healthcheck:
|
|
checks:
|
|
- type: api
|
|
port: 80
|
|
path: "/status.php"
|
|
expect:
|
|
status: 200
|
|
body_contains: "installed"
|
|
|
|
# --- App-email mapping (apps → in-controller shim → hub → Resend) ---
|
|
# Nextcloud (Symfony Mailer) has no env to skip TLS cert verification and opportunistically STARTTLS-upgrades,
|
|
# so it can't use the self-signed :2525 listener → tls_mode=plaintext points it at :2526 (STARTTLS NOT
|
|
# advertised → no upgrade attempted; plaintext on the single-tenant app bridge — accepted posture).
|
|
# Nextcloud SPLITS the From into local-part + domain, so from_var=MAIL_FROM_ADDRESS (local) +
|
|
# from_domain_var=MAIL_DOMAIN → nextcloud@felhom.eu. No security_var (SMTP_SECURE stays empty = no TLS);
|
|
# SMTP_NAME/PASSWORD unset (no auth). The official image reads these via getenv() on every boot.
|
|
smtp_mapping:
|
|
tls_mode: plaintext
|
|
host_var: SMTP_HOST
|
|
port_var: SMTP_PORT
|
|
from_var: MAIL_FROM_ADDRESS
|
|
from_domain_var: MAIL_DOMAIN
|
|
from_local: nextcloud
|
|
|
|
# --- English copy (localisation slice 5, R-560) --------------------------------------------
|
|
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
|
|
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
|
|
i18n:
|
|
en:
|
|
description: 'Your own cloud storage - a Google Drive/Dropbox alternative'
|
|
app_info:
|
|
tagline: 'Your own Google Drive - files, calendar and contacts in one place'
|
|
default_creds: 'You set the admin account details at install time'
|
|
use_cases:
|
|
- 'Sync and share files between your devices'
|
|
- 'Calendar and contact sync (CalDAV/CardDAV)'
|
|
- 'Work on a document together (with the OnlyOffice integration)'
|
|
- 'Photos and videos upload themselves from your phone'
|
|
- 'An app store - more features when you want them (Notes, Tasks, Forms and more)'
|
|
first_steps:
|
|
- 'Open cloud.DOMAIN in your browser'
|
|
- 'Sign in with the admin account you set at install time'
|
|
- 'Install the Nextcloud desktop app on your computer'
|
|
- 'Install the Nextcloud mobile app on your phone'
|
|
- 'Invite the household by creating an account for each of them'
|
|
prerequisites:
|
|
- 'An external hard drive is needed to keep the files on'
|
|
- 'At least 1 GB of free RAM (Nextcloud + MariaDB + Redis)'
|
|
- 'An x86 processor is recommended for the best speed'
|
|
deploy_fields:
|
|
- env_var: DOMAIN
|
|
label: 'Domain'
|
|
description: 'The server domain name'
|
|
- env_var: SUBDOMAIN
|
|
label: 'Subdomain'
|
|
description: 'The subdomain this app answers on'
|
|
- env_var: DB_PASSWORD
|
|
label: 'Database password'
|
|
- env_var: HDD_PATH
|
|
label: 'Data storage path'
|
|
description: 'The path to the external hard drive'
|
|
placeholder: '/mnt/felhom-drives/hdd_1'
|
|
- env_var: MYSQL_ROOT_PASSWORD
|
|
label: 'MariaDB root password'
|
|
- env_var: NEXTCLOUD_ADMIN_USER
|
|
label: 'Admin user name'
|
|
- env_var: NEXTCLOUD_ADMIN_PASSWORD
|
|
label: 'Admin password'
|
|
description: 'For the first sign-in. You can change it in the app afterwards.'
|