Configuration Reference
Configuration options and environment variables for Ignis applications.
Quick Reference
| Category | Purpose | Key Variables |
|---|---|---|
| Application | App identity and timezone | APP_ENV_APPLICATION_NAME, APP_ENV_APPLICATION_TIMEZONE |
| Server | HTTP server settings | APP_ENV_SERVER_HOST, APP_ENV_SERVER_PORT |
| Database | PostgreSQL connection | APP_ENV_POSTGRES_HOST, APP_ENV_POSTGRES_DATABASE |
| Authentication | JWT tokens and secrets | APP_ENV_JWT_SECRET, APP_ENV_APPLICATION_SECRET |
| Logging | Log file paths and transports | APP_ENV_LOGGER_FOLDER_PATH |
| Storage | MinIO/S3 file storage | APP_ENV_MINIO_HOST, APP_ENV_MINIO_ACCESS_KEY |
| SMTP email sending | APP_ENV_MAIL_HOST, APP_ENV_MAIL_USER |
Environment Variable Prefix
Ignis uses the APP_ENV_ prefix to avoid conflicts with system variables:
bash
# ✅ Ignis variables
APP_ENV_POSTGRES_HOST=localhost
# ❌ Might conflict with system
POSTGRES_HOST=localhostQuick Start
Create a .env file in your project root:
bash
# .env
APP_ENV_APPLICATION_NAME=my-app
APP_ENV_SERVER_HOST=0.0.0.0
APP_ENV_SERVER_PORT=3000
APP_ENV_POSTGRES_HOST=localhost
APP_ENV_POSTGRES_DATABASE=my_databaseWhat's in This Section
- Environment Variables - Complete reference of all
APP_ENV_*variables
Configuration Patterns
1. Accessing Variables
typescript
// 1. Direct access
const host = process.env.APP_ENV_POSTGRES_HOST;
// 2. Using helper (recommended)
import { applicationEnvironment } from '@venizia/ignis-helpers';
import { EnvironmentKeys } from '@venizia/ignis';
const host = applicationEnvironment.get<string>(EnvironmentKeys.APP_ENV_POSTGRES_HOST);2. Environment Files
project/
├── .env # Default (development)
├── .env.local # Local overrides (gitignored)
├── .env.production # Production values
└── .env.example # Template (committed)3. Validation on Startup
Ignis validates required variables on startup. Missing values cause clear error messages.
Related: Environment Variables Reference | DataSources Guide
EnvironmentKeys Class
typescript
import { EnvironmentKeys } from '@venizia/ignis';| Constant | Description |
|---|---|
APP_ENV_APPLICATION_NAME | Application display name |
APP_ENV_APPLICATION_TIMEZONE | Application timezone (e.g., 'Asia/Ho_Chi_Minh') |
APP_ENV_APPLICATION_SECRET | Application-wide secret key |
APP_ENV_JWT_SECRET | JWT signing secret |
APP_ENV_JWT_EXPIRES_IN | JWT token expiration |
APP_ENV_LOGGER_FOLDER_PATH | Log file output directory |
APP_ENV_APPLICATION_ROLES | Application role definitions |
APP_ENV_APPLICATION_DS_MIGRATION | DataSource name for migrations |
APP_ENV_APPLICATION_DS_AUTHORIZE | DataSource name for authorization |
APP_ENV_APPLICATION_DS_OAUTH2 | DataSource name for OAuth2 |
APP_ENV_OAUTH2_VIEW_FOLDER | OAuth2 view templates folder |
APP_ENV_SERVER_HOST | HTTP server host (e.g., '0.0.0.0') |
APP_ENV_SERVER_PORT | HTTP server port (e.g., 3000) |
APP_ENV_SERVER_BASE_PATH | Base URL path prefix |
APP_ENV_DATASOURCE_NAME | Default datasource name |
APP_ENV_POSTGRES_HOST | PostgreSQL host |
APP_ENV_POSTGRES_PORT | PostgreSQL port |
APP_ENV_POSTGRES_USERNAME | PostgreSQL username |
APP_ENV_POSTGRES_PASSWORD | PostgreSQL password |
APP_ENV_POSTGRES_DATABASE | PostgreSQL database name |
Usage:
typescript
import { applicationEnvironment } from '@venizia/ignis-helpers';
import { EnvironmentKeys } from '@venizia/ignis';
const dbHost = applicationEnvironment.get<string>(EnvironmentKeys.APP_ENV_POSTGRES_HOST);