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

操作步骤

步骤一:获取代码与凭证

  1. 克隆部署仓库:
    git clone https://github.com/tanmer/baklib-docker.git
    cd baklib-docker
    
  2. 将客服提供的 product.pem 放到仓库根目录。
  3. 确认已安装并启动 Docker Desktop(Windows/macOS)或 Docker Engine(Linux)。
预期结果:目录内可见 docker-compose.ymlbaklib(或 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_DOMAINSAAS_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 等模板主题。

步骤六:首次登录验证

  1. 浏览器访问配置的主域名,例如:
    • 本地试用:http://baklib.localhost
    • 生产:https://您的 MAIN_DOMAIN
  2. 使用 步骤二 配置的管理员 手机号 登录(本地试用环境下可按页面验证码流程)。
  3. (可选)Traefik Dashboard:http://localhost:8081(若已暴露)。
预期结果:进入 Baklib 工作台,可创建组织与应用;后续操作见本手册 快速入门应用库

日常运维命令

操作 Linux / macOS Windows
重启 ./baklib restart baklib.cmd restart
停止 ./baklib stop baklib.cmd stop
改配置 ./baklib config 后 restart 同上
升级版本 修改 .envIMAGE_TAGdocker compose pull → restart 同上
查看日志 docker compose logs -f web 同上
产品证书 product.pem 有效期一般为 1 年,到期前向客服更换并 restart。
备份:PostgreSQL 可用 pg_dump;命名卷需按运维规范备份。示例见 仓库 · 备份与恢复

常见问题

Q:install 提示要先 config?
A:必须先 ./baklib config 生成 .env,再 install。
Q:8080/443 端口冲突?
A:检查 Traefik 与宿主机占用;修改 compose 或停止冲突服务。
Q:ETCD 认证失败导致 Web 起不来?
A:查看 docker compose logs etcd-init;确保三节点 etcd 健康。
Q:私有化后 MCP / API 连哪里?
A:Open API 与 MCP 的 基址(base URL) 应指向您部署的 API 域名,而非 https://baklib.com。CLI 与 MCP Server 的环境变量名以各工具当前文档为准,见 MCP 教程
Q:与 help 旧文 ./baklib install 一键装有何不同?
A:当前推荐顺序为 config → install → start → import-themes;旧文仅强调 clone + install,以 GitHub 仓库 README 为准。

相关阅读