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