Files
app-catalog-felhom.eu/templates/calcom/.felhom.yml
T
admin 1b89692a49 app-email: calcom + nextcloud mappings (tls_mode=plaintext, nextcloud split-From)
calcom (Nodemailer) + nextcloud (Symfony) opportunistically STARTTLS with no cert-skip
-> tls_mode=plaintext (:2526, no STARTTLS advertised). nextcloud splits From via
from_domain_var (MAIL_FROM_ADDRESS + MAIL_DOMAIN). Compose files reference injected env.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 13:14:01 +02:00

98 lines
3.0 KiB
YAML

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