Planka是一款基于Node.js和PostgreSQL开发的开源现代看板工具,界面清爽、操作接近Trello,适合小团队做项目任务管理。在云服务器上部署Planka,最省心的方式就是使用Docker Compose把数据库和主程序一起编排启动。这样不仅环境一致,后续迁移和备份也只需拷贝几个目录和配置文件。

很多新手以为部署Planka必须逐一执行docker run,其实Compose文件能把所有参数固化下来。我们先从最基础的目录结构说起。建议在云服务器上新建一个专有目录,例如 /opt/planka,里面放 docker-compose.yml 和对应的 .env 文件。这种分离密钥与配置的做法,能避免敏感信息直接写在编排文件里,也方便不同环境切换。
云服务器通常只开放了部分端口,因此在写配置前要先确认安全组是否放行了Planka对应的对外端口,比如常用的3333。如果服务器前有Nginx反代,也可以只对内网暴露,由网关统一处理HTTPS。理清网络出口,才能决定Compose里ports字段该怎么写,不至于出现容器起来了却访问不通的情况。
Docker Compose核心服务定义
一个能跑起来的Planka编排至少包含两个服务:postgres和planka。PostgreSQL负责存储看板、卡片、用户等全部业务数据,Planka容器通过环境变量连接过去。下面是一段经过简化的配置示例,展示关键字段的写法。
在postgres服务中,需要设置POSTGRES_USER、POSTGRES_PASSWORD和POSTGRES_DB,并且把数据目录挂载到宿主机的volume上。如果不挂卷,容器重建后所有任务数据都会丢失。Planka服务则要配置DATABASE_URL,格式为 postgres://用户名:密码@postgres:5432/库名,其中的postgres是Compose内部服务名,利用Docker自带DNS互相访问,不用写云服务器公网IP。
另外Planka官方镜像依赖一些后台任务,比如邮件通知和周期性清理,可以通过command字段覆盖启动参数,或者额外起一个planka-consumer服务。实际测试中,单容器同时跑web和consumer在1核2G的小机器上也能撑住十人以内团队,但数据量增长后建议分离,避免Web请求被定时任务阻塞。
环境变量与数据持久化要点
Planka的行为高度依赖环境变量,除了数据库连接,还有SECRET_KEY_BASE用于会话加密,以及BASE_URL设定访问根地址。这些值建议统一放进.env文件,Compose里用 ${VAR} 引用。例如SECRET_KEY_BASE可以用 openssl rand -hex 64 在服务器上生成,切忌使用默认值,否则别人能伪造登录态。
持久化方面,除了PostgreSQL的数据卷,Planka本身产生的用户附件默认存在容器内部 /app/public/uploads,也需要挂到宿主机。我们可以用命名卷 planka_uploads 或者在bind mount里指定 /opt/planka/uploads。曾经有用户没挂这个目录,升级镜像后上传的需求文档全部消失,只能从备份恢复,非常麻烦。
关于时区,很多云服务器默认UTC,看板里的截止时间会差八小时。可以在environment里加 TZ: Asia/Shanghai,并在postgres服务同样设置,保证数据库时间和应用时间一致,导出的报表才不会错位。
启动与日常运维操作
配置写好后,在 /opt/planka 目录执行 docker compose up -d 即可后台拉起。第一次会先下载postgres和planka镜像,视云服务器带宽可能要几分钟。起来后用 docker compose ps 看状态,若planka重启循环,多半是DATABASE_URL写错或数据库未就绪,可加 depends_on 并配合 healthcheck 缓解。
日常备份其实就是打包postgres的数据目录和uploads目录。写个简单shell脚本,每天凌晨用 pg_dump 导出sql,再tar卷文件夹,传到对象存储。恢复时停掉容器,清空旧卷,导入sql和文件即可。比起裸机安装,Compose部署的回滚特别简单,只要把docker-compose.yml和.env按版本管理,出问题退到上一版配置重启就行。
如果想让Planka在云服务器重启后自动起来,给服务加 restart: unless-stopped。同时留意镜像更新,Planka迭代较快,用 docker compose pull 拉新版本后 up -d 就能平滑升级,只要数据库结构兼容,通常无感切换。掌握这些,你就拥有了一套可控、易迁、能长期用的私有看板系统。
| 配置项 | 作用 | 常见取值 |
|---|---|---|
| POSTGRES_DB | 指定Planka使用的库名 | planka |
| DATABASE_URL | Planka连接数据库地址 | postgres://user:pass@postgres:5432/planka |
| SECRET_KEY_BASE | 会话与CSRF令牌加密 | openssl rand -hex 64生成 |
| restart策略 | 宿主机重启后行为 | unless-stopped |
通过上述配置与说明,在任意一家主流云厂商的Linux主机上,都能以较低门槛拥有自己的现代看板服务。后续若需要对接域名或HTTPS,只需在前面增加反代容器,原Compose无需大改,扩展弹性足够中小团队使用很长一段时间。
Planka部署Docker_Compose配置云服务器看板修改时间:2026-08-14 08:51:29