
Shoebox是一个数字记忆管理工具,灵感来源于人们过去用鞋盒保存珍贵回忆的方式,帮助用户以结构化和安全的方式组织、存储视频,避免在云平台中遗失。
本次实践为个人测试环境,操作系统版本为Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
|---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | Shoebox |
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Shoebox数字记忆保存箱。
⚠️ 注意事项
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2025-06-11 12:57:12 UTC; 1 week 0 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 848 (dockerd)
Tasks: 83
Memory: 3.2G
CPU: 29min 49.224s
CGroup: /system.slice/docker.service
├─ 848 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1拉取Shoebox镜像,原镜像为
ghcr.io/slackspace-io/shoebox:sha-9f05da53931ad6fa4f5b7f1d9b447ca65dec3e8b,如果拉取缓慢或失败,可尝试拉取swr.cn-north-4.myhuaweicloud.com/jeven/shoebox:latest镜像。
root@jeven01:~# docker pull swr.cn-north-4.myhuaweicloud.com/jeven/shoebox:latest
latest: Pulling from jeven/shoebox
Digest: sha256:29b82b098906c818c49dc2da6005656297e4e121e25e201148eaea40164d738d
Status: Image is up to date for swr.cn-north-4.myhuaweicloud.com/jeven/shoebox:latest
swr.cn-north-4.myhuaweicloud.com/jeven/shoebox:latestmkdir -p /data/shoebox && cd /data/shoebox在`部署目录下,创建docker-compose.yaml文件,如下所示:
vim docker-compose.yamlversion: '3'
services:
app:
image: swr.cn-north-4.myhuaweicloud.com/jeven/shoebox:latest
container_name: shoebox
restart: always
ports:
- "7200:3000"
volumes:
# Mount media source directories (read-only)
- ./videos:/mnt/videos:ro
# Mount export directory (read-write)
- ./exports:/app/exports
# Mount data directory for persistence
- ./data:/app/data
# Mount thumbnails directory for persistence
- ./thumbnails:/app/thumbnails
environment:
- SERVER_HOST=0.0.0.0
- SERVER_PORT=3000
- DATABASE_URL=sqlite:/app/data/videos.db
- MEDIA_SOURCE_PATHS=/mnt/videos
- THUMBNAIL_PATH=/app/thumbnails
- EXPORT_BASE_PATH=/app/exports
- RUST_LOG=info 🛠️ 环境变量说明
变量名 | 说明 | 示例值 |
|---|---|---|
| 指定服务器绑定的主机地址,缺省为 |
|
| 指定服务器监听的端口号,缺省为 |
|
| 数据库连接 URL,支持 SQLite 或 PostgreSQL。SQLite 路径应指向持久化目录。 |
|
| 视频扫描路径,可指定一个或多个路径,用逗号分隔。路径需挂载到容器内。 |
|
| 缩略图存储路径,用于保存视频封面等信息,建议使用持久化挂载。 |
|
| 视频导出的目标路径,用户导出视频时将保存在此目录中。 |
|
| 设置日志输出级别,控制日志详细程度。常见值有 |
|
📁 目录映射建议(对应 volumes 配置)
容器路径 | 主机挂载路径 | 用途 | 权限 |
|---|---|---|---|
|
| 存放待扫描的原始视频文件 | 只读(ro) |
|
| 导出处理后的视频文件 | 读写(rw) |
|
| 存储数据库文件(如 SQLite) | 读写(rw) |
|
| 存储视频缩略图 | 读写(rw) |
执行以下命令,创建Shoebox容器。
docker compose up -d
检查Shoebox容器运行状态,确保Shoebox容器正常启动。
root@jeven01:/data/tillywork# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
tillywork-db-1 postgres:16.3-bullseye "docker-entrypoint.s…" db 2 minutes ago Up 2 minutes 5432/tcp
tillywork-redis-1 redis:7.2.5-alpine "docker-entrypoint.s…" redis 2 minutes ago Up 2 minutes 6379/tcp
tillywork-tillywork-1 tillywork/tillywork:latest "/docker-entrypoint.…" tillywork 2 minutes ago Up 2 minutes 0.0.0.0:8110->80/tcp, :::8110->80/tcp, 0.0.0.0:3600->3000/tcp, :::3600->3000/tcp浏览器地址:
http://<个人的服务器IP>:7200,访问Shoebox的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在宿主机/data/shoebox/videos挂载目录下,上传视频文件。
root@jeven01:/data/shoebox/videos# pwd
/data/shoebox/videos
root@jeven01:/data/shoebox/videos# ll
total 3336
drwxr-xr-x 2 root root 4096 Jun 18 15:00 ./
drwxr-xr-x 6 root root 4096 Jun 18 14:52 ../
-rw-r--r-- 1 root root 3406789 Jun 18 15:00 test.mp4点击点“Scan Directories ”扫描视频目录,如下所示:

可以看到已经扫描出视频文件,并且显示视频的缩略图。

通过 Docker 部署 Shoebox,可以快速搭建一个高效、稳定的数字记忆管理平台,充分利用其现代化技术栈和强大功能来整理和保存珍贵视频资料。合理的环境变量配置与目录挂载策略确保了数据的持久化与安全性,同时便于后续维护和扩展。此次部署实战验证了 Shoebox 在容器化环境中的良好兼容性与实用性,为个人或团队提供了一种便捷的视频记忆存档解决方案。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。