Самостално хостовање на Railway-у
ChurchApps објављује шаблон за Railway који се покреће једним кликом и даје вашој цркви сопствену приватну инстанцу B1 Admin-а, B1 портала за чланове, API-ја и MySQL базе података — све то ради на инфраструктури коју поседујете и плаћате директно. Овај водич вас доводи до рада за око 15 минута, а затим пролази кроз конфигурацију након постављања коју већина цркава с временом пожели.
Брзи почетак
- Кликните на дугме Deploy on Railway изнад.
- Пријавите се на Railway (или направите бесплатан налог) и додајте начин плаћања.
- Кликните на Deploy без мењања ничега — свака променљива има разумну подразумевану вредност.
- Сачекајте 5–10 минута да четири сервиса постану зелена.
- Отворите URL сервиса B1Admin, кликните на Register и направите налог. Први налог аутоматски постаје администратор сервера.
- Пратите упутства у апликацији да направите своју прву цркву.
То је то. Сада имате потпуно функционалну ChurchApps инстанцу. Све што следи је опционално дотеривање.
Постављање је тренутно у бета фази. Ако наиђете на нешто што документација не покрива, отворите issue на github.com/ChurchApps/Api/issues и приложите логове постављања.
Шта вам треба
Шта се поставља
Шаблон прави четири сервиса у једном Railway пројекту:
| Сервис | Намена | URL након постављања |
|---|---|---|
| MySQL | Чува све податке (једна инстанца, више шема) | само интерно |
| Api | Позадински део за чланство, садржај, давање, присуство итд. | https://api-<id>.up.railway.app |
| B1Admin | Веб апликација за особље и администраторе | https://b1admin-<id>.up.railway.app |
| B1App | Веб апликација за чланове и веб-сајт цркве | https://b1app-<id>.up.railway.app |
Шеме базе података се аутоматски креирају при првом покретању путем стартне миграције API-ја.
Конфигурација при првом коришћењу
Сада када сте активни, ево ствари које већина цркава следеће подешава, приближно по приоритету.
1. Е-пошта (веома препоручљиво)
Без е-поште чланови могу да се региструју и користе систем, али не могу да ресетују заборављене лозинке — администратор то мора уместо њих да уради. Подешавање SMTP-а траје око 5 минута.
У Railway контролној табли отворите сервис Api → Variables и додајте:
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
Три провајдера која вреди знати:
Resend — најједноставнија бесплатна опција (100 е-порука дневно)
- Региструјте се на resend.com.
- Верификујте домен за слање (или за почетак користите тест пошиљаоца
onboarding@resend.dev). - Креирајте API кључ.
- Подесите
SMTP_HOST=smtp.resend.com,SMTP_USER=resend,SMTP_PASS=re_xxxxxxxxx.
Gmail — бесплатно за личну употребу (~500 дневно)
- Омогућите двофакторску аутентификацију на Google налогу.
- Креирајте App Password.
- Подесите
SMTP_HOST=smtp.gmail.com,SMTP_USER=your-address@gmail.com,SMTP_PASS=<16-знаковна лозинка апликације>.
AWS SES — најјефтиније при већем обиму
- Верификујте домен за слање у AWS-у.
- Изађите из SES sandbox режима ако ћете слати на неверификоване адресе.
- Креирајте SMTP креденцијале под SES → SMTP Settings → Create credentials.
- Подесите
SMTP_HOST=email-smtp.us-east-2.amazonaws.com,SMTP_USER=AKIA...,SMTP_PASS=<SES SMTP лозинка>.
Након чувања променљивих, сервис Api се аутоматски поново поставља. Проверите тако што ћете покренути ресетовање лозинке на тест налогу.
Ако подесите MAIL_SYSTEM=SMTP са лошим креденцијалима, регистрација ће изгледати успешна, али провера е-поште никад не стигне. Или поправите креденцијале или уклоните MAIL_SYSTEM да бисте се вратили на режим без е-поште.
2. Прилагођени домени
Подразумевани *.up.railway.app URL-ови функционишу, али већина цркава жели своје.
За сваки веб сервис (B1Admin и B1App):
- Отворите сервис у Railway-у → Settings → Networking.
- Кликните + Custom Domain и унесите име хоста:
admin.yourchurch.orgза B1Adminapp.yourchurch.org(илиwww) за B1App
- Додајте CNAME запис који вам Railway прикаже у свог DNS провајдера.
- Сачекајте неколико минута да се DNS проширi. Railway аутоматски издаје TLS сертификат.
Затим ажурирајте променљиве сервиса Api како би линкови у е-порукама водили на нове домене:
B1ADMIN_ROOT=https://admin.yourchurch.org
И на сервису B1Admin:
REACT_APP_API_BASE=https://api.yourchurch.org (ако сте подесили и прилагођени API домен)
REACT_APP_B1_WEBSITE_URL=https://{subdomain}.yourchurch.org
Ознака {subdomain} је дословна — при извршавању се замењује поддоменом сваке цркве (видите Multi-Site испод).
3. Више сајтова (више цркава на једној инстанци)
ChurchApps је по дизајну мултитенантан — једно постављање може да угости било који број цркава, свака са својим људима, групама и веб-сајтом. Нове цркве се додају искључиво кроз администраторски UI; нису потребне промене инфраструктуре.
Додавање додатних цркава
- У B1 Admin-у идите на Settings → Manage Church → Switch Church → Create New.
- Свака црква има јединствени поддомен (нпр.
firstchurch,gracecommunity). - Нова црква добија сопствене податке, чланове, веб-сајт и подешавање давања, потпуно одвојене од других цркава на истој инстанци.
Усмеравање сваке цркве на сопствени URL
Два начина да се цркве јавно објаве:
| Образац | Пример | Подешавање |
|---|---|---|
| Путање (ради одмах) | app.yourchurch.org/firstchurch | Нема додатног подешавања |
| Поддомен (чистији URL-ови) | firstchurch.yourchurch.org | Wildcard DNS + wildcard прилагођени домен |
За усмеравање по поддомену на Railway-у:
- У свом DNS провајдеру направите wildcard CNAME:
*.yourchurch.org → <b1app railway циљ>. - У Railway-у, на сервису B1App → Settings → Networking, додајте
*.yourchurch.orgкао прилагођени домен. - На сервису B1Admin подесите
REACT_APP_B1_WEBSITE_URL=https://{subdomain}.yourchurch.org.
Након поновног постављања, сајт сваке цркве се аутоматски служи на <њихов-поддомен>.yourchurch.org.
Wildcard прилагођени домени захтевају плаћени Railway план. Усмеравање путањама ради на сваком плану и функционално је идентично — само је мање лепо у адресној траци.
4. Онлајн давање (Stripe / PayPal)
Давање се подешава по цркви унутар администраторског UI-ја, а не преко променљивих окружења — тако свака црква може да користи свој трговачки рачун.
- Преузмите програмерске креденцијале са Stripe (Developers → API keys) или PayPal (My Apps & Credentials).
- У B1 Admin-у идите на Settings → Giving Settings.
- Изаберите провајдера, налепите Public и Secret кључеве и подесите руковање накнадама.
- По жељи додајте
GOOGLE_RECAPTCHA_SECRET_KEYсервису Api у Railway-у да бисте заштитили јавне обрасце за донације од ботова.
5. Складиштење датотека
Шаблон обезбеђује 1 GB трајни волумен прикачен на сервис Api за фотографије чланова, датотеке проповеди и отпремљене документе.
Да га повећате: отворите сервис Api → Volumes → подесите клизач величине.
За веће инсталације (100+ GB или много истовремених отпремања) пређите на S3 постављањем ових на сервису Api:
FILE_STORE=S3
AWS_S3_BUCKET=<your-bucket>
AWS_ACCESS_KEY_ID=<key>
AWS_SECRET_ACCESS_KEY=<secret>
AWS_REGION=us-east-2
Постојеће датотеке на волумену се не преносе аутоматски — копирајте их у bucket пре промене ове променљиве.
6. Опционалне интеграције функција
Ове променљиве откључавају одређене функције и могу се касније додати преко Railway контролне табле. Постављају се на сервису Api.
| Променљива | Функција коју омогућава |
|---|---|
OPENAI_API_KEY или OPENROUTER_API_KEY | AI-подржана претрага и предлози садржаја |
YOUTUBE_API_KEY | Претрага и уграђивање YouTube проповеди |
PEXELS_KEY | Бирач стоковних слика за градитеља веб-сајта |
VIMEO_TOKEN | Подршка за Vimeo проповеди |
API_BIBLE_KEY | Претрага библијских стихова у лекцијама и садржају |
YOUVERSION_API_KEY | YouVersion интеграција за Библију |
WEB_PUSH_PUBLIC_KEY + WEB_PUSH_PRIVATE_KEY | Push обавештења у прегледачу (генеришите VAPID пар кључева) |
HUBSPOT_KEY | Опциона CRM синхронизација за нове регистрације |
Ажурирање
Сваки сервис је повезан са својим GitHub репозиторијумом. Push-ови на main у ChurchApps/Api, ChurchApps/B1Admin или ChurchApps/B1App аутоматски покрећу поновна постављања.
Да бисте закачили одређену верзију, промените подешавање Branch на сваком сервису на тег или release грану. Ово је препоручено подешавање за продукцију — аутоматско постављање са main значи да наслеђујете сав рад који је у току.
Трошкови
Стварни распони за малу цркву (до 200 чланова, мали саобраћај):
| Компонента | Приближан месечни трошак |
|---|---|
| Railway основа | $5 |
| MySQL додатак | $5 + ~$1 за складиште |
| 3 веб сервиса (рачунање) | $3–10 укупно |
| 1 GB волумен | $0.25 |
| Укупно | ~$15–25 месечно |
Трошкови расту линеарно са саобраћајем, отпремањем фотографија и величином базе података. Railway приказује активну потрошњу у језичку Usage пројекта — тамо поставите ограничења потрошње да бисте ограничили изложеност.
Решавање проблема
| Симптом | Вероватан узрок | Решење |
|---|---|---|
Build fails with EBUSY: rmdir '/app/node_modules/.cache' | Сукоб Nixpacks кеш монтирања | Подесите NIXPACKS_NO_CACHE=true на захваћеном сервису |
Build fails on B1Admin with Missing: @types/... | Неусаглашен package-lock.json | Повуците најновији main |
| Api deploy hangs at "Deploying" | Провера исправности не успева — /health не враћа 200 | Погледајте логове постављања; обично недостаје обавезна променљива окружења |
| B1Admin shows "check your email" but no email arrives | MAIL_SYSTEM=SMTP је постављен, али креденцијали недостају или су нетачни | Поправите креденцијале или уклоните MAIL_SYSTEM да бисте искључили е-пошту |
Login redirects to api.churchapps.org | REACT_APP_STAGE је prod | Подесите REACT_APP_STAGE=custom на сервису B1Admin |
| Subdomain churches all show the same content | REACT_APP_B1_WEBSITE_URL не садржи ознаку {subdomain} | Подесите је на нпр. https://{subdomain}.yourchurch.org |
| Custom domain shows "Application not found" | DNS још није проширен или је Railway сертификат на чекању | Сачекајте 5 минута; проверите DNS помоћу dig admin.yourchurch.org |
Ако наиђете на нешто што није на овој листи, отворите issue на github.com/ChurchApps/Api/issues и приложите логове постављања.
Повезани чланци
- Самостално хостовање помоћу Docker-а — Исти стек на вашем хардверу или VPS-у
- Почетно подешавање — Први кораци након што се црква креира
- Подешавање веб-сајта — Конфигуришите јавни веб-сајт ваше цркве
- Подешавања давања — Повежите Stripe или PayPal
- Локално подешавање API-ја — Покретање стека локално за развој
- Постављање API-ја (AWS) — Како се званични ChurchApps SaaS поставља