开发者必备:用Docker一键部署ShipShipShip实现产品路线图管理
开发者必备:用Docker一键部署ShipShipShip实现产品路线图管理
1.1 ShipShipShip简介
1.2 ShipShipShip主要特点
2.1 本地环境规划
2.2 本次实践介绍
3.1 检查Docker服务状态
3.2 检查Docker版本
3.3 检查docker compose 版本
5.1 创建部署目录
5.2 编辑部署文件
5.3 创建ShipShipShip容器
5.4 查看ShipShipShip容器状态
5.5 检查ShipShipShip容器日志
6.1 访问ShipShipShip初始页
6.2 访问后台管理页面
7.1 设置主题名称
7.2 事件管理功能
一、ShipShipShip介绍
1.1 ShipShipShip简介
ShipShipShip是一个现代化的可自托管更新日志(Changelog)与产品路线图平台,帮助团队高效发布产品动态、展示开发进展,并通过功能投票机制收集用户反馈,增强社区互动。
1.2 ShipShipShip主要特点
📋 丰富的更新日志管理:支持 Markdown 与富文本编辑器,轻松创建、编辑和组织产品更新事件。
🗳️ 社区功能投票:用户可对即将推出的功能进行投票,帮助团队优先开发高需求特性。
📊 看板式产品路线图:支持拖拽操作的看板视图,涵盖“待办、投票中、开发中、已发布”等多种状态。
📧 邮件订阅系统:用户可订阅更新通知,及时接收新功能和版本发布的邮件提醒。
🎨 现代化用户界面:响应式设计,支持深色/浅色主题,提供流畅的实时更新体验。
🛠️ 支持自托管部署:通过 Docker 一键部署,完全掌控数据安全与服务配置。
🔌 完整的 RESTful API:开放全量 API 接口,便于与其他系统集成或构建自定义工作流。
📮 邮件通知配置:管理员可通过后台配置 SMTP,自定义发送新闻简报和系统通知。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署ShipShipShip自托管产品更新与功能投票系统。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Sat 2025-10-04 13:29:05 UTC; 2 days ago
TriggeredBy: ● docker.socket
Main PID: 888 (dockerd)
Tasks: 65
Memory: 1.2G (peak: 1.4G)
CPU: 3min 23.296s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker compose version
Docker Compose version v2.39.4
四、拉取ShipShipShip镜像
下载ShipShipShip容器镜像,镜像名称为:
nelkinsky/shipshipship:1.1.2-beta。
root@jeven:~# docker pull nelkinsky/shipshipship:1.1.2-beta
1.1.2-beta: Pulling from nelkinsky/shipshipship
3e41ca17193b: Pull complete
6f3d0b7b5f14: Pull complete
5b756f393578: Pull complete
1dd55ce4cf31: Pull complete
665a19220f0d: Pull complete
aefc4b2d2767: Pull complete
Digest: sha256:0c85a2b3225f3f99cee62bb7cc315375058f3d3ab04928456d79d0182252d0ea
Status: Downloaded newer image for nelkinsky/shipshipship:1.1.2-beta
docker.io/nelkinsky/shipshipship:1.1.2-beta
五、部署ShipShipShip服务
5.1 创建部署目录
创建部署目录
mkdir -p /data/shipshipship/data && cd /data/shipshipship/
5.2 编辑部署文件
使用docker-cli方式部署,可参考以下命令:
docker run -d
-p 8080:8080
-e ADMIN_USERNAME=admin
-e ADMIN_PASSWORD=admin
-e JWT_SECRET=your-secret-key-change-in-production
-v changelog_data:/app/data
nelkinsky/shipshipship:1.1.2-beta
在部署目录下,创建docker-compose.yaml文件,内容如下所示:
vim docker-compose.yaml
version: '3.8'
services:
changelog:
image: nelkinsky/shipshipship:1.1.2-beta
container_name: shipshipship
restart: unless-stopped
ports:
- "2300:8080"
volumes:
- ./data:/app/data
environment:
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=admin
- JWT_SECRET=your-secret-key-change-in-production
5.3 创建ShipShipShip容器
执行以下命令,创建ShipShipShip容器。
5.4 查看ShipShipShip容器状态
检查ShipShipShip容器运行状态,确保ShipShipShip容器正常启动。
root@jeven:/data/shipshipship# docker compose ps
WARN[0000] /data/shipshipship/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
shipshipship nelkinsky/shipshipship:1.1.2-beta "./main" changelog 42 seconds ago Up 41 seconds 0.0.0.0:2300->8080/tcp, [::]:2300->8080/tcp

5.5 检查ShipShipShip容器日志
检查容器运行日志,确保ShipShipShip服务正常运行。
六、访问ShipShipShip服务
6.1 访问ShipShipShip初始页
浏览器地址:
http://<个人的服务器IP>:2300,访问ShipShipShip初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

6.2 访问后台管理页面
后台管理地址为 http://<服务器IP地址>:2300/admin,我们设置的默认账号密码为
admin/admin。


七、ShipShipShip基本使用
7.1 设置主题名称
我们可以修改公共页面的主题名称,修该完毕后,点击保存即可。

回到ShipShipShip的公共页面,可以看到主题名称已经修改。

7.2 事件管理功能
在 事件管理 功能中,您可以全面掌控产品动态的全生命周期。通过直观的分类系统,将功能项划分为“Backlog(积压)”用于存放初步构想,“Proposed(建议)”阶段开放用户投票收集反馈,“Upcoming(即将推出)”标识当前开发中的功能,“Released(已发布)”展示正式上线的版本动态,构成清晰的产品时间线,而“Archived(已归档)”则可用于管理仅对内可见的敏感或已完成事件,确保信息既透明又可控。

将事件状态修改为Upcoming后,可在公共页看到。

八、总结
通过本次实践,我们成功使用Docker快速部署了ShipShipShip自托管平台。整个过程操作简便,得益于Docker的容器化优势,环境隔离且易于维护。ShipShipShip功能清晰,集成了产品更新发布、路线图展示与用户投票等实用特性,非常适合需要与社区保持紧密互动的项目团队。有需要的小伙伴,未来可进一步探索其API集成与邮件通知配置,充分发挥其在产品运营中的价值。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~


