首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Docker项目实战】使用Docker部署Shoebox数字记忆保存箱

【Docker项目实战】使用Docker部署Shoebox数字记忆保存箱

原创
作者头像
江湖有缘
发布2025-07-15 21:38:20
发布2025-07-15 21:38:20
4300
举报
文章被收录于专栏:Docker项目实战Docker项目实战

一、Shoebox介绍

1.1 Shoebox简介

Shoebox 是一个数字记忆管理工具,灵感来源于人们过去用鞋盒保存珍贵回忆的方式,帮助用户以结构化和安全的方式组织、存储视频,避免在云平台中遗失。

1.2 主要特点

  • 视频组织: 提供高效方式对视频进行分类与管理,便于日后查找与使用。
  • 视频导出: 支持将原始视频导出至指定路径,方便后续编辑与备份。
  • 记忆保存: 以时间线或主题形式结构化存储视频片段,便于回顾与创意再利用。
  • 用户友好界面: 简洁直观的交互设计,提升用户的操作体验。
  • 高效媒体处理: 基于 FFmpeg 实现快速且稳定的视频转码与处理功能。
  • 现代技术栈支持: 后端采用 Rust + Axum,前端基于 React + TypeScript,支持 SQLite/PostgreSQL 数据库,并具备 Docker/Kubernetes 部署能力。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为Ubuntu 22.04.1。

hostname

IP地址

操作系统版本

Docker版本

部署项目

jeven01

192.168.3.88

Ubuntu 22.04.1 LTS

27.1.1

Shoebox

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;

2.在Docker环境下部署Shoebox数字记忆保存箱。

2.3 注意事项

⚠️ 注意事项

  • 项目仍处于活跃开发阶段:Shoebox 目前仍在积极开发中,尚未达到生产环境的稳定性与安全性要求,功能和数据模型可能会发生变更。
  • 可能存在影响数据的风险:在使用过程中有可能出现导致媒体文件损坏或数据丢失的问题,请务必定期备份您的原始视频和关键数据。
  • 自行承担使用风险:建议仅在测试或个人环境中部署使用,不推荐用于重要生产场景或商业用途,除非你已充分了解并接受潜在风险。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

代码语言:bash
复制
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

3.2 检查Docker版本

检查Docker版本

代码语言:bash
复制
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

代码语言:bash
复制
root@jeven01:~# docker compose version
Docker Compose version v2.19.1

四、拉取Shoebox镜像

拉取Shoebox镜像,原镜像为ghcr.io/slackspace-io/shoebox:sha-9f05da53931ad6fa4f5b7f1d9b447ca65dec3e8b,如果拉取缓慢或失败,可尝试拉取swr.cn-north-4.myhuaweicloud.com/jeven/shoebox:latest镜像。

代码语言:bash
复制
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:latest

五、部署Shoebox容器

5.1 创建部署目录

  • 创建部署目录
代码语言:bash
复制
mkdir -p /data/shoebox &&  cd /data/shoebox

5.2 编辑部署文件

在`部署目录下,创建docker-compose.yaml文件,如下所示:

代码语言:bash
复制
vim docker-compose.yaml
代码语言:yaml
复制
version: '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   

🛠️ 环境变量说明

变量名

说明

示例值

SERVER_HOST

指定服务器绑定的主机地址,缺省为 127.0.0.1。在容器中建议设置为 0.0.0.0 以允许外部访问。

0.0.0.0

SERVER_PORT

指定服务器监听的端口号,缺省为 3000。Docker 映射到外部端口时可更改(如 7200:3000)。

3000

DATABASE_URL

数据库连接 URL,支持 SQLite 或 PostgreSQL。SQLite 路径应指向持久化目录。

sqlite:/app/data/videos.db

MEDIA_SOURCE_PATHS

视频扫描路径,可指定一个或多个路径,用逗号分隔。路径需挂载到容器内。

/mnt/videos

THUMBNAIL_PATH

缩略图存储路径,用于保存视频封面等信息,建议使用持久化挂载。

/app/thumbnails

EXPORT_BASE_PATH

视频导出的目标路径,用户导出视频时将保存在此目录中。

/app/exports

RUST_LOG

设置日志输出级别,控制日志详细程度。常见值有 error, warn, info, debug, trace

info


📁 目录映射建议(对应 volumes 配置)

容器路径

主机挂载路径

用途

权限

/mnt/videos

./videos

存放待扫描的原始视频文件

只读(ro)

/app/exports

./exports

导出处理后的视频文件

读写(rw)

/app/data

./data

存储数据库文件(如 SQLite)

读写(rw)

/app/thumbnails

./thumbnails

存储视频缩略图

读写(rw)


5.3 创建Shoebox容器

执行以下命令,创建Shoebox容器。

代码语言:bash
复制
docker compose up -d
在这里插入图片描述
在这里插入图片描述

5.4 查看Shoebox容器状态

检查Shoebox容器运行状态,确保Shoebox容器正常启动。

代码语言:bash
复制
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

六、访问Shoebox服务

浏览器地址: http://<个人的服务器IP>:7200,访问Shoebox的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述
在这里插入图片描述

七、Shoebox基本使用

7.1 上传文件

在宿主机/data/shoebox/videos挂载目录下,上传视频文件。

代码语言:bash
复制
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

7.2 扫描视频目录

点击点“Scan Directories ”扫描视频目录,如下所示:

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

八、总结

通过 Docker 部署 Shoebox,可以快速搭建一个高效、稳定的数字记忆管理平台,充分利用其现代化技术栈和强大功能来整理和保存珍贵视频资料。合理的环境变量配置与目录挂载策略确保了数据的持久化与安全性,同时便于后续维护和扩展。此次部署实战验证了 Shoebox 在容器化环境中的良好兼容性与实用性,为个人或团队提供了一种便捷的视频记忆存档解决方案。


原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Shoebox介绍
    • 1.1 Shoebox简介
    • 1.2 主要特点
  • 二、本次实践规划
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
    • 2.3 注意事项
  • 三、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 四、拉取Shoebox镜像
  • 五、部署Shoebox容器
    • 5.1 创建部署目录
    • 5.2 编辑部署文件
    • 5.3 创建Shoebox容器
    • 5.4 查看Shoebox容器状态
  • 六、访问Shoebox服务
  • 七、Shoebox基本使用
    • 7.1 上传文件
    • 7.2 扫描视频目录
  • 八、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档