Configuration
Ever Gauzy is configured through environment variables defined in .env files. This guide documents all available configuration options.
Configuration Files
| File | Purpose | Committed to Git? |
|---|---|---|
.env.sample | Template with all available variables and documentation | ✅ Yes |
.env | Your local overrides (create by copying .env.sample) | ❌ No (gitignored) |
.env.local | Local development defaults (used by yarn start) | ✅ Yes |
.env.compose | Docker Compose production settings | ✅ Yes |
.env.demo.compose | Docker Compose demo settings | ✅ Yes |
.env.docker | Docker build settings | ✅ Yes |
warning
Never put secret keys, passwords, or API credentials in files that are committed to Git. Only .env (gitignored) should contain secrets.
How Configuration Works
- Backend (NestJS): Reads
.envdirectly viadotenv - Frontend (Angular): Environment files (
environment.ts/environment.prod.ts) are auto-generated from.envby the.scripts/configure.tsscript on first run - Desktop Apps: Read environment variables and also support GUI-based configuration via Setup Wizard
ملاحظة
Never edit auto-generated environment.ts files directly. Always modify .env files instead.
Core Settings
Application
APP_NAME="Gauzy" # Application display name
APP_LOGO="http://localhost:4200/assets/images/logos/logo_Gauzy.png"
APP_SIGNATURE="Gauzy" # Email signature
APP_LINK="http://localhost:4200" # Main application URL
URLs
API_BASE_URL=http://localhost:3000 # Backend API URL
CLIENT_BASE_URL=http://localhost:4200 # Frontend UI URL
PLATFORM_WEBSITE_URL=https://gauzy.co # Marketing website
PLATFORM_WEBSITE_DOWNLOAD_URL=https://gauzy.co/downloads
Mode Flags
DEMO=false # Enable demo mode (resets data periodically)
IS_DOCKER=false # Set true when running inside Docker
ALLOW_SUPER_ADMIN_ROLE=true # Allow creating Super Admin users
Database Configuration
ORM Selection
DB_ORM=typeorm # Options: typeorm | mikro-orm
Database Type
DB_TYPE=better-sqlite3 # Options: sqlite | better-sqlite3 | postgres | mysql
Connection Parameters
DB_HOST=localhost # Database host
DB_PORT=5432 # Default: 5432 (PostgreSQL), 3306 (MySQL)
DB_NAME=gauzy # Database name
DB_USER=postgres # Database username
DB_PASS=root # Database password
Advanced Database Settings
DB_LOGGING=all # Query logging level
DB_POOL_SIZE=40 # Connection pool size (TypeORM/MikroORM)
DB_POOL_SIZE_KNEX=10 # Connection pool size (Knex)
DB_CONNECTION_TIMEOUT=5000 # Connection timeout (ms)
DB_IDLE_TIMEOUT=10000 # Idle connection timeout (ms)
DB_SLOW_QUERY_LOGGING_TIMEOUT=10000 # Slow query threshold (ms)
DB_SSL_MODE=false # Enable SSL for DB connection
DB_CA_CERT= # Base64-encoded SSL CA certificate
Redis
REDIS_ENABLED=false
REDIS_URL=redis://localhost:6379 # Full Redis URL
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_USER=
REDIS_PASSWORD=
REDIS_TLS=false
تلميح
Redis is required for distributed caching in production, Jitsu integration, and MCP Server session management. Without Redis, Gauzy falls back to in-memory caching.
Authentication
JWT Configuration
JWT_SECRET=secretKey # Access token secret (CHANGE IN PRODUCTION!)
JWT_TOKEN_EXPIRATION_TIME=86400 # Access token TTL in seconds (24h)
JWT_REFRESH_TOKEN_SECRET=refreshSecretKey # Refresh token secret (CHANGE IN PRODUCTION!)
JWT_REFRESH_TOKEN_EXPIRATION_TIME=86400 # Refresh token TTL in seconds (24h)
JWT_VERIFICATION_TOKEN_SECRET=verificationSecretKey # Email verification token secret
JWT_VERIFICATION_TOKEN_EXPIRATION_TIME=86400
Passwordless Authentication
MAGIC_CODE_EXPIRATION_TIME=600 # Magic sign-in code TTL in seconds (10 min)
Session
EXPRESS_SESSION_SECRET=gauzy # Express session secret
Social OAuth Providers
# Google
GOOGLE_CLIENT_ID=XXXXXXX
GOOGLE_CLIENT_SECRET=XXXXXXX
GOOGLE_CALLBACK_URL=http://localhost:3000/api/auth/google/callback
# GitHub
GAUZY_GITHUB_OAUTH_CLIENT_ID=XXXXXXX
GAUZY_GITHUB_OAUTH_CLIENT_SECRET=XXXXXXX
GAUZY_GITHUB_OAUTH_CALLBACK_URL=http://localhost:3000/api/auth/github/callback
# Facebook
FACEBOOK_CLIENT_ID=XXXXXXX
FACEBOOK_CLIENT_SECRET=XXXXXXX
FACEBOOK_CALLBACK_URL=http://localhost:3000/api/auth/facebook/callback
FACEBOOK_GRAPH_VERSION=v3.0
# Twitter
TWITTER_CLIENT_ID=XXXXXXX
TWITTER_CLIENT_SECRET=XXXXXXX
TWITTER_CALLBACK_URL=http://localhost:3000/api/auth/twitter/callback
# LinkedIn
LINKEDIN_CLIENT_ID=XXXXXXX
LINKEDIN_CLIENT_SECRET=XXXXXXX
LINKEDIN_CALLBACK_URL=http://localhost:3000/api/auth/linkedin/callback
# Microsoft
MICROSOFT_CLIENT_ID=XXXXXXX
MICROSOFT_CLIENT_SECRET=XXXXXXX
MICROSOFT_CALLBACK_URL=http://localhost:3000/api/auth/microsoft/callback
MICROSOFT_GRAPH_API_URL=https://graph.microsoft.com/v1.0
# Keycloak
KEYCLOAK_CLIENT_ID=XXXXXXX
KEYCLOAK_CLIENT_SECRET=XXXXXXX
KEYCLOAK_REALM=
KEYCLOAK_AUTH_SERVER_URL=https://keycloak.example.com/auth
KEYCLOAK_CALLBACK_URL=http://localhost:3000/api/auth/keycloak/callback
# Auth0
AUTH0_CLIENT_ID=XXXXXXX
AUTH0_CLIENT_SECRET=XXXXXXX
AUTH0_DOMAIN=XXXXXXX
Feature Flags for Auth Methods
FEATURE_EMAIL_PASSWORD_LOGIN=true
FEATURE_MAGIC_LOGIN=true
FEATURE_GITHUB_LOGIN=true
FEATURE_FACEBOOK_LOGIN=true
FEATURE_GOOGLE_LOGIN=true
FEATURE_TWITTER_LOGIN=true
FEATURE_MICROSOFT_LOGIN=true
FEATURE_LINKEDIN_LOGIN=true
File Storage
FILE_PROVIDER=LOCAL # Options: LOCAL | S3 | WASABI | CLOUDINARY
AWS S3
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=us-east-1
AWS_S3_BUCKET=gauzy
Wasabi
WASABI_ACCESS_KEY_ID=
WASABI_SECRET_ACCESS_KEY=
WASABI_REGION=us-east-1
WASABI_SERVICE_URL=https://s3.wasabisys.com
WASABI_S3_BUCKET=gauzy
WASABI_S3_FORCE_PATH_STYLE=true