Dưới đây là bảng mô tả chi tiết từng biến môi trường trong file witches.env:

Bảng mô tả biến môi trường#

BiếnMô tảLoạiGiá trị mặc định
SERVER CONFIGURATION
APP_PORTCổng chạy ứng dụng HTTPint8080
APP_HOSTHostname bindingstringlocalhost
METRIC_PORTCổng cho Prometheus metricsint8088
UID_BITSSố bit sử dụng cho ID (dùng trong Snowflake/ULID)int26
REQUEST_KEYKey để lưu request contextstringrequest_context
LOGGING
LOG_PATHThư mục lưu log filestring./logs
CORS
CORS_ALLOW_ORIGINSCác origin được phép truy cập (* = tất cả)string*
CORS_ALLOW_METHODSHTTP methods được phépstringGET,POST,PUT,DELETE,OPTIONS
CORS_ALLOW_HEADERSHeaders được phép gửi lênstringContent-Type,Authorization
TIMEZONE
TIMEZONEMúi giờ của ứng dụngstringUTC
SUPPORTED_LANGUAGESCác ngôn ngữ hỗ trợ (dùng cho i18n)stringen-US,vi-VN
SECURITY
JWT_SECRETKhóa bí mật để ký JWTstringyour_secret_key
DATABASE CONFIGURATION
DB_DRIVERDriver database (postgres/mysql/mssql)stringyour_driver
DB_USERUsername kết nối databasestringyour_user
DB_HOSTHostname databasestringlocalhost
DB_PORTCổng databaseint3306
DB_NAMETên databasestringyour_database
DB_PASSWORDPassword kết nối databasestringyour_password
Database Connection Pool
DB_MAX_OPEN_CONNSSố lượng kết nối tối đa mở cùng lúcint100
DB_MAX_IDLE_CONNSSố lượng kết nối nhàn rỗi tối đaint10
DB_CONN_MAX_LIFETIMEThời gian tồn tại tối đa của 1 kết nối (giây)int60
DB_CONN_MAX_IDLE_TIMEThời gian tối đa 1 kết nối ở trạng thái nhàn rỗi (giây)int600
SLOW_THRESHOLDNgưỡng thời gian để coi là truy vấn chậm (giây)float5
REDIS CONFIGURATION
REDIS_HOSTHostname Redis serverstringlocalhost
REDIS_PORTCổng Redis serverint6379
REDIS_PASSWORDPassword Redis (để trống nếu không có)stringempty
TOKEN EXPIRATION
ACCESS_TOKEN_TTLThời gian sống access token (giây)int900 (15 phút)
REFRESH_TOKEN_TTLThời gian sống refresh token (giây)int604800 (7 ngày)
SESSION SETTINGS
SESSION_TTLThời gian sống session (giây)int604800 (7 ngày)
IDLE_TIMEOUTThời gian session hết hạn khi không hoạt động (giây)int1800 (30 phút)
BLACKLIST SETTINGS
REVOKED_TTLThời gian lưu token đã thu hồi (giây)int300 (5 phút)
RATE LIMIT
RATE_LIMIT_PERIODChu kỳ giới hạn request (giây)int60
RATE_LIMIT_MAXSố request tối đa trong mỗi chu kỳint100

Ghi chú#

  • Thời gian: Tất cả giá trị TTL/time đều được tính bằng giây.
  • DB_DRIVER: Các giá trị hợp lệ: postgres, postgresql, mysql, mssql, sqlserver.
  • CORS_ALLOW_ORIGINS: Dùng * cho mọi origin, hoặc liệt kê cách nhau bởi dấu phẩy.
  • JWT_SECRET: Nên thay đổi thành khóa bí mật mạnh trong môi trường production.