开源视频监控服务器Shinobi

什么是 Shinobi ?

Shinobi 是用 Node.JS 编写的开源 CCTV 解决方案。采用多帐户系统、WebSocket Streams 和直接保存到 MP4 的设计。Shinobi 提供了一个基于 Web 的用户界面,使用户可以通过浏览器来查看和管理监控视频,Shinobi 支持多个品牌的摄像头和网络视频流,并提供了广泛的定制选项。

安装

在群晖上以 Docker 方式安装。

镜像下载

Docker Hub 上的版本还是两年前的

现在的镜像发布在 gitlab registry,一共有 6个 tags ,老苏选择了 latest,对应的是 CPU版,如果你的设备带 nvidia显卡,可以考虑选择 nvidia 的版本,这个版本支持 GPU (NVIDIA CUDA)

新旧两个版本对比一下,尺寸差距还是很大的

用 SSH 客户端登录到群晖后,执行下面的命令拉取镜像

bash 复制代码
# 拉取镜像
docker pull registry.gitlab.com/shinobi-systems/shinobi:latest

如果拉不动,这回 docker 代理网站:https://dockerproxy.com/ 似乎也帮不上忙了

命令行安装

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

bash 复制代码
# 新建文件夹 shinobi 和 子目录
mkdir -p /volume1/docker/shinobi/{config,customAutoLoad,database,plugins,videos}

# 新建临时文件存储文件系统
mkdir -p /dev/shm/Shinobi/streams

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

# 启动容器
docker run -d \
   --name=shinobi \
   --shm-size=2048m \
   -p 8686:8080 \
   -v $(pwd)/config:/config \
   -v $(pwd)/customAutoLoad:/home/Shinobi/libs/customAutoLoad \
   -v $(pwd)/database:/var/lib/mysql \
   -v $(pwd)/plugins:/home/Shinobi/plugins \
   -v $(pwd)/videos:/home/Shinobi/videos \
   -v /etc/TZ:/etc/TZ:ro \
   -v /etc/localtime:/etc/localtime:ro \
   -v /dev/shm/Shinobi/streams:/dev/shm/streams \
   registry.gitlab.com/shinobi-systems/shinobi:latest

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

yaml 复制代码
version: '3'

services:
  shinobi:
    image: registry.gitlab.com/shinobi-systems/shinobi:latest
    container_name: shinobi
    shm_size: 2048m
    ports:
      - 8686:8080
    volumes:
      - ./config:/config
      - ./customAutoLoad:/home/Shinobi/libs/customAutoLoad
      - ./database:/var/lib/mysql
      - ./plugins:/home/Shinobi/plugins
      - ./videos:/home/Shinobi/videos
      - /etc/TZ:/etc/TZ:ro
      - /etc/localtime:/etc/localtime:ro
      - /dev/shm/Shinobi/streams:/dev/shm/streams

然后执行下面的命令

bash 复制代码
# 新建文件夹 shinobi 和 子目录
mkdir -p /volume1/docker/shinobi/{config,customAutoLoad,database,plugins,videos}

# 新建临时文件存储文件系统
mkdir -p /dev/shm/Shinobi/streams

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

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8686/super 就能看到管理员登陆界面

默认管理员用户名: admin@shinobi.video 密码: admin

登录成功

新建用户

首先记得,安全起见,请重置帐户admin@shinobi.video 的密码

新建一个用户

只要设置邮件、密码即可,其他项可以根据需要设置

Max Storage Amount 表示最大可用存储,例如可以设置为 10000,表示 10G

设置中文

在浏览器中输入 http://群晖IP:8686,使用刚刚创建的账户登陆

登录成功之后

左侧菜单找到 Account Settings --> Preferances --> Dashboard Language

下拉找到 zh,点右下角的 Save 按钮保存,刷新页面之后就可以了

不过老苏觉得,这翻译水平估计是用软件自动翻的,反而有点看不懂了,所以后面还是按英文界面截的图

添加摄像头

左侧菜单找到 Monitor Settings 开始添加摄像头

填入摄像头主流 RTSP 地址

如果有的话,填入摄像头子流 RTSP 地址

其他都是先用的默认值,保存

使用

回到左侧菜单 Monitors,后面的数字已经从 0 变为了 1

Videos 中过一会儿会有录像

还可以设置区域检测

录像保存在群晖上,这下就是 SD 卡挂了,也不用担心没有录像了

功能挺多的,慢慢来摸索吧,不过内存占用还是有点高的

参考文档

Shinobi Systems / Shinobi · GitLab

地址:https://gitlab.com/Shinobi-Systems/Shinobi
Shinobi - Simple CCTV and NVR Solution - Home

地址:https://shinobi.video/
Docker · dev · Shinobi Systems / Shinobi · GitLab

地址:https://gitlab.com/Shinobi-Systems/Shinobi/-/tree/dev/Docker
ShinobiDocs

地址:https://docs.shinobi.video/
linux - When should I use /dev/shm/ and when should I use /tmp/? - Super User

地址:https://superuser.com/questions/45342/when-should-i-use-dev-shm-and-when-should-i-use-tmp

相关推荐
打工仔折腾 AI13 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
xbzb17 小时前
自建镜像仓库:registry 一条命令 + harbor 部署、授权、跨库同步与卸载
docker·harbor·镜像·仓库·同步·registry
wz97542 天前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
新*2 天前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
小白的码BUG之路2 天前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
AlfredZhao2 天前
Docker Compose 平滑切换环境变量文件,容器配置不残留
docker
duansamve2 天前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
那明眸似水3 天前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
知已难寻3 天前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
xbzb3 天前
镜像到底存在哪:/var/lib/docker 的四级映射与 daemon.json 配置
docker·容器·json·镜像·daemon.json·四级