本文属于「自托管 Docker 部署实战」系列(共 35 篇),第 25 篇。 示例中的 IP(192.0.2.10)、域名(example.com)、密码均为占位符,请按实际环境替换。

它是什么

自托管乐谱管理工具,支持 PDF/图片乐谱、歌单、多设备浏览,SQLite 存储。

前置条件

  • 一台 Linux 服务器(1C1G 起步;Java 类应用建议 2C4G 以上);
  • 已安装 Docker 与 Compose v2,执行 docker compose version 有版本号输出;
  • 所有示例里的 IP / 域名 / 密码都是占位符,实际部署请替换成自己的。
# 安装 Docker(已安装可跳过)
curl -fsSL https://get.docker.com | sh

# 目录约定:一个服务一个目录,后文的 ./data 均指栈目录内
mkdir -p /srv/docker/active/<stack> && cd /srv/docker/active/<stack>

镜像地址

vallezw/sheetable:latest

目录结构

/srv/docker/active/sheetable/
├── docker-compose.yml
└── config/               # sqlite 数据库 + 乐谱目录

部署步骤

# docker-compose.yml
services:
  sheetable:
    image: vallezw/sheetable:latest
    container_name: sheetable
    restart: unless-stopped
    ports:
      - "8585:8080"        # 容器内固定 8080
    volumes:
      - ./config:/app/config
    environment:
      - DB_DRIVER=sqlite
docker compose up -d
# 访问 http://<SERVER_IP>:8585

关键配置

  • 容器内端口是 8080,不是 8585,别映射错;
  • 数据在 /app/config(SQLite + 乐谱文件),备份这一个目录就够;
  • 乐谱建议按「歌手/专辑」建目录再批量导入。

注意事项

  • 图片乐谱体积大,注意磁盘;
  • 没有账号体系(或很弱),只在内网/加反代认证;
  • 升级前备份 config/,SQLite 存在 schema 迁移。

备份与升级

# 数据库与乐谱都在 config/
docker compose stop
tar czf "sheetable-$(date +%F).tar.gz" ./config
docker compose start

# 升级
docker compose pull
docker compose up -d
  • SQLite 在运行中直接打包可能不一致,先停容器再备份;
  • 乐谱文件体积大,定期检查磁盘。