Docker 免费部署安装
巴克励步
Baklib 私有化采用 Docker Compose 一键部署完整服务栈(Web、Job、PostgreSQL、Redis、ETCD 集群、Traefik 等)。本文给出运维侧最短路径;不要在本手册复制整份仓库 README,变更时请先查看 GitHub。
架构概览
| 组件 | 作用 |
|---|---|
| Web | Rails 应用,处理 HTTP |
| Job | 异步任务(Solid Queue 等) |
| PostgreSQL | 主数据库 |
| Redis | 缓存与会话 |
| ETCD(3 节点) | 配置与服务发现 |
| Traefik | 反向代理、HTTPS、路由 |
数据默认落在 Docker 命名卷;静态文件可选用本地目录或云存储(见 对象存储与 CDN 配置)。
前置条件
| 要求 | 说明 |
|---|---|
| Docker | 20.10+,已启动 |
| Docker Compose | 2.0+(或 docker-compose 1.29+) |
| 内存 | 建议 ≥ 8GB |
| 磁盘 | 建议 ≥ 20GB |
| 授权凭证 | Docker Registry 账号/密码、product.pem 产品证书(向 Baklib 申请) |
| 操作系统 | Linux / macOS 使用 baklib;Windows 使用 baklib.cmd |
操作步骤
步骤一:获取代码与凭证
- 克隆部署仓库:
git clone https://github.com/tanmer/baklib-docker.git cd baklib-docker - 将客服提供的
product.pem放到仓库根目录。 - 确认已安装并启动 Docker Desktop(Windows/macOS)或 Docker Engine(Linux)。
预期结果:目录内可见
docker-compose.yml、baklib(或 baklib.cmd)、.env.example。步骤二:交互式配置(.env)
Linux / macOS:
chmod +x baklib
./baklib config
Windows:
baklib.cmd config
配置脚本会引导填写主域名、数据库密码、镜像仓库账号、管理员手机号(ADMIN_PHONE) 等,并同步 Traefik 配置。要点:
- 首个登录账号:
config中填写的 管理员手机号 会在install时写入数据库,作为首个用户。 - 本地试用:主域名设为
baklib.localhost时,脚本会自动使用 HTTP、显示验证码等本地参数。 - 生产域名:需规划
MAIN_DOMAIN、SAAS_DOMAIN_SUFFIX、证书解析器(HTTP-01 或 DNS-01)等;详见仓库 配置说明。
预期结果:生成有效
.env,Traefik 相关文件已更新。步骤三:安装(拉取镜像与初始化库)
./baklib install # Linux / macOS
baklib.cmd install # Windows
install 会登录私有镜像仓库、拉取镜像;若已配置 ADMIN_PHONE,会临时启动 Web 执行 db:prepare 并写入首个用户,然后清理临时容器。预期结果:镜像就绪,数据库已初始化(此时尚未长期运行服务)。
步骤四:启动服务
./baklib start # 或 baklib.cmd start
预期结果:
docker compose ps 显示 web、job、db、redis、etcd、traefik 等为 running。步骤五:导入主题(首次必做)
服务启动后执行:
./baklib import-themes
可选:
--skip-clone(仅导入)、--clone-only(仅克隆主题仓库)。预期结果:工作台可选 Wiki / CMS 等模板主题。
步骤六:首次登录验证
- 浏览器访问配置的主域名,例如:
- 本地试用:
http://baklib.localhost - 生产:
https://您的 MAIN_DOMAIN
- 本地试用:
- 使用 步骤二 配置的管理员 手机号 登录(本地试用环境下可按页面验证码流程)。
- (可选)Traefik Dashboard:
http://localhost:8081(若已暴露)。
日常运维命令
| 操作 | Linux / macOS | Windows |
|---|---|---|
| 重启 | ./baklib restart |
baklib.cmd restart |
| 停止 | ./baklib stop |
baklib.cmd stop |
| 改配置 | ./baklib config 后 restart |
同上 |
| 升级版本 | 修改 .env 中 IMAGE_TAG → docker compose pull → restart |
同上 |
| 查看日志 | docker compose logs -f web |
同上 |
产品证书
product.pem 有效期一般为 1 年,到期前向客服更换并 restart。备份:PostgreSQL 可用
pg_dump;命名卷需按运维规范备份。示例见 仓库 · 备份与恢复。常见问题
Q:
A:必须先
install 提示要先 config?A:必须先
./baklib config 生成 .env,再 install。Q:8080/443 端口冲突?
A:检查 Traefik 与宿主机占用;修改 compose 或停止冲突服务。
A:检查 Traefik 与宿主机占用;修改 compose 或停止冲突服务。
Q:ETCD 认证失败导致 Web 起不来?
A:查看
A:查看
docker compose logs etcd-init;确保三节点 etcd 健康。Q:私有化后 MCP / API 连哪里?
A:Open API 与 MCP 的 基址(base URL) 应指向您部署的 API 域名,而非
A:Open API 与 MCP 的 基址(base URL) 应指向您部署的 API 域名,而非
https://baklib.com。CLI 与 MCP Server 的环境变量名以各工具当前文档为准,见 MCP 教程。Q:与 help 旧文
A:当前推荐顺序为 config → install → start → import-themes;旧文仅强调 clone + install,以 GitHub 仓库 README 为准。
./baklib install 一键装有何不同?A:当前推荐顺序为 config → install → start → import-themes;旧文仅强调 clone + install,以 GitHub 仓库 README 为准。