Español
Instalación
Variables de entorno

Variables de entorno

Cada servicio recibe solo lo que usa. Web nunca recibe credenciales de base de datos ni claves de proveedores.

API

NODE_ENV=production
API_HOST=0.0.0.0
API_PORT=3001
API_PUBLIC_ORIGIN=https://api.zapisocial.com
WEB_ORIGIN=https://app.zapisocial.com
DATABASE_URL=postgresql://USUARIO:CLAVE@HOST:5432/zapi_v2
JWT_ACCESS_SECRET=UN_SECRETO_LARGO
COOKIE_SECURE=true
COOKIE_DOMAIN=.zapisocial.com
REDIS_HOST=HOST_REDIS
REDIS_PORT=6379
REDIS_USERNAME=default
REDIS_PASSWORD=CLAVE_REDIS
PROVIDER_INTEGRATIONS_ENCRYPTION_KEY=CLAVE_BASE64_DE_32_BYTES
FILES_STORAGE_PATH=/var/lib/zapi/files
LOG_LEVEL=info
VariablePara qué sirve
API_PUBLIC_ORIGINDominio al que vuelven los callbacks OAuth. Debe ser HTTPS público.
WEB_ORIGINÚnico origen que CORS acepta con cookies.
COOKIE_DOMAINComparte la sesión entre el apex y app.. Sin él, los botones «Ir al panel» del sitio público no detectan la sesión.
PROVIDER_INTEGRATIONS_ENCRYPTION_KEYCifra los tokens OAuth y las claves de proveedores guardadas en la base.
🚫

PROVIDER_INTEGRATIONS_ENCRYPTION_KEY debe mantenerse estable y ser idéntica en API y Worker. Si la cambias, dejan de poder descifrarse los canales ya conectados.

Worker

NODE_ENV=production
DATABASE_URL=postgresql://USUARIO:CLAVE@HOST:5432/zapi_v2
REDIS_HOST=HOST_REDIS
REDIS_PORT=6379
REDIS_USERNAME=default
REDIS_PASSWORD=CLAVE_REDIS
PROVIDER_INTEGRATIONS_ENCRYPTION_KEY=LA_MISMA_QUE_LA_API
FILES_STORAGE_PATH=/var/lib/zapi/files
API_PUBLIC_ORIGIN=https://api.zapisocial.com
LOG_LEVEL=info

El Worker no recibe JWT_ACCESS_SECRET, ni WEB_ORIGIN, ni dominio público. Necesita API_PUBLIC_ORIGIN porque Instagram exige una URL HTTPS temporal para recoger la media.

Web

NODE_ENV=production
INTERNAL_API_ORIGIN=https://api.zapisocial.com
PORTAL_HOST=app.zapisocial.com
VariablePara qué sirve
INTERNAL_API_ORIGINCómo llega Web a la API. Debe estar disponible en build y en ejecución.
PORTAL_HOSTNombre de host, sin esquema ni puerto, que entra al panel. En ese host la raíz lleva al Portal; en el resto, al sitio público.
⚠️

Si olvidas PORTAL_HOST no falla nada visible: simplemente app.zapisocial.com empieza a mostrar el sitio público en vez de llevar al panel.

Web no recibe: DATABASE_URL, REDIS_*, JWT_ACCESS_SECRET, COOKIE_SECURE ni PROVIDER_INTEGRATIONS_ENCRYPTION_KEY.

Opcionales

VariableServicioPara qué
UNSPLASH_ACCESS_KEYAPIBuscar imágenes de Unsplash desde la biblioteca.
DEMO_MODEWebMuestra un aviso de demostración. Útil para una instancia de prueba.

Lo que no va en variables

Meta, WhatsApp, Google Drive, Pexels, Polar, OpenAI y AtlasCloud no se configuran con variables de entorno. Se configuran desde Admin y se guardan cifrados en la base. Así el comprador no necesita redesplegar para cambiar una clave.