Saltar al contenido principal

Variables de Entorno

Cada proyecto de ChurchApps utiliza un archivo .env para configuración local. Cada proyecto incluye un archivo de muestra que copia y personaliza. Esta página cubre las variables de entorno para APIs, aplicaciones web y aplicaciones móviles, incluyendo cómo elegir entre objetivos de API de preparación o local.

Antes de Comenzar

Patrón General

  1. Busque dotenv.sample.txt o .env.sample en la raíz del proyecto.
  2. Cópielo a .env.
  3. Edite los valores según sea necesario.
# Ejemplo para un proyecto con .env.sample
cp .env.sample .env

# Ejemplo para un proyecto con dotenv.sample.txt
cp dotenv.sample.txt .env
aviso

Nunca confirme archivos .env al control de versiones. Contienen secretos como credenciales de base de datos, claves de API y secretos JWT. Todos los proyectos de ChurchApps incluyen .env en .gitignore, pero siempre verifique dos veces antes de confirmar.

Elegir un Objetivo de API

La decisión más importante es dónde apunta su frontend para llamadas de API. Hay dos opciones:

Opción 1: APIs de Preparación (Recomendado para Desarrollo Frontend)

Utilice el entorno de preparación compartido. No se requiere configuración local de API o base de datos.

# Patrón de URL base
https://api.staging.churchapps.org/{module}

# URLs de módulo de ejemplo
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

Opción 2: API Local

Ejecute el proyecto de API en su máquina. Requiere MySQL 8.0+ con bases de datos creadas para cada módulo. Ver la guía configuración local de API.

# Patrón de URL base
http://localhost:8084/{module}

# URLs de módulo de ejemplo
http://localhost:8084/membership
http://localhost:8084/attendance
http://localhost:8084/content
http://localhost:8084/giving
http://localhost:8084/messaging
http://localhost:8084/doing

Variables de Entorno de API

El proyecto Api central (.env.sample) tiene la configuración más importante. Aquí hay variables clave:

Configuración Compartida

VariableDescripciónEjemplo
ENVIRONMENTEntorno de tiempo de ejecucióndev
SERVER_PORTPuerto HTTP para servidor de desarrollo local8084
ENCRYPTION_KEYClave de encriptación de 192 bits para datos sensiblesaSecretKeyOfExactly192BitsLength
JWT_SECRETSecreto para firmar Tokens Web JSONjwt-secret-dev
FILE_STOREDónde almacenar archivos cargados (disk o s3)disk
CORS_ORIGINOrígenes CORS permitidos (* para desarrollo local)*

Conexiones de Base de Datos

Cada módulo de API tiene su propia base de datos MySQL y cadena de conexión:

VariableBase de Datos
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
tip

Actualice root:password con sus credenciales reales de MySQL. Cada base de datos debe crearse antes de ejecutar la API. Use npm run initdb para crear el esquema para todos los módulos, o npm run initdb:membership para un módulo único.

Configuración de WebSocket

VariableDescripciónEjemplo
SOCKET_PORTPuerto para servidor de WebSocket8087
SOCKET_URLURL de WebSocket para que los clientes se conectenws://localhost:8087

Variables de Entorno de Aplicación Web

B1Admin (React + Vite)

Archivo de muestra: .env.sample

VariableDescripciónEjemplo (Preparación)
REACT_APP_STAGENombre de entornodemo
PORTPuerto del servidor de desarrollo3101
REACT_APP_MEMBERSHIP_APIURL de API de membresíahttps://api.staging.churchapps.org/membership
REACT_APP_ATTENDANCE_APIURL de API de asistenciahttps://api.staging.churchapps.org/attendance
REACT_APP_GIVING_APIURL de API de donacioneshttps://api.staging.churchapps.org/giving
REACT_APP_CONTENT_ROOTURL de entrega de contenidohttps://content.staging.churchapps.org
REACT_APP_GOOGLE_ANALYTICSID de Google Analytics (opcional)UA-123456789-1

Para desarrollo local de API, descomente y utilice las variantes 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)

Archivo de muestra: .env.sample

VariableDescripciónEjemplo (Preparación)
NEXT_PUBLIC_MEMBERSHIP_APIURL de API de membresíahttps://api.staging.churchapps.org/membership
NEXT_PUBLIC_ATTENDANCE_APIURL de API de asistenciahttps://api.staging.churchapps.org/attendance
NEXT_PUBLIC_GIVING_APIURL de API de donacioneshttps://api.staging.churchapps.org/giving
NEXT_PUBLIC_MESSAGING_APIURL de API de mensajeríahttps://api.staging.churchapps.org/messaging
NEXT_PUBLIC_CONTENT_APIURL de API de contenidohttps://api.staging.churchapps.org/content
NEXT_PUBLIC_CONTENT_ROOTURL de entrega de contenidohttps://staging.churchapps.org/content
NEXT_PUBLIC_CHURCH_APPS_URLURL base de ChurchAppshttps://staging.churchapps.org
NEXT_PUBLIC_GOOGLE_ANALYTICSID de Google Analytics (opcional)UA-123456789-1
info

Next.js requiere el prefijo NEXT_PUBLIC_ para cualquier variable de entorno que deba estar disponible en el navegador. Las variables solo de servidor no necesitan este prefijo.

LessonsApp (Next.js)

Archivo de muestra: dotenv.sample.txt

VariableDescripciónEjemplo (Preparación)
STAGEEtapa de entornostaging
NEXT_PUBLIC_LESSONS_APIURL de API de leccioneshttps://api.staging.lessons.church
NEXT_PUBLIC_CONTENT_ROOTURL de entrega de contenidohttps://api.staging.lessons.church/content
NEXT_PUBLIC_CHURCH_APPS_URLURL base de ChurchAppshttps://staging.churchapps.org

Variables de Entorno de Aplicación Móvil

B1Mobile (React Native / Expo)

Archivo de muestra: dotenv.sample.txt

VariableDescripciónEjemplo (Preparación)
STAGENombre de entornodev
MEMBERSHIP_APIURL de API de membresíahttps://api.staging.churchapps.org/membership
MESSAGING_APIURL de API de mensajeríahttps://api.staging.churchapps.org/messaging
ATTENDANCE_APIURL de API de asistenciahttps://api.staging.churchapps.org/attendance
GIVING_APIURL de API de donacioneshttps://api.staging.churchapps.org/giving
DOING_APIURL de API de tareashttps://api.staging.churchapps.org/doing
CONTENT_APIURL de API de contenidohttps://api.churchapps.org/content
CONTENT_ROOTURL de entrega de contenidohttps://content.staging.churchapps.org
LESSONS_ROOTURL del sitio de leccioneshttps://staging.lessons.church
info

Las aplicaciones móviles no utilizan el prefijo REACT_APP_ o NEXT_PUBLIC_. El acceso a variables de entorno se maneja mediante la configuración de Expo.


Referencia Rápida: Ubicaciones de Archivo de Muestra

ProyectoArchivo de Muestra
Api.env.sample
B1Admin.env.sample
B1App.env.sample
B1Mobiledotenv.sample.txt
B1Checkindotenv.sample.txt
LessonsAppdotenv.sample.txt
AskApidotenv.sample.txt