Пријавите се на главни садржај

Самостално хостовање на Railway-у

ChurchApps објављује шаблон за Railway који се покреће једним кликом и даје вашој цркви сопствену приватну инстанцу B1 Admin-а, B1 портала за чланове, API-ја и MySQL базе података — све то ради на инфраструктури коју поседујете и плаћате директно. Овај водич вас доводи до рада за око 15 минута, а затим пролази кроз конфигурацију након постављања коју већина цркава с временом пожели.

Брзи почетак​

Deploy on Railway

  1. Кликните на дугме Deploy on Railway изнад.
  2. Пријавите се на Railway (или направите бесплатан налог) и додајте начин плаћања.
  3. Кликните на Deploy без мењања ничега — свака променљива има разумну подразумевану вредност.
  4. Сачекајте 5–10 минута да четири сервиса постану зелена.
  5. Отворите URL сервиса B1Admin, кликните на Register и направите налог. Први налог аутоматски постаје администратор сервера.
  6. Пратите упутства у апликацији да направите своју прву цркву.

То је то. Сада имате потпуно функционалну ChurchApps инстанцу. Све што следи је опционално дотеривање.

савет

Постављање је тренутно у бета фази. Ако наиђете на нешто што документација не покрива, отворите issue на github.com/ChurchApps/Api/issues и приложите логове постављања.

Шта вам треба

  • Бесплатан Railway налог
  • Кредитна картица евидентирана код Railway-а (~$15–25 месечно за малу заједницу; видите Трошкове)
  • Око 15 минута за почетно постављање
  • Опционо, али веома препоручљиво касније: SMTP креденцијали и прилагођени домен

Шта се поставља​

Шаблон прави четири сервиса у једном 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 е-порука дневно)​

  1. Региструјте се на resend.com.
  2. Верификујте домен за слање (или за почетак користите тест пошиљаоца onboarding@resend.dev).
  3. Креирајте API кључ.
  4. Подесите SMTP_HOST=smtp.resend.com, SMTP_USER=resend, SMTP_PASS=re_xxxxxxxxx.

Gmail — бесплатно за личну употребу (~500 дневно)​

  1. Омогућите двофакторску аутентификацију на Google налогу.
  2. Креирајте App Password.
  3. Подесите SMTP_HOST=smtp.gmail.com, SMTP_USER=your-address@gmail.com, SMTP_PASS=<16-знаковна лозинка апликације>.

AWS SES — најјефтиније при већем обиму​

  1. Верификујте домен за слање у AWS-у.
  2. Изађите из SES sandbox режима ако ћете слати на неверификоване адресе.
  3. Креирајте SMTP креденцијале под SES → SMTP Settings → Create credentials.
  4. Подесите 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):

  1. Отворите сервис у Railway-у → Settings → Networking.
  2. Кликните + Custom Domain и унесите име хоста:
    • admin.yourchurch.org за B1Admin
    • app.yourchurch.org (или www) за B1App
  3. Додајте CNAME запис који вам Railway прикаже у свог DNS провајдера.
  4. Сачекајте неколико минута да се 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; нису потребне промене инфраструктуре.

Додавање додатних цркава​

  1. У B1 Admin-у идите на Settings → Manage Church → Switch Church → Create New.
  2. Свака црква има јединствени поддомен (нпр. firstchurch, gracecommunity).
  3. Нова црква добија сопствене податке, чланове, веб-сајт и подешавање давања, потпуно одвојене од других цркава на истој инстанци.

Усмеравање сваке цркве на сопствени URL​

Два начина да се цркве јавно објаве:

ОбразацПримерПодешавање
Путање (ради одмах)app.yourchurch.org/firstchurchНема додатног подешавања
Поддомен (чистији URL-ови)firstchurch.yourchurch.orgWildcard DNS + wildcard прилагођени домен

За усмеравање по поддомену на Railway-у:

  1. У свом DNS провајдеру направите wildcard CNAME: *.yourchurch.org → <b1app railway циљ>.
  2. У Railway-у, на сервису B1App → Settings → Networking, додајте *.yourchurch.org као прилагођени домен.
  3. На сервису B1Admin подесите REACT_APP_B1_WEBSITE_URL=https://{subdomain}.yourchurch.org.

Након поновног постављања, сајт сваке цркве се аутоматски служи на <њихов-поддомен>.yourchurch.org.

инфо

Wildcard прилагођени домени захтевају плаћени Railway план. Усмеравање путањама ради на сваком плану и функционално је идентично — само је мање лепо у адресној траци.

4. Онлајн давање (Stripe / PayPal)​

Давање се подешава по цркви унутар администраторског UI-ја, а не преко променљивих окружења — тако свака црква може да користи свој трговачки рачун.

  1. Преузмите програмерске креденцијале са Stripe (Developers → API keys) или PayPal (My Apps & Credentials).
  2. У B1 Admin-у идите на Settings → Giving Settings.
  3. Изаберите провајдера, налепите Public и Secret кључеве и подесите руковање накнадама.
  4. По жељи додајте 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_KEYAI-подржана претрага и предлози садржаја
YOUTUBE_API_KEYПретрага и уграђивање YouTube проповеди
PEXELS_KEYБирач стоковних слика за градитеља веб-сајта
VIMEO_TOKENПодршка за Vimeo проповеди
API_BIBLE_KEYПретрага библијских стихова у лекцијама и садржају
YOUVERSION_API_KEYYouVersion интеграција за Библију
WEB_PUSH_PUBLIC_KEY + WEB_PUSH_PRIVATE_KEYPush обавештења у прегледачу (генеришите 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 arrivesMAIL_SYSTEM=SMTP је постављен, али креденцијали недостају или су нетачниПоправите креденцијале или уклоните MAIL_SYSTEM да бисте искључили е-пошту
Login redirects to api.churchapps.orgREACT_APP_STAGE је prodПодесите REACT_APP_STAGE=custom на сервису B1Admin
Subdomain churches all show the same contentREACT_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 и приложите логове постављања.

Повезани чланци​