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