databag 项目介绍
项目概览
Databag 是一款专为自托管设计的联邦通讯应用。它旨在通过最小化托管资源消耗来提升效率。Databag 提倡去中心化和联邦化的通信结构,允许不同服务器节点之间的账户进行互通。用户可通过公私钥作为身份标识,这种方式不依赖于区块链或托管域名。此外,Databag 提供端到端加密,确保信息的隐私性,即使是托管管理员也无法查看加密的聊天内容。
主要功能特点
- 去中心化: 应用与服务器节点直接通信,无需中间服务器。
- 联邦性质: 可以跨节点与其他账户交流。
- 公私钥身份认证: 独立于任何区块链或托管域。
- 端到端加密: 主机管理员无法查看密封话题内容。
- 音视频通话: 需要单独的转发服务器进行 NAT 穿透。
- 话题式线程: 信息按话题而非联系人组织。
- 无限参与者: 不限制群组成员数量。
- 轻量级: 服务器可以运行在 Raspberry Pi Zero v1.3 上。
- 低延迟: 使用 Websockets 进行推送事件,避免轮询。
- 单节点无限账户: 可为全家人托管。
- 移动端提醒: 支持 UnifiedPush、FCM、APN 收取新联系人、消息和通话提醒。
- 多因素认证: 集成 TOTP 应用。
应用获取
Databag 可在 F-Droid、Google Play 和 Apple App Store 上下载。用户可以通过 此链接 测试该项目,但请勿发布重要内容,因为该服务器会定期清除。欢迎对用户界面及体验、漏洞或功能提出反馈意见。
安装说明
要使用 Databag,需要一个指向您节点的 DNS 名称和证书。可以手动部署节点,但使用容器服务将更加方便。适用于 arm64 和 amd64 的容器可在 这里 找到。
使用 Docker Compose 启动
-
标准启动:
# 在 net/container 子目录中运行: docker-compose -f compose.yaml -p databag up
-
使用 Certbot SSL 证书启动:
# 第一步:在 DNS 中创建一个 DNS 条目,使所选子域指向主机 # 第二步:编辑 net/container/docker-compose-swag.yml,添加您的域名 # 第三步:在项目根目录中运行: mkdir -p ~/appdata docker-compose -f net/container/docker-compose-swag.yml -p databag up
通过 Portainer 和 Nginx Proxy Manager 启动
在 Portainer 中:
- 在卷视图中,点击“添加卷”,输入名称后点击“创建卷”。
- 在容器视图中,点击“添加容器”:
- 在“图像”字段输入
balzack/databag:latest
- 点击“发布新网络端口”,主机和容器均选择端口 7000
- 在“高级容器设置”中,选择“Env”,点击“添加环境变量”
- 进入
Name
字段输入ADMIN
和您的管理员密码。[password]
- 进入
- 在“高级容器设置”中,选择“Volumes”,然后“映射附加卷”
- 进入
/var/lib/databag
作为“container”和创建的卷作为“volume”
- 进入
- 点击“部署容器”
- 在“图像”字段输入
在 Nginx Proxy Manager 中:
- 添加一个主机并指定:
- 主机名 [hostname.domain]
- Portainer IP 地址 [address]
- 端口 7000
- 请求新 SSL 证书
从浏览器中进行配置
- 在地址栏输入服务器地址 [hostname.domain]
- 点击右上角的齿轮图标
- 输入您的管理员密码 [password]
- 在仪表盘中再次点击齿轮图标
- 输入联邦主机为 [hostname.domain]
- 点击“保存”
- 点击用户图标生成新账户链接
- 点击链接创建账户
其他安装选项
- 在 Raspberry Pi Zero 无容器安装:点击这里
- 在 AWS 无容器安装:点击这里
- 在 OpenWrt 固件中集成 Databag:点击这里
- 支持 1-点击安装的系统包括:CapRover、CasaOS、Unraid、Runtipi、Kubero、Umbrel
音频和视频通话
Databag 提供音频和视频通话功能,并依靠 STUN/TURN 转发服务器进行 NAT 穿透。测试已与 coturn 和 cloudflare 进行过并验证其兼容性。完整安装指引请参阅 此处。为启用音视频通话,您需要设置自己的转发服务器或使用 cloudflare TURN 服务。在测试时,您可以使用配置好的演示转发服务器。
开发计划
请将您认为缺少的功能补充到 这里 的当前待办事项中。功能的优先级将根据社区的兴趣进行排序。