# ============================================================================= # .felhom.yml - App metadata for felhom-controller # ============================================================================= # --- Display info (shown on dashboard) --- display_name: "Cal.com" description: "Nyílt forráskódú időpontfoglaló (Calendly alternatíva)" category: "travel" subdomain: "cal" slug: "calcom" # --- Resource hints (displayed on deploy screen) --- resources: mem_request: "200M" mem_limit: "768M" pi_compatible: false needs_hdd: false # --- 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: "cal" required: true locked_after_deploy: true description: "Az alkalmazás aldomainje" - env_var: NEXTAUTH_SECRET label: "NextAuth titkosítási kulcs" type: secret generate: "hex:32" locked_after_deploy: true - env_var: CALENDSO_ENCRYPTION_KEY label: "Titkosítási kulcs" type: secret generate: "hex:16" locked_after_deploy: true - env_var: DB_PASSWORD label: "Adatbázis jelszó" type: secret generate: "password:24" locked_after_deploy: true # --- App info (info page content) --- app_info: tagline: "Időpontfoglaló - Calendly alternatíva saját szerveren" docs_url: "https://cal.com/docs/" use_cases: - 'Időpontfoglalási oldal létrehozása ügyfeleknek' - 'Naptár szinkronizáció (Google Calendar, Outlook)' - 'Személyre szabható foglalási típusok és időtartamok' - 'Automatikus emlékeztető emailek' - 'Csapat naptár kezelés' first_steps: - 'Nyisd meg a cal.DOMAIN címet a böngészőben' - 'Hozd létre az admin fiókot' - 'Állíts be egy foglalási típust (pl. 30 perces megbeszélés)' - 'Szinkronizáld a naptáradat' - 'Oszd meg a foglalási linket' prerequisites: - 'x86 processzor szükséges' - 'Legalább 1 GB szabad RAM (Cal.com + PostgreSQL)' # --- Controller-side health probe --- healthcheck: checks: - type: api port: 3000 path: "/api/health" expect: status: 200 # --- App-email mapping (apps → in-controller shim → hub → Resend) --- # Cal.com (Nodemailer) hard-codes TLS rejectUnauthorized=true with no skip flag and opportunistically # STARTTLS-upgrades whenever the server offers it — so it cannot use the self-signed :2525 listener. # tls_mode=plaintext points it at the :2526 listener, which does NOT advertise STARTTLS, so Cal.com never # attempts TLS (plaintext on the single-tenant app bridge — accepted posture). secure is inferred from the # port (≠465 → plaintext). EMAIL_SERVER_USER/PASSWORD stay unset (the shim accepts no-auth). smtp_mapping: tls_mode: plaintext host_var: EMAIL_SERVER_HOST port_var: EMAIL_SERVER_PORT from_var: EMAIL_FROM from_name_var: EMAIL_FROM_NAME from_local: calcom