Skip to main content

Environment variables

This is a complete reference of all environment variables used to configure Synjar. Generated automatically from the .env.example file.

Quick start​

Copy the example file and edit it:

cp .env.example .env

Then edit the values according to your environment.


REQUIRED​

Database connection (local development with docker​

VariableDefaultRequiredDescription
DATABASE_URLpostgresql://postgres:postgres...Yes-
JWT_SECRETdev-jwt-secret-change-in-produ...YesJWT configuration (change in production!)
JWT_EXPIRES_IN15mYes-

DATABASE_URL​

Default: postgresql://postgres:postgres@localhost:6205/synjar_dev?schema=public


JWT_SECRET​

JWT configuration (change in production!)

Default: dev-jwt-secret-change-in-production-min-32-chars-required


JWT_EXPIRES_IN​

Default: 15m


REQUIRED​

OpenAI API (required for embeddings)​

VariableDefaultRequiredDescription
OPENAI_API_KEYsk-proj-your-key-hereYesGet your key: https://platform.openai.com/api-keys
OPENAI_ORG_IDorg-your-org-hereYes-
B2_KEY_IDminioadminYesS3-Compatible Storage LOCAL DEV with MinIO (docker-compose.dev.yml - works out-of-box!) MinIO Console: http://localhost:6206 (minioadmin/minioadmin)
B2_APPLICATION_KEYminioadminYes-
B2_BUCKET_NAMEsynjar-devYes-
B2_ENDPOINThttp://localhost:6204Yes-

OPENAI_API_KEY​

Get your key: https://platform.openai.com/api-keys

Default: sk-proj-your-key-here


OPENAI_ORG_ID​

Default: org-your-org-here


B2_KEY_ID​

S3-Compatible Storage LOCAL DEV with MinIO (docker-compose.dev.yml - works out-of-box!) MinIO Console: http://localhost:6206 (minioadmin/minioadmin)

Default: minioadmin


B2_APPLICATION_KEY​

Default: minioadmin


B2_BUCKET_NAME​

Default: synjar-dev


B2_ENDPOINT​

Default: http://localhost:6204


APPLICATION SETTINGS​

Server​

VariableDefaultRequiredDescription
PORT6200Yes-
NODE_ENVdevelopmentYes-
CORS_ORIGINShttp://localhost:6200,http://l...Yes-
MAX_FILE_SIZE_MB50YesLimits
MAX_STORAGE_GB1Yes-
MAX_DOCUMENTS1000Yes-

PORT​

Default: 6200


NODE_ENV​

Default: development


CORS_ORIGINS​

Default: http://localhost:6200,http://localhost:6210,http://localhost:5173


MAX_FILE_SIZE_MB​

Limits

Default: 50


MAX_STORAGE_GB​

Default: 1


MAX_DOCUMENTS​

Default: 1000


ENTERPRISE FEATURES (optional)​

Set to 'true' to enable enterprise modules (@synjar/enterprise)​

VariableDefaultRequiredDescription
ENABLE_ENTERPRISEfalseYes-

ENABLE_ENTERPRISE​

Default: false


DUAL​

Deployment Mode​

VariableDefaultRequiredDescription
DEPLOYMENT_MODEself-hostedYes- 'cloud': Multi-tenant SaaS with email verification required - 'self-hosted': Single-tenant, first user = admin, invitation-only Leave uncommented for local development (works out-of-box with Mailpit)
EMAIL_VERIFICATION_URLhttp://localhost:6210/auth/ver...YesEmail Verification URL (Frontend) Used in verification emails - points to your frontend verify page
ADMIN_EMAILadmin@yourcompany.comYesAdmin Contact (Self-Hosted Mode) Email shown to blocked users when registration is disabled

DEPLOYMENT_MODE​

  • 'cloud': Multi-tenant SaaS with email verification required - 'self-hosted': Single-tenant, first user = admin, invitation-only Leave uncommented for local development (works out-of-box with Mailpit)

Default: self-hosted


EMAIL_VERIFICATION_URL​

Email Verification URL (Frontend) Used in verification emails - points to your frontend verify page

Default: http://localhost:6210/auth/verify


ADMIN_EMAIL​

Admin Contact (Self-Hosted Mode) Email shown to blocked users when registration is disabled

Default: admin@yourcompany.com


EMAIL CONFIGURATION​

Local Development (with docker​

VariableDefaultRequiredDescription
SMTP_HOSTlocalhostYesThese settings work out-of-box with Mailpit - no changes needed! View emails at: http://localhost:6203
SMTP_PORT6202Yes-
SMTP_SECUREfalseYes-
SMTP_FROM_EMAILnoreply@synjar.localYes-
SMTP_FROM_NAMESynjar DevYes-

SMTP_HOST​

These settings work out-of-box with Mailpit - no changes needed! View emails at: http://localhost:6203

Default: localhost


SMTP_PORT​

Default: 6202


SMTP_SECURE​

Default: false


SMTP_FROM_EMAIL​

Default: noreply@synjar.local


SMTP_FROM_NAME​

Default: Synjar Dev


SECURITY​

Rate limits per TTL window​

VariableDefaultRequiredDescription
THROTTLE_LIMIT_REGISTER3 # 3 registration attempts...Yes-
THROTTLE_LIMIT_LOGIN5 # 5 login attempts per...Yes-
THROTTLE_LIMIT_RESEND1 # 1 resend verification...Yes-
GRACE_PERIOD_MINUTES15YesGrace Period (Cloud Mode Only) Time in minutes that new unverified users can explore the platform

THROTTLE_LIMIT_REGISTER​

Default: 3 # 3 registration attempts per minute


THROTTLE_LIMIT_LOGIN​

Default: 5 # 5 login attempts per minute


THROTTLE_LIMIT_RESEND​

Default: 1 # 1 resend verification per minute


GRACE_PERIOD_MINUTES​

Grace Period (Cloud Mode Only) Time in minutes that new unverified users can explore the platform

Default: 15


CLOUD MODE​

Uncomment to enable Cloud mode with Stripe billing​

BACKUP SYSTEM (sysadmin only)​

Generate with: openssl rand​

VariableDefaultRequiredDescription
BACKUP_RETENTION_DAYS30YesRetention policy (days)

BACKUP_RETENTION_DAYS​

Retention policy (days)

Default: 30


See also​