# ============================================================================= # .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" # --- 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