产品更新与路线图平台ShipShipShip

简介

什么是 ShipShipShip?

ShipShipShip 是一个使用 SvelteKitGo 构建的现代化、可自托管的更新日志(Changelog)和路线图(Roadmap)平台。 它可以帮助您与社区分享产品更新,并通过对即将推出的功能进行投票来收集反馈。

从功能上看,和老苏介绍的 Fider 有点类似

文章传送门:需求和建议搜集平台Fider

主要特点

  • 📋丰富的变更日志管理- 支持使用 Markdown 和富文本编辑器创建、编辑和组织事件
  • 🗳️社区投票- 允许用户对即将推出的功能进行投票并收集反馈。
  • 📊看板路线图- 具有多种事件状态(待办事项、投票中、进行中、已发布等)的拖放式看板
  • 📧邮件订阅系统- 用户可以订阅以接收有关新功能和版本更新的电子邮件
  • 🎨现代化界面- 响应式设计,具有深色/浅色主题和实时更新
  • 🛠️自托管- 通过 Docker 部署,让您完全控制自己的数据。
  • 🔌 RESTful API - 提供完整的 API 访问权限,用于集成和自定义工作流程。
  • 📮电子邮件通知- 通过管理界面配置 SMTP 设置以发送新闻通讯

应用场景

  • 发布产品更新: 以结构化和美观的方式向用户展示新功能、修复和改进。
  • 收集用户反馈: 通过让用户对规划中的功能进行投票,了解用户的真实需求和优先级。
  • 展示开发路线图: 使用看板清晰地展示产品未来的发展方向。
  • 构建社区: 通过邮件订阅等功能,围绕产品建立一个活跃的社区。

ShipShipShip 是一个现代化、灵活且易于部署的产品更新与反馈管理工具,适合希望与社区保持紧密互动的产品团队使用。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 shipshipship ,选择第一个 nelkinsky/shipshipship,版本选择 latest

本文写作时, latest 版本对应的应该是 1.1.2-beta 之后的版本

docker 文件夹中,创建一个新文件夹 shipshipship,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/shipshipship/data /app/data 存放数据库和应用数据

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8144 8080

环境

可变 默认值 描述
ADMIN_USERNAME 管理员登录用户名,设为 admin
ADMIN_PASSWORD 管理员登录密码,设为 admin
JWT_SECRET JWT 密钥,设为 your-secret-key-change-in-production ,建议更复杂一些
PORT 8080 服务器端口
DB_PATH ./data/changelog.db SQLite 数据库路径

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 新建文件夹 shipshipship 和 子目录
mkdir -p /volume1/docker/shipshipship/data

# 进入 shipshipship 目录
cd /volume1/docker/shipshipship

# 运行容器
docker run -d \
--restart unless-stopped \
--name shipshipship \
-p 8144:8080 \
-e ADMIN_USERNAME=admin \
-e ADMIN_PASSWORD=admin \
-e JWT_SECRET=your-secret-key-change-in-production \
-v $(pwd)/data:/app/data \
nelkinsky/shipshipship:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3.8'

services:
changelog:
image: nelkinsky/shipshipship:latest
container_name: shipshipship
restart: unless-stopped
ports:
- "8144:8080"
volumes:
- ./data:/app/data
environment:
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=admin
- JWT_SECRET=your-secret-key-change-in-production

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 shipshipship 和 子目录
mkdir -p /volume1/docker/shipshipship/data

# 进入 shipshipship 目录
cd /volume1/docker/shipshipship

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8144 就能看到主界面,但是现在什么都没有

后台管理地址为 http://群晖IP:8144/admin

我们环境变量中设置的用户名为 admin,密码为 admin

页面设置

可以修改公共页面的相关信息

回到公共页面时,你会发现 Project Title 已经改变了

事件管理

这里可以创建和管理更新事件,发布路线图状态并启用用户投票

  • 📝 Backlog(积压) - 想法和计划的功能
  • 🗳️ Proposed(建议) - 用户可以投票的功能
  • 🔄 Upcoming(即将推出)- 目前正在开发中的功能
  • 🚀 Released(已发布)- 已发布的功能(主要时间线)
  • 📦 Archived(已归档)- 内部事件(不向公众开放)

创建完成后

回到公共页面,如果是 Proposed 类别,别人就可以投票了,否则就只能发表意见

更多用法,可以参考官方的动图

参考文档

GauthierNelkinsky/ShipShipShip: A lightweight, self-hostable changelog and roadmap web application that lets you share product updates with your community and gather feedback through voting on upcoming features. Built with SvelteKit and Go.
地址:https://github.com/GauthierNelkinsky/ShipShipShip

ShipShipShip - Modern Changelog & Roadmap Platform
地址:https://shipshipship.io/

Chessload
地址:https://changelog.chessload.com/