Skip to content

Biến môi trường ​

Danh sách đầy đủ các biến môi trường trong file .env.

Bắt buộc ​

BiếnMô tảVí dụ
DB_PASSWORDMật khẩu MySQL cho user CQAopenssl rand -hex 16
MYSQL_ROOT_PASSWORDMật khẩu root MySQLopenssl rand -hex 16
JWT_SECRETSecret cho JWT tokens, tối thiểu 32 ký tựopenssl rand -hex 32
ENCRYPTION_KEYKey 32 bytes cho mã hóa AES-256-GCMopenssl rand -hex 16

Server ​

BiếnMô tảMặc định
SERVER_PORTPort của ứng dụng8080
SERVER_HOSTHost bind0.0.0.0
APP_ENVMôi trường (development / production)production
APP_URLURL công khai (cho links trong notification)

Database ​

BiếnMô tảMặc định
DB_HOSTMySQL hostdb
DB_PORTMySQL port3306
DB_USERMySQL usernamecqa
DB_PASSWORDMySQL password
DB_NAMETên databasecqa

Rate Limiting ​

BiếnMô tảMặc định
RATE_LIMIT_PER_IPSố request/phút cho mỗi IP500
RATE_LIMIT_PER_USERSố request/phút cho mỗi user1000

Lưu file đính kèm (tùy chọn) ​

BiếnMô tảMặc định
STORAGE_LOCAL_DIRThư mục cất file đính kèm trên máy chủ/var/lib/cqa/files

Muốn cất file lên S3 thì cấu hình trong giao diện, Cài đặt > Lưu trữ file, riêng cho từng công ty — không có biến môi trường S3 nào. Xem Lưu file đính kèm lên S3.

Xuất file kết quả (tùy chọn) ​

BiếnMô tảMặc định
EXPORT_MAX_ROWSTrần số dòng cho mỗi lần xuất CSV/Excel ở trang Kết quả20000

Vượt trần, hệ thống báo để thu hẹp bộ lọc thay vì dựng một file quá lớn trong bộ nhớ máy chủ.

Nhật ký hệ thống (tùy chọn) ​

BiếnMô tảMặc định
ACTIVITY_LOG_RETENTION_DAYSSố ngày giữ nhật ký hệ thống. Đặt 0 để giữ mãi90

Nhật ký chỉ ghi thêm chứ không bao giờ tự vơi, chạy lâu là thành một trong những bảng nặng nhất database. Mỗi ngày lúc 3h15 sáng, CQA xoá các dòng cũ hơn số ngày cấu hình, xoá theo lô để không khoá bảng lâu.

Cần giữ dài hơn cho mục đích kiểm toán thì tăng số ngày, hoặc đặt 0 rồi tự sao lưu bảng activity_logs định kỳ.

Đồng bộ bảng giá AI (tùy chọn) ​

Chi phí AI hiển thị trong CQA được tính từ bảng đơn giá theo token. Bảng này có sẵn trong chương trình, đồng thời tự cập nhật định kỳ từ một nguồn công khai để không phải chờ bản phát hành mới mỗi khi nhà cung cấp đổi giá hoặc ra model mới.

BiếnMô tảMặc định
PRICING_SYNC_ENABLEDBật/tắt đồng bộ. Tắt thì chỉ dùng bảng có sẵn trong chương trìnhtrue
PRICING_SYNC_URLNguồn dữ liệu giá, bắt buộc HTTPSBảng giá công khai của LiteLLM
PRICING_SYNC_INTERVAL_HOURSSố giờ giữa hai lần đồng bộ168 (7 ngày)

Dữ liệu tải về được coi là không đáng tin và phải qua kiểm tra trước khi dùng: chỉ nhận HTTPS, không đi theo chuyển hướng sang tên miền khác, giới hạn dung lượng tải, chỉ đọc hai con số đơn giá của mỗi model, loại bỏ bản ghi có tên bất thường hoặc giá âm/quá lớn, và nếu số model hợp lệ thu được quá ít thì giữ nguyên bảng đang dùng. Đồng bộ hỏng không ảnh hưởng vận hành — bảng có sẵn trong chương trình vẫn phục vụ.

Muốn cắt hoàn toàn kết nối ra ngoài thì đặt PRICING_SYNC_ENABLED=false. Khi đó model mới chưa có trong bảng sẽ hiện là chưa rõ giá, chứ không bị tính nhầm theo giá của model khác.

SSL (tùy chọn) ​

BiếnMô tảMặc định
LEGO_DOMAINDomain cho SSL tự động (Let's Encrypt)(trống = HTTP mode)
LEGO_EMAILEmail cho Let's Encrypt

TIP

Để trống LEGO_DOMAIN nếu bạn không cần SSL hoặc đã có reverse proxy riêng (Cloudflare, Caddy...).

Tạo giá trị bảo mật ​

bash
# Mật khẩu database
openssl rand -hex 16

# JWT secret (32+ ký tự)
openssl rand -hex 32

# Encryption key (đúng 32 bytes)
openssl rand -hex 16

Phát hành theo giấy phép MIT