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

Переменные окружения

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

Перед началом работы

Общий паттерн

  1. Найдите dotenv.sample.txt или .env.sample в корне проекта.
  2. Скопируйте его в .env.
  3. Отредактируйте значения по необходимости.
# Пример для проекта с .env.sample
cp .env.sample .env

# Пример для проекта с dotenv.sample.txt
cp dotenv.sample.txt .env
Предупреждение

Никогда не коммитьте файлы .env в систему контроля версий. Они содержат секреты, такие как учётные данные базы данных, API-ключи и JWT-секреты. Все проекты ChurchApps включают .env в .gitignore, но всегда перепроверяйте перед коммитом.

Выбор цели API

Самое важное решение -- куда ваш фронтенд направляет API-вызовы. Есть два варианта:

Вариант 1: Staging API (рекомендуется для фронтенд-разработки)

Используйте общую staging-среду. Локальная настройка API или базы данных не требуется.

# Шаблон базового URL
https://api.staging.churchapps.org/{module}

# Примеры URL модулей
https://api.staging.churchapps.org/membership
https://api.staging.churchapps.org/attendance
https://api.staging.churchapps.org/content
https://api.staging.churchapps.org/giving
https://api.staging.churchapps.org/messaging
https://api.staging.churchapps.org/doing

Вариант 2: Локальный API

Запустите проект Api на своей машине. Требуется MySQL 8.0+ с базами данных, созданными для каждого модуля. См. руководство по локальной настройке API.

# Шаблон базового URL
http://localhost:8084/{module}

# Примеры URL модулей
http://localhost:8084/membership
http://localhost:8084/attendance
http://localhost:8084/content
http://localhost:8084/giving
http://localhost:8084/messaging
http://localhost:8084/doing

Переменные окружения API

Основной проект Api (.env.sample) имеет наибольшее количество настроек. Вот ключевые переменные:

Общие настройки

ПеременнаяОписаниеПример
ENVIRONMENTСреда выполненияdev
SERVER_PORTHTTP-порт для локального сервера разработки8084
ENCRYPTION_KEY192-битный ключ шифрования для конфиденциальных данныхaSecretKeyOfExactly192BitsLength
JWT_SECRETСекрет для подписи JSON Web Tokensjwt-secret-dev
FILE_STOREГде хранить загруженные файлы (disk или s3)disk
CORS_ORIGINРазрешённые CORS-источники (* для локальной разработки)*

Подключения к базам данных

Каждый модуль API имеет собственную базу данных MySQL и строку подключения:

ПеременнаяБаза данных
MEMBERSHIP_CONNECTION_STRINGmysql://root:password@localhost:3306/membership
ATTENDANCE_CONNECTION_STRINGmysql://root:password@localhost:3306/attendance
CONTENT_CONNECTION_STRINGmysql://root:password@localhost:3306/content
GIVING_CONNECTION_STRINGmysql://root:password@localhost:3306/giving
MESSAGING_CONNECTION_STRINGmysql://root:password@localhost:3306/messaging
DOING_CONNECTION_STRINGmysql://root:password@localhost:3306/doing
Совет

Замените root:password на ваши реальные учётные данные MySQL. Каждая база данных должна быть создана перед запуском API. Используйте npm run initdb для создания схемы всех модулей или npm run initdb:membership для отдельного модуля.

Настройки WebSocket

ПеременнаяОписаниеПример
SOCKET_PORTПорт для WebSocket-сервера8087
SOCKET_URLURL WebSocket для подключения клиентовws://localhost:8087

Переменные окружения веб-приложений

B1Admin (React + Vite)

Файл-образец: .env.sample

ПеременнаяОписаниеПример (Staging)
REACT_APP_STAGEНазвание окруженияdemo
PORTПорт сервера разработки3101
REACT_APP_MEMBERSHIP_APIURL API Membershiphttps://api.staging.churchapps.org/membership
REACT_APP_ATTENDANCE_APIURL API Attendancehttps://api.staging.churchapps.org/attendance
REACT_APP_GIVING_APIURL API Givinghttps://api.staging.churchapps.org/giving
REACT_APP_CONTENT_ROOTURL доставки контентаhttps://content.staging.churchapps.org
REACT_APP_GOOGLE_ANALYTICSID Google Analytics (необязательно)UA-123456789-1

Для локальной разработки API раскомментируйте и используйте варианты с localhost:

REACT_APP_MEMBERSHIP_API=http://localhost:8084/membership
REACT_APP_ATTENDANCE_API=http://localhost:8084/attendance
REACT_APP_GIVING_API=http://localhost:8084/giving
REACT_APP_CONTENT_API=http://localhost:8084/content
REACT_APP_DOING_API=http://localhost:8084/doing
REACT_APP_MESSAGING_API=http://localhost:8084/messaging

B1App (Next.js)

Файл-образец: .env.sample

ПеременнаяОписаниеПример (Staging)
NEXT_PUBLIC_MEMBERSHIP_APIURL API Membershiphttps://api.staging.churchapps.org/membership
NEXT_PUBLIC_ATTENDANCE_APIURL API Attendancehttps://api.staging.churchapps.org/attendance
NEXT_PUBLIC_GIVING_APIURL API Givinghttps://api.staging.churchapps.org/giving
NEXT_PUBLIC_MESSAGING_APIURL API Messaginghttps://api.staging.churchapps.org/messaging
NEXT_PUBLIC_CONTENT_APIURL API Contenthttps://api.staging.churchapps.org/content
NEXT_PUBLIC_CONTENT_ROOTURL доставки контентаhttps://staging.churchapps.org/content
NEXT_PUBLIC_CHURCH_APPS_URLБазовый URL ChurchAppshttps://staging.churchapps.org
NEXT_PUBLIC_GOOGLE_ANALYTICSID Google Analytics (необязательно)UA-123456789-1
Информация

Next.js требует префикс NEXT_PUBLIC_ для любой переменной окружения, которая должна быть доступна в браузере. Серверные переменные не нуждаются в этом префиксе.

LessonsApp (Next.js)

Файл-образец: dotenv.sample.txt

ПеременнаяОписаниеПример (Staging)
STAGEСтадия окруженияstaging
NEXT_PUBLIC_LESSONS_APIURL API уроковhttps://api.staging.lessons.church
NEXT_PUBLIC_CONTENT_ROOTURL доставки контентаhttps://api.staging.lessons.church/content
NEXT_PUBLIC_CHURCH_APPS_URLБазовый URL ChurchAppshttps://staging.churchapps.org

Переменные окружения мобильных приложений

B1Mobile (React Native / Expo)

Файл-образец: dotenv.sample.txt

ПеременнаяОписаниеПример (Staging)
STAGEНазвание окруженияdev
MEMBERSHIP_APIURL API Membershiphttps://api.staging.churchapps.org/membership
MESSAGING_APIURL API Messaginghttps://api.staging.churchapps.org/messaging
ATTENDANCE_APIURL API Attendancehttps://api.staging.churchapps.org/attendance
GIVING_APIURL API Givinghttps://api.staging.churchapps.org/giving
DOING_APIURL API Doinghttps://api.staging.churchapps.org/doing
CONTENT_APIURL API Contenthttps://api.churchapps.org/content
CONTENT_ROOTURL доставки контентаhttps://content.staging.churchapps.org
LESSONS_ROOTURL сайта уроковhttps://staging.lessons.church
Информация

Мобильные приложения не используют префикс REACT_APP_ или NEXT_PUBLIC_. Доступ к переменным окружения обрабатывается конфигурацией Expo.


Краткий справочник: расположение файлов-образцов

ПроектФайл-образец
Api.env.sample
B1Admin.env.sample
B1App.env.sample
B1Mobiledotenv.sample.txt
B1Checkindotenv.sample.txt
LessonsAppdotenv.sample.txt
AskApidotenv.sample.txt