Перейти к основному содержимому

Самостоятельный хостинг на Railway

ChurchApps публикует один клик Railway шаблон, который дает вашей церкви собственный приватный экземпляр B1 Admin, портала B1 для членов, API и базе данных MySQL — все работающие на инфраструктуре, которой вы владеете и платите напрямую. Это руководство получает вас в действие примерно за 15 минут и затем проходит через конфигурацию после развертывания, которую большинство церквей в конечном итоге хотят.

Быстрый старт

Развернуть на Railway

  1. Нажмите кнопку Развернуть на Railway выше.
  2. Войдите в Railway (или создайте бесплатный аккаунт) и добавьте способ оплаты.
  3. Нажмите Развернуть без изменения чего-либо — каждая переменная имеет рассудительное по умолчанию значение.
  4. Ждите 5–10 минут, пока четыре сервиса не станут зелеными.
  5. Откройте URL B1Admin сервиса, нажмите Зарегистрироваться и создайте свой аккаунт. Первый аккаунт автоматически является администратором сервера.
  6. Следуйте подсказкам в приложении, чтобы создать вашу первую церковь.

Вот оно. Теперь у вас есть полностью работающий экземпляр ChurchApps. Все ниже является опциональной полировкой.

Совет

Развертывание в настоящее время находится в бета. Если вы столкнетесь с чем-то, чего документы не охватывают, пожалуйста, откройте вопрос на github.com/ChurchApps/Api/issues с логами развертывания.

Что вам нужно

  • Бесплатный аккаунт Railway
  • Кредитная карта на файле с Railway (~$15–25/месяц для малой конгрегации; смотри Стоимость)
  • Примерно 15 минут для начального развертывания
  • Опционально но сильно рекомендуется позже: учетные данные SMTP и пользовательский домен

Что получает развернуто

Шаблон подготавливает четыре сервиса в одном проекте Railway:

СервисНазначениеURL после развертывания
MySQLХранит все данные (один экземпляр, множественные схемы)только внутренний
ApiBackend для членства, контента, пожертвований, посещаемости и т.д.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 сервис → Переменные и добавьте:

MAIL_SYSTEM=SMTP
SMTP_HOST=<ваш хост поставщика>
SMTP_USER=<ваше имя пользователя>
SMTP_PASS=<ваш пароль или API ключ>
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. Создайте пароль приложения.
  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 URLs работают, но большинство церквей хотят собственные.

Для каждого веб-сервиса (B1Admin и B1App):

  1. Откройте сервис в Railway → ПараметрыСетевая связь.
  2. Нажмите + Пользовательский домен и введите имя хоста:
    • admin.yourchurch.org для B1Admin
    • app.yourchurch.org (или www) для B1App
  3. Добавьте запись CNAME, которую показывает Railway, на вашего поставщика DNS.
  4. Подождите несколько минут для распространения DNS. 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} литеральный — он заменяется во время выполнения поддоменом каждой церкви (смотри Мульти-сайт ниже).

3. Мульти-сайт (множественные церкви на одном экземпляре)

ChurchApps является многопользовательским по дизайну — одно развертывание может хостировать любое количество церквей, каждая со своей собственной людьми, группами и веб-сайтом. Новые церкви добавляются полностью через админский пользовательский интерфейс; никакие изменения инфраструктуры не требуются.

Добавление дополнительных церквей

  1. В B1 Admin перейдите в Параметры → Управление церковью → Переключить церковь → Создать новую.
  2. Каждая церковь имеет уникальный слаг поддомена (например firstchurch, gracecommunity).
  3. Новая церковь получает свои собственные данные, членов, веб-сайт и настройку пожертвований, полностью изолированные от других церквей на одном экземпляре.

Маршрутизирование каждой церкви на свой собственный URL

Два способа выставить церкви публично:

ПаттернПримерНастройка
На основе пути (работает из коробки)app.yourchurch.org/firstchurchНет дополнительной настройки
На основе поддомена (чище URLs)firstchurch.yourchurch.orgПодстановочный DNS + подстановочный пользовательский домен

Для маршрутизации на основе поддомена на Railway:

  1. В вашем поставщике DNS создайте подстановочный CNAME: *.yourchurch.org → <b1app railway target>.
  2. На Railway, на сервисе B1App → Параметры → Сетевая связь, добавьте *.yourchurch.org как пользовательский домен.
  3. На B1Admin сервисе установите REACT_APP_B1_WEBSITE_URL=https://{subdomain}.yourchurch.org.

После переразворачивания, сайт каждой церкви обслуживается на <their-subdomain>.yourchurch.org автоматически.

Информация

Подстановочные пользовательские домены требуют платный план Railway. Маршрутизация на основе пути работает на каждом плане и функционально идентична — просто менее красивая в адресной строке.

4. Онлайн пожертвования (Stripe / PayPal)

Пожертвования настраиваются в пределах админского пользовательского интерфейса для каждой церкви, не через переменные окружения — так каждая церковь может использовать свой собственный счет поставщика.

  1. Получите учетные данные разработчика из Stripe (Developers → API keys) или PayPal (My Apps & Credentials).
  2. В B1 Admin перейдите в Параметры → Параметры пожертвований.
  3. Выберите вашего поставщика, вставьте открытые и секретные ключи и настройте обработку комиссий.
  4. При необходимости добавьте GOOGLE_RECAPTCHA_SECRET_KEY на сервис Api в Railway для защиты форм публичных пожертвований от ботов.

5. Хранилище файлов

Шаблон подготавливает 1 GB постоянное хранилище, смонтированное на Api сервис для фотографий членов, файлов проповедей и загруженных документов.

Чтобы увеличить: откройте Api сервис → Хранилища → отрегулируйте ползунок размера.

Для больших развертываний (100+ GB или много одновременных загрузок) переключитесь на S3 установкой этих на Api сервис:

FILE_STORE=S3
AWS_S3_BUCKET=<ваше-ведро>
AWS_ACCESS_KEY_ID=<ключ>
AWS_SECRET_ACCESS_KEY=<секрет>
AWS_REGION=us-east-2

Существующие файлы в хранилище не мигрируют автоматически — скопируйте их в ведро перед переключением переменной.

6. Опциональные интеграции функций

Это разблокируют конкретные функции и могут быть добавлены позже через панель управления Railway. Установите их на сервис Api.

ПеременнаяФункция, которую она включает
OPENAI_API_KEY или OPENROUTER_API_KEYAI-ассистированный поиск и предложения контента
YOUTUBE_API_KEYYouTube поиск проповедей и встраивание
PEXELS_KEYПодборщик стоковых изображений для построителя веб-сайта
VIMEO_TOKENПоддержка проповедей Vimeo
API_BIBLE_KEYПоиск библейских стихов в уроках и контенте
YOUVERSION_API_KEYИнтеграция YouVersion Bible
WEB_PUSH_PUBLIC_KEY + WEB_PUSH_PRIVATE_KEYPush-уведомления браузера (генерируйте VAPID ключевую пару)
HUBSPOT_KEYОпциональная синхронизация CRM для новых регистраций

Обновление

Каждый сервис связан с соответствующим репо GitHub. Pushes на main на ChurchApps/Api, ChurchApps/B1Admin или ChurchApps/B1App запускают автоматические переразворачивания.

Чтобы закрепить конкретную версию, измените параметр Branch на каждом сервисе на тег или ветвь выпуска. Это рекомендуемая настройка для production — автоматическое развертывание из main означает, что вы наследуете любую незаконченную работу.

Стоимость

Реальные диапазоны для малой церкви (менее 200 членов, легкий трафик):

КомпонентПриблизительная ежемесячная стоимость
Railway основа$5
MySQL плагин$5 + ~$1 хранилище
3 веб-сервиса вычисления$3–10 объединенные
1 GB хранилище$0.25
Всего~$15–25/месяц

Стоимость масштабируется линейно с трафиком, загрузками фотографий и размером базы данных. Railway показывает использование в реальном времени на вкладке Использование проекта — установите там лимиты расходов, чтобы ограничить ваше воздействие.

Решение проблем

СимптомВероятная причинаИсправление
Сборка не получается с EBUSY: rmdir '/app/node_modules/.cache'Конфликт кэша NixpacksУстановите NIXPACKS_NO_CACHE=true на затронутом сервисе
Сборка не получается на B1Admin с Missing: @types/...Из синхронизации package-lock.jsonПотяните последний main
Api развертывание зависает на "Deploying"Проверка здоровья не получается — /health не возвращает 200Просмотрите логи развертывания; обычно отсутствует требуемая переменная окружения
B1Admin показывает "проверьте свою электронную почту", но электронное письмо не прибываетMAIL_SYSTEM=SMTP установлено, но учетные данные отсутствуют/неправильныеИсправьте учетные данные или отмените установку MAIL_SYSTEM, чтобы отключить электронную почту
Вход перенаправляет на api.churchapps.orgREACT_APP_STAGE is prodУстановите REACT_APP_STAGE=custom на сервис B1Admin
Поддомен церквей показывают все одно содержаниеREACT_APP_B1_WEBSITE_URL не включает токен {subdomain}Установите его на например https://{subdomain}.yourchurch.org
Пользовательский домен показывает "Application not found"DNS еще не распространен или Railway сертификат ожидаетПодождите 5 минут; проверьте DNS с dig admin.yourchurch.org

Если вы столкнетесь с чем-то, не в этом списке, откройте вопрос на github.com/ChurchApps/Api/issues с логами развертывания.

Связанные статьи