a04882e296
Each app template now declares a healthcheck: section in .felhom.yml with appropriate probe type (http, api, or tcp) and endpoint based on the app's known health endpoints. The controller uses these to verify services are actually responding, not just that containers are running. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
131 lines
4.8 KiB
YAML
131 lines
4.8 KiB
YAML
# =============================================================================
|
|
# .felhom.yml — App metadata for felhom-controller
|
|
# =============================================================================
|
|
|
|
# --- Display info (shown on dashboard) ---
|
|
display_name: "RomM"
|
|
description: "Retró játékgyűjtemény kezelő"
|
|
category: "media"
|
|
subdomain: "arcade"
|
|
slug: "romm"
|
|
|
|
# --- Resource hints (displayed on deploy screen) ---
|
|
resources:
|
|
mem_request: "300M"
|
|
mem_limit: "1024M"
|
|
pi_compatible: false
|
|
needs_hdd: true
|
|
|
|
# --- 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: "arcade"
|
|
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: ROMM_AUTH_SECRET_KEY
|
|
label: "Hitelesítési titkosítási kulcs"
|
|
type: secret
|
|
generate: "hex:32"
|
|
locked_after_deploy: true
|
|
|
|
- env_var: HDD_PATH
|
|
label: "Adattárolási útvonal"
|
|
type: path
|
|
required: true
|
|
placeholder: "/mnt/hdd_1"
|
|
description: "A külső merevlemez elérési útja, ahol a ROM-ok és borítóképek tárolódnak"
|
|
locked_after_deploy: true
|
|
|
|
# --- App info (info page content) ---
|
|
app_info:
|
|
tagline: "Retró játékgyűjtemény kezelő, böngésző és lejátszó"
|
|
default_creds: "admin / admin"
|
|
docs_url: "https://github.com/rommapp/romm/wiki"
|
|
|
|
use_cases:
|
|
- "Retró játékgyűjtemény rendszerezése és böngészése webes felületen"
|
|
- "Játékok metaadatainak automatikus letöltése — borítók, leírások, értékelések"
|
|
- "Platformonkénti szűrés és keresés a teljes gyűjteményben"
|
|
- "ROM fájlok webes feltöltése és letöltése"
|
|
- "Többfelhasználós hozzáférés a háztartás tagjai számára"
|
|
|
|
first_steps:
|
|
- "Nyisd meg az arcade.DOMAIN címet a böngészőben"
|
|
- "Jelentkezz be az alapértelmezett admin / admin fiókkal"
|
|
- "Változtasd meg azonnal a jelszót a Settings menüben"
|
|
- "Töltsd fel a ROM fájlokat a library mappába (platform/játéknév struktúrával)"
|
|
- "Indíts egy Scan-t a bal oldali menüben a ROM-ok beolvasásához"
|
|
- "Opcionális: állíts be metaadat-szolgáltatókat a borítóképek és leírások automatikus letöltéséhez (lásd lent)"
|
|
|
|
prerequisites:
|
|
- "Külső HDD szükséges a ROM fájlok és borítóképek tárolásához"
|
|
- "Legalább 1 GB szabad RAM ajánlott (MariaDB + Redis + RomM)"
|
|
- "ROM fájlok platform mappákba rendezve (pl. library/gba/, library/snes/)"
|
|
|
|
# --- Optional config (configurable before or after deployment) ---
|
|
optional_config:
|
|
- group: "Metaadat-szolgáltatók"
|
|
description: "Játékok borítóinak, leírásainak és értékeléseinek automatikus letöltéséhez. Legalább az IGDB beállítása ajánlott. Mindegyik ingyenesen használható regisztráció után."
|
|
fields:
|
|
- env_var: IGDB_CLIENT_ID
|
|
label: "IGDB Client ID"
|
|
type: text
|
|
help_url: "https://api-docs.igdb.com/#getting-started"
|
|
help_text: "1) Regisztrálj / jelentkezz be a Twitch fejlesztői portálon (dev.twitch.tv). 2) Hozz létre egy új alkalmazást (bármilyen névvel). 3) Másold be a Client ID-t."
|
|
|
|
- env_var: IGDB_CLIENT_SECRET
|
|
label: "IGDB Client Secret"
|
|
type: secret_input
|
|
help_text: "A Twitch alkalmazásod Client Secret-je (a „New Secret\" gombbal generálhatod)."
|
|
|
|
- env_var: STEAMGRIDDB_API_KEY
|
|
label: "SteamGridDB API Key"
|
|
type: text
|
|
help_url: "https://www.steamgriddb.com/profile/preferences/api"
|
|
help_text: "Regisztrálj a SteamGridDB oldalon, majd a Preferences → API fül alatt kattints a „Generate API key\" gombra."
|
|
|
|
- env_var: SCREENSCRAPER_USER
|
|
label: "ScreenScraper felhasználónév"
|
|
type: text
|
|
help_url: "https://www.screenscraper.fr/"
|
|
help_text: "Regisztrálj a screenscraper.fr oldalon. A felhasználóneved lesz az API felhasználónév."
|
|
|
|
- env_var: SCREENSCRAPER_PASSWORD
|
|
label: "ScreenScraper jelszó"
|
|
type: secret_input
|
|
help_text: "A screenscraper.fr fiókod jelszava."
|
|
|
|
- env_var: MOBYGAMES_API_KEY
|
|
label: "MobyGames API Key"
|
|
type: text
|
|
help_url: "https://www.mobygames.com/info/api/"
|
|
help_text: "Regisztrálj a MobyGames oldalon, majd az API oldalon igényelj kulcsot. Részletes játékinformációkat és krediteket biztosít."
|
|
|
|
# --- Controller-side health probe ---
|
|
healthcheck:
|
|
checks:
|
|
- type: http
|
|
port: 8080
|