Vlastní hosting na Railway
ChurchApps nabízí šablonu Railway pro nasazení jedním kliknutím, která vaší církvi poskytne vlastní soukromou instanci B1 Admin, členského portálu B1, API a databáze MySQL. To vše běží na infrastruktuře, kterou vlastníte a platíte ji přímo. Tento návod vás zprovozní asi za 15 minut a poté projde konfigurací po nasazení, kterou si většina církví nakonec chce nastavit.
Rychlý start
- Klikněte na tlačítko Deploy on Railway výše.
- Přihlaste se k Railway (nebo si vytvořte bezplatný účet) a přidejte platební metodu.
- Klikněte na Deploy, aniž byste cokoli měnili. Každá proměnná má rozumnou výchozí hodnotu.
- Počkejte 5–10 minut, než všechny čtyři služby zezelenají.
- Otevřete URL služby B1Admin, klikněte na Register a vytvořte si účet. První účet se automaticky stane serverovým administrátorem.
- Podle pokynů v aplikaci vytvořte svou první církev.
To je vše. Nyní máte plně funkční instanci ChurchApps. Vše níže je volitelné vylepšení.
Nasazení je momentálně ve verzi beta. Pokud narazíte na něco, co dokumentace nepokrývá, otevřete prosím issue na github.com/ChurchApps/Api/issues a přiložte logy nasazení.
Co potřebujete
Co se nasazuje
Šablona vytvoří čtyři služby v jediném projektu Railway:
| Služba | Účel | URL po nasazení |
|---|---|---|
| MySQL | Ukládá všechna data (jedna instance, více schémat) | pouze interně |
| Api | Backend pro členství, obsah, dary, docházku atd. | https://api-<id>.up.railway.app |
| B1Admin | Webová aplikace pro zaměstnance a administrátory | https://b1admin-<id>.up.railway.app |
| B1App | Webová aplikace pro členy a webové stránky církve | https://b1app-<id>.up.railway.app |
Databázová schémata se při prvním spuštění vytvoří automaticky pomocí migrace API při startu.
Počáteční konfigurace
Když už máte systém spuštěný, zde jsou věci, které si většina církví nastaví jako další, přibližně v pořadí priority.
1. E-mail (vysoce doporučeno)
Bez e-mailu se členové mohou stále registrovat a používat systém, ale nemohou obnovit zapomenutá hesla. To musí za ně udělat administrátor. Nastavení SMTP zabere asi 5 minut.
V přehledu Railway otevřete službu Api → Variables a přidejte:
MAIL_SYSTEM=SMTP
SMTP_HOST=<your provider host>
SMTP_USER=<your username>
SMTP_PASS=<your password or API key>
SMTP_SECURE=false
SUPPORT_EMAIL=noreply@yourchurch.org
Stojí za zmínku tři poskytovatelé:
Resend – nejjednodušší bezplatná možnost (100 e-mailů denně)
- Zaregistrujte se na resend.com.
- Ověřte odesílací doménu (nebo začněte testovacím odesílatelem
onboarding@resend.dev). - Vytvořte API klíč.
- Nastavte
SMTP_HOST=smtp.resend.com,SMTP_USER=resend,SMTP_PASS=re_xxxxxxxxx.
Gmail – zdarma pro osobní použití (~500 denně)
- Zapněte dvoufaktorové ověření u účtu Google.
- Vytvořte heslo aplikace.
- Nastavte
SMTP_HOST=smtp.gmail.com,SMTP_USER=your-address@gmail.com,SMTP_PASS=<16místné heslo aplikace>.
AWS SES – nejlevnější ve velkém měřítku
- Ověřte odesílací doménu v AWS.
- Pokud budete posílat na neověřené adresy, vyjměte účet ze sandboxu SES.
- Vytvořte přihlašovací údaje SMTP v SES → SMTP Settings → Create credentials.
- Nastavte
SMTP_HOST=email-smtp.us-east-2.amazonaws.com,SMTP_USER=AKIA...,SMTP_PASS=<heslo SMTP pro SES>.
Po uložení proměnných se služba Api automaticky znovu nasadí. Otestujte to vyvoláním obnovy hesla na testovacím účtu.
Pokud nastavíte MAIL_SYSTEM=SMTP se špatnými přihlašovacími údaji, registrace se zdánlivě povede, ale ověřovací e-mail nikdy nedorazí. Buď opravte přihlašovací údaje, nebo zrušte MAIL_SYSTEM, aby se systém vrátil do režimu bez e-mailu.
2. Vlastní domény
Výchozí URL *.up.railway.app fungují, ale většina církví chce vlastní.
U každé webové služby (B1Admin a B1App):
- Otevřete službu v Railway → Settings → Networking.
- Klikněte na + Custom Domain a zadejte název hostitele:
admin.yourchurch.orgpro B1Adminapp.yourchurch.org(nebowww) pro B1App
- Přidejte záznam CNAME, který vám Railway zobrazí, do svého poskytovatele DNS.
- Počkejte několik minut, než se DNS rozšíří. Railway automaticky vystaví certifikát TLS.
Poté aktualizujte proměnné služby Api, aby odkazy v e-mailech používaly nové domény:
B1ADMIN_ROOT=https://admin.yourchurch.org
A u služby B1Admin:
REACT_APP_API_BASE=https://api.yourchurch.org (if you also set a custom API domain)
REACT_APP_B1_WEBSITE_URL=https://{subdomain}.yourchurch.org
Token {subdomain} je doslovný. Za běhu se nahradí subdoménou každé církve (viz Více webů níže).
3. Více webů (více církví v jedné instanci)
ChurchApps je od začátku navrženo jako multi-tenant. Jedno nasazení může hostit libovolný počet církví, každou se svými lidmi, skupinami a webovými stránkami. Nové církve se přidávají výhradně přes administrační rozhraní a žádné změny infrastruktury nejsou potřeba.
Přidávání dalších církví
- V B1 Admin přejděte na Settings → Manage Church → Switch Church → Create New.
- Každá církev má jedinečný slug subdomény (např.
firstchurch,gracecommunity). - Nová církev získá vlastní data, členy, webové stránky a nastavení darů, plně oddělené od ostatních církví na stejné instanci.
Směrování každé církve na vlastní URL
Existují dva způsoby, jak církve zveřejnit:
| Způsob | Příklad | Nastavení |
|---|---|---|
| Podle cesty (funguje ihned) | app.yourchurch.org/firstchurch | Bez dalšího nastavení |
| Podle subdomény (čistší URL) | firstchurch.yourchurch.org | Wildcard DNS + wildcard vlastní doména |
Pro směrování podle subdomény na Railway:
- V poskytovateli DNS vytvořte wildcard CNAME:
*.yourchurch.org → <cíl b1app na Railway>. - Na Railway, u služby B1App → Settings → Networking, přidejte
*.yourchurch.orgjako vlastní doménu. - U služby B1Admin nastavte
REACT_APP_B1_WEBSITE_URL=https://{subdomain}.yourchurch.org.
Po novém nasazení bude web každé církve automaticky dostupný na <jejich-subdoména>.yourchurch.org.
Wildcard vlastní domény vyžadují placený tarif Railway. Směrování podle cesty funguje na každém tarifu a je funkčně stejné. Je jen méně hezké v adresním řádku.
4. Online dary (Stripe / PayPal)
Dary se nastavují pro každou církev zvlášť v administračním rozhraní, ne pomocí proměnných prostředí. Každá církev tak může používat vlastní obchodní účet.
- Získejte vývojářské přihlašovací údaje na Stripe (Developers → API keys) nebo PayPal (My Apps & Credentials).
- V B1 Admin přejděte na Settings → Giving Settings.
- Vyberte poskytovatele, vložte veřejný a tajný klíč a nastavte zpracování poplatků.
- Volitelně přidejte
GOOGLE_RECAPTCHA_SECRET_KEYdo služby Api na Railway, aby veřejné formuláře darů chránily před boty.
5. Úložiště souborů
Šablona vytvoří 1 GB trvalý svazek připojený ke službě Api pro fotografie členů, soubory kázání a nahrané dokumenty.
Chcete-li jej zvětšit, otevřete službu Api → Volumes a upravte posuvník velikosti.
Pro větší nasazení (100+ GB nebo mnoho současných nahrávání) přepněte na S3 nastavením těchto proměnných u služby Api:
FILE_STORE=S3
AWS_S3_BUCKET=<your-bucket>
AWS_ACCESS_KEY_ID=<key>
AWS_SECRET_ACCESS_KEY=<secret>
AWS_REGION=us-east-2
Stávající soubory ve svazku se automaticky nepřenesou. Před přepnutím proměnné je zkopírujte do bucketu.
6. Volitelné integrace funkcí
Tyto proměnné odemknou konkrétní funkce a všechny je lze přidat později v přehledu Railway. Nastavte je u služby Api.
| Proměnná | Funkce, kterou zpřístupňuje |
|---|---|
OPENAI_API_KEY nebo OPENROUTER_API_KEY | Vyhledávání a návrhy obsahu s pomocí AI |
YOUTUBE_API_KEY | Vyhledávání a vkládání kázání z YouTube |
PEXELS_KEY | Výběr stock obrázků pro tvorbu webu |
VIMEO_TOKEN | Podpora kázání na Vimeo |
API_BIBLE_KEY | Vyhledávání biblických veršů v lekcích a obsahu |
YOUVERSION_API_KEY | Integrace Bible YouVersion |
WEB_PUSH_PUBLIC_KEY + WEB_PUSH_PRIVATE_KEY | Push oznámení v prohlížeči (vygenerujte pár klíčů VAPID) |
HUBSPOT_KEY | Volitelná synchronizace CRM pro nové registrace |
Aktualizace
Každá služba je propojena s příslušným repozitářem na GitHubu. Pushe do větve main v repozitářích ChurchApps/Api, ChurchApps/B1Admin nebo ChurchApps/B1App automaticky spouštějí nové nasazení.
Chcete-li zafixovat konkrétní verzi, změňte nastavení Branch u každé služby na tag nebo větev vydání. Toto je doporučené nastavení pro produkci, protože automatické nasazení z main znamená, že převezmete i veškerou rozpracovanou práci.
Náklady
Reálné rozsahy pro malou církev (do 200 členů, nízký provoz):
| Komponenta | Přibližné měsíční náklady |
|---|---|
| Základ Railway | $5 |
| Plugin MySQL | $5 + ~$1 za úložiště |
| Výpočetní výkon 3 webových služeb | $3–10 celkem |
| Svazek 1 GB | $0.25 |
| Celkem | ~$15–25 měsíčně |
Náklady rostou lineárně s provozem, nahráváním fotografií a velikostí databáze. Railway zobrazuje aktuální využití na kartě Usage projektu. Nastavte tam limity útrat, abyste omezili své riziko.
Řešení problémů
| Příznak | Pravděpodobná příčina | Řešení |
|---|---|---|
Sestavení selže s EBUSY: rmdir '/app/node_modules/.cache' | Konflikt připojení cache Nixpacks | Nastavte NIXPACKS_NO_CACHE=true u dotčené služby |
Sestavení B1Admin selže s Missing: @types/... | Nesynchronizovaný package-lock.json | Stáhněte nejnovější main |
| Nasazení Api se zasekne na „Deploying“ | Kontrola stavu selhává, /health nevrací 200 | Zobrazte logy nasazení. Obvykle chybí povinná proměnná prostředí |
| B1Admin zobrazí „check your email“, ale žádný e-mail nedorazí | MAIL_SYSTEM=SMTP je nastaveno, ale přihlašovací údaje chybí nebo jsou špatné | Opravte přihlašovací údaje, nebo zrušte MAIL_SYSTEM a e-maily vypněte |
Přihlášení přesměruje na api.churchapps.org | REACT_APP_STAGE je prod | Nastavte REACT_APP_STAGE=custom u služby B1Admin |
| Všechny církve na subdoménách zobrazují stejný obsah | REACT_APP_B1_WEBSITE_URL neobsahuje token {subdomain} | Nastavte např. https://{subdomain}.yourchurch.org |
| Vlastní doména zobrazuje „Application not found“ | DNS ještě není rozšířen nebo čeká certifikát Railway | Počkejte 5 minut. Zkontrolujte DNS příkazem dig admin.yourchurch.org |
Pokud narazíte na něco, co v tomto seznamu není, otevřete issue na github.com/ChurchApps/Api/issues a přiložte logy nasazení.
Související články
- Vlastní hosting s Dockerem — Stejný stack na vlastním hardwaru nebo VPS
- Počáteční nastavení — První kroky po vytvoření církve
- Počáteční nastavení webu — Nastavte veřejné webové stránky církve
- Nastavení darů — Propojte Stripe nebo PayPal
- Místní nastavení API — Spuštění stacku lokálně pro vývoj
- Nasazení API (AWS) — Jak je oficiální SaaS ChurchApps nasazen