配置说明
iForge 通过环境变量进行配置。完整示例见 .env.example。
后端配置
基础配置
| 变量 | 说明 | 默认值 |
|---|---|---|
IFORGE_HOME | 数据目录(数据库、日志、Git 仓库) | ./data |
IFORGE_HTTP_PORT | HTTP 服务端口(浏览器 + Git HTTP) | 8081 |
IFORGE_SESSION_SECRET | 会话密钥(留空则自动生成并持久化到数据库) | 自动生成 |
会话密钥
- 留空(推荐):首次启动自动生成 32 字节随机密钥并持久化到数据库,重启复用同一密钥,不影响登录态
- 多副本部署(K8s 多 Pod、多容器)必须设置为固定值,否则各副本密钥不一致
SSH Git 服务
| 变量 | 说明 | 默认值 |
|---|---|---|
IFORGE_SSH_ENABLED | 是否启用 SSH Git 服务 | true |
IFORGE_SSH_PORT | SSH Git 服务端口 | 2022 |
使用 22 端口
如需使用标准 SSH 端口 22,设置 IFORGE_SSH_PORT=22。
注意:如果宿主机已运行 sshd,需要先停用或改用其他端口。
CORS 配置
| 变量 | 说明 | 默认值 |
|---|---|---|
IFORGE_CORS_ORIGINS | CORS 允许的前端来源 | localhost |
*:反射任意 Origin(自托管/局域网部署推荐,兼容 cookie credentials)- 具体值:
http://192.168.1.100:3001(多个用逗号分隔,更严格)
前端配置
| 变量 | 说明 | 默认值 |
|---|---|---|
NEXT_PUBLIC_API_BASE | 后端 API 基础地址 | 空(动态适配) |
SERVER_API_URL | SSR 数据请求地址(Docker 内部网络) | 空 |
动态 API 地址
NEXT_PUBLIC_API_BASE 留空时,前端运行时按浏览器 window.location.hostname 自动适配:
- 局域网访问
http://192.168.1.100:3001→ API 请求发到http://192.168.1.100:8081 - 自定义域名时设为固定值:
https://iforge.example.com/api/v1
Docker 内部网络
Docker 部署时,web 容器和 server 容器通过 Docker 内部网络通信:
# docker-compose.yml 中 web 服务
environment:
- SERVER_API_URL=http://server:8081/api/v1 # SSR 走内部网络
浏览器端请求不受此影响,仍按 window.location.hostname 动态适配。
CI/CD 配置
| 变量 | 说明 | 默认值 |
|---|---|---|
IFORGE_CI_ENABLED | 是否启用 CI/CD 功能 | true |
IFORGE_CI_ALLOW_SHELL_EXECUTOR | 是否允许 Shell Executor(生产环境必须为 false) | false |
IFORGE_CI_KEEP_WORKDIR | 是否保留 Job 工作目录(调试用) | false |
Shell Executor 安全警告
Shell Executor 在宿主机直接执行用户代码,存在严重安全风险。生产环境必须保持禁用(IFORGE_CI_ALLOW_SHELL_EXECUTOR=false)。
如需在开发环境启用,设置 IFORGE_CI_ALLOW_SHELL_EXECUTOR=true。
数据库
当前版本使用 SQLite 作为默认数据库({IFORGE_HOME}/iforge.db),由 GORM AutoMigrate 自动建表。
代码中已支持 MySQL/PostgreSQL 驱动,如需切换请修改 server/cmd/server/main.go 中的 InitGORMDB 调用。