Framework
Environment Variables
Referensi lengkap environment variables — App, DB, Auth, Mailer, KeyDB, Storage, CORS, logging.
App
APP_ENV= development | staging | productionAPP_HOST= 0.0.0.0APP_PORT= 8080APP_DEBUG= true | false
Database (GORM)
DB_TYPE= postgres | mysql | mariadbDB_HOST,DB_PORT,DB_NAME,DB_USER,DB_PASSWORDDB_SSLMODE= disable | require (Postgres)DB_MAX_OPEN_CONNS= 50DB_MAX_IDLE_CONNS= 10DB_CONN_MAX_LIFETIME_SEC= 300
Auth / Security
AUTH_JWT_SECRET— secret signing JWT (HS256). Wajib rahasia.JWT_ACCESS_EXP_SECONDS= 900JWT_REFRESH_EXP_SECONDS= 1209600
Legacy names (
JWT_SECRET,JWT_ACCESS_SECRET,JWT_REFRESH_SECRET) deprecated — aplikasi preferAUTH_JWT_SECRETlalu fallback ke legacy.
Mailer
SMTP_HOST,SMTP_PORT= 587,SMTP_USER,SMTP_PASS,SMTP_FROMSMTP_USE_TLS,SMTP_STARTTLS
Cache / Flash (KeyDB/Redis)
KEYDB_HOST= 127.0.0.1,KEYDB_PORT= 6379,KEYDB_PASS,KEYDB_DB= 0
Storage
STORAGE_DRIVER= local | s3STORAGE_ROOT= ./storage (local)STORAGE_PUBLIC_URL= http://localhost:8080/assetsS3_BUCKET,S3_REGION,S3_ENDPOINT,S3_ACCESS_KEY,S3_SECRET_KEY(s3)
CORS
CORS_ALLOWED_ORIGINS= “http://localhost:5173,http://localhost:4321”
Logging & Misc
LOG_LEVEL= debug | info | warn | errorAPP_URL,ADMIN_URL,FRONT_URL,DOCKER_HOST_IP
Public storage URL
- Local: saat
STORAGE_DRIVER=local, setSTORAGE_PUBLIC_URLke server base +/assets - S3: set ke bucket endpoint publik / CDN
- Hindari trailing slash agar URL join tetap predictable
Security notes
- Jangan commit
.envberisi secret; jaga.env.examplegeneric - Produksi: pakai secret store (Vault, AWS Secrets Manager, K8s Secrets)
- Rotate key & pakai least-privilege untuk akun DB/service