BrightBean Studio自托管生产部署完全指南:Docker Compose+Caddy自动HTTPS,月成本低至10欧元
【免费下载链接】brightbean-studioOpen-source, self-hostable social media management platform. Schedule, publish, and manage content across 10+ platforms from a single dashboard. Free alternative to Buffer, Sendible, and SocialPilot.项目地址: https://gitcode.com/gh_mirrors/br/brightbean-studio
BrightBean Studio 是一款开源、可自托管的社交媒体管理平台,让你在一个仪表盘中计划、定时发布并管理 Facebook、Instagram、LinkedIn、TikTok、YouTube 等 10 多个平台的内容,是 Buffer、Sendible 的免费替代品。本文带你用Docker Compose + Caddy 自动 HTTPS完成生产级部署,整套月成本可低至 10 欧元。
BrightBean Studio 自托管部署后的视觉日历与定时发布界面
一、为什么选择自托管部署?
自托管的最大好处是数据完全归你所有,且没有按席位、按渠道的付费限制:
- 📦一套配置跑起来:Docker Compose 一键启动应用、后台任务、PostgreSQL 和 Caddy 反向代理
- 🔒自动 HTTPS:Caddy 内置 Let's Encrypt 自动申请证书,无需手动配置 Nginx
- 💰成本极低:一台 4 vCPU / 8GB 的 VPS 即可运行(development_specs/architecture.md 中有完整成本表)
- 🧩无中间商:所有平台集成直连官方 API,使用你自己的开发者凭证
二、部署前准备:一台 VPS 就够了
推荐配置(来自官方架构文档):
| 资源 | 规格 | 月成本 |
|---|---|---|
| VPS | Hetzner CX32(4 vCPU,8GB RAM) | €7.59 |
| 媒体存储 | 本地 Docker 卷 或 Cloudflare R2(10GB 免费) | ~€0 |
| 邮件 | Resend(每月 3000 封免费) | ~€0 |
| 合计 | 约 €10 |
最低要求为 2 vCPU / 4GB RAM。在 VPS 上安装 Docker 后,即可开始部署:
BrightBean Studio 支持连接 10 多个社交媒体平台
三、生产部署五步走(Docker Compose + Caddy)
第 1 步:克隆仓库并初始化配置
git clone https://gitcode.com/gh_mirrors/br/brightbean-studio cd brightbean-studio cp .env.example .env第 2 步:编辑.env关键变量
SECRET_KEY=<生成一个 50+ 字符的随机字符串> ENCRYPTION_KEY_SALT=<另一个随机字符串> DEBUG=false ALLOWED_HOSTS=yourdomain.com APP_URL=https://yourdomain.com DATABASE_URL=postgres://postgres:<强密码>@postgres:5432/brightbean💡 各变量含义均可在 .env.example 中找到详细注释;SMTP 邮件、平台 API 凭证也都是可选的,可后续通过管理后台按组织配置。
第 3 步:配置 Caddy 域名
Caddyfile 第一行读取APP_DOMAIN环境变量,默认值为localhost。将其加入.env:
APP_DOMAIN=yourdomain.com然后把 DNS 的 A 记录指向 VPS 公网 IP。Caddy 会自动完成 HTTP→HTTPS 跳转并申请证书。
第 4 步:一条命令启动全部服务
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build这一条命令会拉起5 个容器(定义见 docker-compose.prod.yml):
| 容器 | 作用 |
|---|---|
migrate | 一次性容器,自动执行数据库迁移,成功后才放行其他服务 |
app | Gunicorn(4 workers × 2 threads)运行 Django 生产配置 |
worker | 后台任务进程,负责定时发布、媒体处理 |
postgres | PostgreSQL 16 数据库(带健康检查) |
caddy | 反向代理 + 自动 HTTPS + 直接托管/media/上传文件 |
Caddy 直接从只读挂载的media_data卷提供/media/静态文件,大图片和视频不占用 Gunicorn 线程,还支持视频拖拽所需的字节范围请求。
BrightBean Studio 内容编辑器:支持逐平台覆盖与预览
第 5 步:创建管理员账号并访问
docker compose exec app python manage.py createsuperuser打开https://yourdomain.com,用超级用户登录,即可创建组织和工作区。
📌 首次构建会编译 Tailwind CSS,耗时约 1-2 分钟;之后启动都是秒级。
四、日常运维:更新与备份
升级到新版本只需两条命令:
git pull docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build数据库迁移会在每次启动时由migrate服务自动完成,无需手动执行。
备份:官方推荐每日用pg_dump导出数据库到对象存储(如 Cloudflare R2),保留 30 天;若媒体也使用 S3,则天然高可用。
五、媒体存储:本地卷还是 S3?
通过一个环境变量切换(详见 development_specs/architecture.md):
STORAGE_BACKEND=local # 默认:Docker 卷,适合单 VPS STORAGE_BACKEND=s3 # S3 兼容存储(R2 等)从local切换到s3时,记得在.env中设置CADDY_MEDIA_ROOT=/var/empty,否则 Caddy 会继续对外提供旧卷里遗留的上传文件。
六、常见问题快速排查
postgres容器显示 unhealthy:等待 10-15 秒健康检查通过,用docker compose logs postgres查看日志- 发布卡在 "Publishing":检查
worker是否运行:docker compose logs worker - OAuth 回调报 "redirect URI mismatch":确认各平台注册的回调地址与
APP_URL完全一致,格式为{APP_URL}/social-accounts/callback/{platform}/ - 上传的图片 404:确认
MEDIA_ROOT=/app/media未改动,且卷已持久化
BrightBean Studio 数据分析面板:逐帖与渠道级 KPI 指标
七、部署完成后做什么?
- 连接社交平台:在 Social Accounts 页面连接 Facebook、Instagram、LinkedIn 等(各平台的开发者凭证获取步骤见 README.md 的 Platform Credentials 章节)
- 创建团队:通过邀请链接邀请成员,配置工作区权限
- 规划内容:用 Kanban 灵感板 管理选题,在日历中设置每周固定发布时段与队列
- 查看数据:统一的分析面板提供 7/30/90 天趋势、互动率、粉丝增长等指标
BrightBean Studio 灵感看板:管理你的内容选题
总结
用 Docker Compose + Caddy 自托管 BrightBean Studio 的全部步骤可以浓缩为:改.env→ 起容器 → 建超管,三步即获得一个带自动 HTTPS 的私有社交媒体管理中台。相比每月 100-300 美元的商业 SaaS,你只需约 10 欧元的 VPS 成本,数据、账号、内容全部掌握在自己手中。
【免费下载链接】brightbean-studioOpen-source, self-hostable social media management platform. Schedule, publish, and manage content across 10+ platforms from a single dashboard. Free alternative to Buffer, Sendible, and SocialPilot.项目地址: https://gitcode.com/gh_mirrors/br/brightbean-studio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考