Files
jobtrackingapp/.env.example
T

121 lines
4.2 KiB
Bash

# Copy to .env beside docker-compose.yml. Never commit real secret values.
# Full descriptions: docs/configuration/environment-variables.md
# =============================================================================
# DATABASE
# =============================================================================
DATABASE_PROVIDER=sqlite
# Required for mariadb/mysql; ignored for sqlite.
JOBTRACKER_CONNECTION_STRING=
# =============================================================================
# AUTHENTICATION, IDENTITY, BILLING
# =============================================================================
AUTH_JWT_KEY=
AUTH_ADMIN_EMAIL=admin@example.com
AUTH_ADMIN_PASSWORD=
AUTH_ALLOW_REGISTRATION=false
AUTH_REQUIRE_EMAIL_VERIFICATION=true
ACCOUNT_DELETION_ENABLED=false
TURNSTILE_SITE_KEY=
TURNSTILE_SECRET_KEY=
STRIPE_SECRET_KEY=
STRIPE_PRICE_PREMIUM=
STRIPE_WEBHOOK_SECRET=
AUTH_GOOGLE_CLIENT_ID=
AUTH_MICROSOFT_CLIENT_ID=
AUTH_MICROSOFT_TENANT=common
# =============================================================================
# MAIL PROVIDER CONNECTIONS
# =============================================================================
GOOGLE_GMAIL_CLIENT_SECRET=
MICROSOFT_CLIENT_ID=
MICROSOFT_CLIENT_SECRET=
MICROSOFT_TENANT_ID=
# =============================================================================
# AI SERVICE AND PROVIDERS
# =============================================================================
AI_SERVICE_BASE_URL=http://ai-service:8001
# Required for protected backend -> AI service calls.
AI_SERVICE_TOKEN=
OLLAMA_BASE_URL=http://ollama:11434
OLLAMA_MODEL=qwen2.5:7b
AI_PROVIDER=ollama
EXTERNAL_AI_ENABLED=false
AI_ROUTING_MODE=local_first
EXTERNAL_AI_ALLOWED_TASKS=cv-normalize,cv-classify,cv-rewrite
EXTERNAL_AI_MAX_PROMPT_CHARS=24000
LOCAL_AI_CIRCUIT_FAILURE_THRESHOLD=3
LOCAL_AI_CIRCUIT_OPEN_SECONDS=30
PARSER_TIMEOUT_SECONDS=25
PARSER_CPU_SECONDS=20
PARSER_MEMORY_MIB=512
PARSER_STALE_WORK_SECONDS=3600
GEMINI_API_KEY=
GEMINI_MODEL=gemini-2.0-flash
GROQ_API_KEY=
GROQ_MODEL=llama-3.3-70b-versatile
WORKER_AI_OPERATIONS_ENABLED=false
AI_QUEUE_WORKER_CONCURRENCY=1
AI_QUEUE_GLOBAL_CAPACITY=100
AI_QUEUE_PER_USER_CAPACITY=10
AI_QUEUE_DEADLINE_MINUTES=15
AI_QUEUE_OPERATION_TIMEOUT_SECONDS=300
# =============================================================================
# FRONTEND AND PUBLIC APPLICATION
# =============================================================================
# Leave empty in production so nginx proxies same-origin /api requests.
NEXT_PUBLIC_API_BASE_URL=
APP_PUBLIC_BASE_URL=https://jobs.cesnimda.uk
APP_VERSION=
APP_COMMIT_SHA=
APP_BUILD_STAMP=
# =============================================================================
# INGRESS AND MAINTENANCE
# =============================================================================
WEB_PROXY_SUBNET=172.31.250.0/29
# Space-separated trusted reverse-proxy peer CIDRs; required in production.
INGRESS_PROXY_CIDRS=
MAINTENANCE_GITEA_BASE_URL=https://git.cesnimda.uk
MAINTENANCE_GITEA_OWNER=cesnimda
MAINTENANCE_GITEA_REPOSITORY=jobtrackingapp
MAINTENANCE_GITEA_TOKEN=
# =============================================================================
# BACKUPS
# =============================================================================
BACKUP_TIMEZONE=Europe/Oslo
BACKUP_DAILY_RETENTION_DAYS=30
BACKUP_MONTHLY_RETENTION_COUNT=12
# Optional encrypted rclone destination, e.g. gdrive-crypt:jobtracker.
BACKUP_RCLONE_REMOTE=
# =============================================================================
# SMTP AND EMAIL WORKERS
# =============================================================================
EMAIL_ENABLED=false
EMAIL_SMTP_HOST=smtp.gmail.com
EMAIL_SMTP_PORT=587
EMAIL_SMTP_USER=
EMAIL_SMTP_PASSWORD=
EMAIL_FROM=
EMAIL_FROM_NAME=Jobbjakt
EMAIL_FOLLOWUPREMINDERS_ENABLED=false
EMAIL_FOLLOWUPREMINDERS_UPCOMINGDAYS=2
EMAIL_SMTP_ENABLE_SSL=true
EMAIL_SMTP_TIMEOUT_MS=15000
# =============================================================================
# APPLICATION WORKERS AND DISCOVERY
# =============================================================================
WORKER_RULES_ENABLED=false
WORKER_FOLLOWUP_REMINDERS_ENABLED=false
WORKER_SAVED_SEARCH_ALERTS_ENABLED=true
SAVED_SEARCH_INTERVAL_HOURS=6
WORKER_DAILY_EXPORT_ENABLED=false
WORKER_JOB_ENRICHMENT_ENABLED=false