支持音视频的消息服务Databag

什么是 Databag ?

Databag 是用于去中心化网络的微型轻量级自托管联合信使。显著的特征包括去中心化(应用程序和服务器节点之间的直接通信)和联合(不同节点上的帐户可以通信)。可实现企业内音视频服务,保护企业通信隐私。

软件特点:

  • 去中心化(应用程序和服务器节点之间直接通信)
  • 联合(不同节点上的账户可以通信)
  • 基于公钥-私钥的身份(不绑定到任何区块链或托管域)
  • 端到端加密(如果密封,托管管理员无法查看主题)
  • 音视频通话(NAT 穿越需要单独的中继服务器)
  • 基于主题的线程(按主题而不是联系人组织的消息)
  • 轻量级(服务器可以在树莓派 zero v1.3 上运行)
  • 低延迟(使用 websocket 进行推送事件以避免轮询)
  • 每个节点无限个帐户(为您的整个家庭提供主机)
  • 新联系人、消息和通话的移动提醒(支持 UnifiedPushFCMAPN

支持音视频的消息服务Databag_第1张图片

也支持移动端

支持音视频的消息服务Databag_第2张图片

安装

在群晖上以 Docker 方式安装。

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

本文写作时, latest 版本对应为 0.1.8

支持音视频的消息服务Databag_第3张图片

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

文件夹 装载路径 说明
docker/databag/data /var/lib/databag 存放数据库和上传文件等

支持音视频的消息服务Databag_第4张图片

端口

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

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8770 7000

支持音视频的消息服务Databag_第5张图片

环境

可变
ADMIN 管理员的密码

支持音视频的消息服务Databag_第6张图片

命令行安装

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

# 新建文件夹 databag 和 子目录
mkdir -p /volume1/docker/databag/data

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

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name databag \
   -p 8770:7000 \
   -v $(pwd)/data:/var/lib/databag \
   -e ADMIN=123456 \
   balzack/databag:latest

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

version: '3'

services:
  databag:
    image: balzack/databag:latest
    container_name: databag
    restart: unless-stopped
    ports:
      - 8770:7000
    volumes:
      - ./data:/var/lib/databag
    environment:
      - ADMIN=123456

然后执行下面的命令

# 新建文件夹 databag 和 子目录
mkdir -p /volume1/docker/databag/data

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

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

# 一键启动
docker-compose up -d

反向代理

老苏没有公网服务器做内网穿透,但这次需要和第三方的 WebRTC Server 互通,同时网页上使用音视频功能又需要 https 协议,所以本次采用的方案是 Cloudflared + npm,一方面可以使用 https 协议,另一方面也能获取到可公开访问的地址,不了解的可以去看看老苏之前写的文章

文章传送门:免费的Cloudflared实现外网访问群晖(续)

代理主机设置

支持音视频的消息服务Databag_第7张图片

SSL 不需要设置

支持音视频的消息服务Databag_第8张图片

Advanced 需要填入下面的内容

server_name databag.laosu.cf;
add_header Strict-Transport-Security "max-age=0";

location / {
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";
  proxy_set_header Host $host;
  proxy_pass http://192.168.0.197:8770;
  client_max_body_size 0;
  proxy_max_temp_file_size 0;
}

其中:

  • server_name 后面的 databag.laosu.cf 就是我们设定的域名;
  • proxy_pass 后面的 http://192.168.0.197:8770 对应的就是我们局域网访问的地址;

支持音视频的消息服务Databag_第9张图片

运行

管理后台

在浏览器中输入 http://群晖IP:8770 或者用 https://域名 就能看到登录界面

支持音视频的消息服务Databag_第10张图片

点右上角的齿轮,切换到 Admin 用户,然后输入环境变量设置的密码

支持音视频的消息服务Databag_第11张图片

新建账号

登录成功后,点最右侧的小人图标创建新账号 Create Account Link

支持音视频的消息服务Databag_第12张图片

会弹出创建新账号的链接

支持音视频的消息服务Databag_第13张图片

如果用域名访问

支持音视频的消息服务Databag_第14张图片

复制上面的 Browser Link,在浏览器的新窗口打开,来创建新的账号

支持音视频的消息服务Databag_第15张图片

登录成功后的用户界面

支持音视频的消息服务Databag_第16张图片

老苏建了 2 个账号用于测试

支持音视频的消息服务Databag_第17张图片

【注意】:一定要在 Account 中启用 Visible in Registry ,否则别人加好友的时候是搜不到你的;

支持音视频的消息服务Databag_第18张图片

移动端

Android 客户端可以在 Google Play 或者 F-Droid 下载,iOS 则需要到 App Store 下载

注意选择正确的平台,一般 Android 手机应该是用的 arm64-v8a

支持音视频的消息服务Databag_第19张图片

移动端也是可以注册账号的,但是老苏是先建好的,所以可以直接登录

【注意】:第一行要输入 用户名/服务器地址

支持音视频的消息服务Databag_第20张图片

登录成功后的主界面

支持音视频的消息服务Databag_第21张图片

接下来就可以开始聊天了

支持音视频的消息服务Databag_第22张图片

移动端的界面

支持音视频的消息服务Databag_第23张图片

音视频呼叫

Databag 支持音频和视频通话功能,但依赖于 STUN/TURN 中继服务器进行 NAT 穿越

如果想启用音频和视频通话,如果自己没搭建,但是又想体验的话,可以在管理端设置

支持音视频的消息服务Databag_第24张图片

  • Enable WebRTC calls:启用;
  • WebRTC Server URL:设为 turn:34.210.172.114:3478?transport=udp
  • WebRTC Username:设为 user
  • WebRTC Password:设为 pass

支持音视频的消息服务Databag_第25张图片

如果在移动端发起,打开联系人,点 Call Contact

支持音视频的消息服务Databag_第26张图片

进入呼叫界面

支持音视频的消息服务Databag_第27张图片

网页端上会弹出一行按钮

【注意】:网页端必须使用 https 协议

支持音视频的消息服务Databag_第28张图片

接听后会申请权限

支持音视频的消息服务Databag_第29张图片

接通后默认是不打开摄像头和麦克风的,需要自己开启

参考文档

balzack/databag: A tiny selfhosted federated messenger for the decentralized web.
地址:https://github.com/balzack/databag

你可能感兴趣的:(群晖,docker,即时通讯)