Planka项目Docker Compose部署指南
2025-07-06 06:25:56作者:姚月梅Lane
项目概述
Planka是一款开源的看板管理工具,类似于Trello的项目管理平台。它提供了直观的看板界面,支持任务卡片、列表、标签等功能,非常适合团队协作和项目管理。本指南将详细介绍如何使用Docker Compose部署Planka项目。
部署准备
在开始部署前,请确保您的系统已安装以下组件:
- Docker引擎
- Docker Compose
核心服务配置
Planka的Docker Compose配置主要包含两个服务:
1. Planka主服务
planka:
image: ghcr.io/plankanban/planka:2.0.0-rc.3
restart: on-failure
ports:
- 3000:1337
- 使用官方提供的2.0.0-rc.3版本镜像
- 采用on-failure重启策略,确保服务异常时自动恢复
- 将容器内部的1337端口映射到主机的3000端口
2. PostgreSQL数据库服务
postgres:
image: postgres:16-alpine
restart: on-failure
environment:
- POSTGRES_DB=planka
- POSTGRES_HOST_AUTH_METHOD=trust
- 使用PostgreSQL 16的Alpine版本,体积小巧
- 创建名为planka的数据库
- 配置为信任连接,简化部署流程
数据持久化配置
为确保数据安全,Planka配置了多个持久化卷:
volumes:
favicons:
user-avatars:
background-images:
attachments:
db-data:
favicons
: 存储网站图标user-avatars
: 用户头像存储background-images
: 看板背景图片attachments
: 任务附件db-data
: PostgreSQL数据库数据
关键环境变量解析
Planka服务支持丰富的环境变量配置:
基础配置
- BASE_URL=http://localhost:3000
- DATABASE_URL=postgresql://postgres@postgres/planka
- SECRET_KEY=notsecretkey
BASE_URL
: 应用访问地址,生产环境应替换为实际域名DATABASE_URL
: 数据库连接字符串SECRET_KEY
: 应用加密密钥,生产环境必须修改
管理员账户配置
# - DEFAULT_ADMIN_EMAIL=demo@demo.demo
# - DEFAULT_ADMIN_PASSWORD=demo
# - DEFAULT_ADMIN_NAME=Demo Demo
# - DEFAULT_ADMIN_USERNAME=demo
这些配置用于创建初始管理员账户,建议在生产环境中配置并确保安全。
高级存储配置
Planka支持S3兼容存储:
# - S3_ENDPOINT=
# - S3_REGION=
# - S3_ACCESS_KEY_ID=
# - S3_SECRET_ACCESS_KEY=
# - S3_BUCKET=
配置后,附件等文件将存储在S3而非本地。
邮件通知配置
# - SMTP_HOST=
# - SMTP_PORT=587
# - SMTP_USER=
# - SMTP_PASSWORD=
# - SMTP_FROM="Demo Demo" <demo@demo.demo>
配置SMTP服务以启用邮件通知功能。
安全最佳实践
- 密钥管理:所有敏感信息(如数据库密码、SMTP密码等)应通过Docker secrets管理
- SSL配置:生产环境应启用SSL/TLS
- 定期备份:确保定期备份数据库卷(db-data)
- 权限控制:考虑配置适当的用户/组权限
部署步骤
- 创建docker-compose.yml文件,填入上述配置
- 根据实际需求修改环境变量
- 运行命令启动服务:
docker-compose up -d
- 访问http://localhost:3000验证部署
常见问题解决
- 数据库连接问题:检查postgres服务健康状态和连接字符串
- 权限问题:必要时配置user字段指定运行用户
- 存储问题:确保Docker卷有足够空间
- 性能问题:可调整LOG_LEVEL减少日志输出
生产环境建议
- 使用反向代理(如Nginx)处理SSL和负载均衡
- 配置定期备份策略
- 监控服务运行状态和资源使用情况
- 考虑使用更高版本的PostgreSQL以获得更好性能
通过以上配置,您可以轻松部署一个功能完善的Planka看板管理系统。根据团队规模和需求,您可以进一步调整资源配置和高级功能设置。