Mobile and Browser App Screens
Databag 专为高效设计,消耗极少的托管资源。主要特性包括:
- 去中心化(应用与服务器节点之间直接通信)
- 联邦化(不同节点上的账户可以相互通信)
- 基于公钥-私钥的身份(不绑定任何区块链或托管域名)
- 端到端加密(如果已密封,托管管理员无法查看主题)
- 音频和视频通话(NAT 穿透需要单独的中继服务器)
- 基于主题的线程(消息按主题而非联系人组织)
- 无限制参与者(群组线程成员数量无限制)
- 轻量级(服务器可运行在 raspberry pi zero v1.3 上)
- 低延迟(使用 websockets 进行推送事件以避免轮询)
- 每节点无限制账户(可为您的整个家庭托管)
- 新联系人、消息和通话的移动提醒(支持 UnifiedPush、FCM、APN)
- 多因素身份验证(与 TOTP 应用集成)
该应用也可在 fdroid 以及 google 和 apple 商店上获取。你可以在 这里 测试该项目,但请勿发布任何重要内容,因为该服务器会定期清除。
设计
阅读 设计指南。链接至 Figma 文件。您可以随意复制 Figma 文件进行编辑。非常欢迎对 UI/UX、bug 或功能提出反馈。
安装
要使用 databag,您需要一个指向您节点并带有证书的 DNS 名称。您可以手动部署节点,但使用容器服务会轻松得多。arm64 和 amd64 的容器可在 这里 获取。
Docker Compose
使用 docker compose 通过 dockerhub 容器启动:
标准启动
# From the net/container sub directory:
docker-compose -f compose.yaml -p databag up
使用 certbot https 证书启动
# FIRST: create a DNS entry in your DNS to point your desired subdomain to your host
# SECOND: edit the net/container/docker-compose-swag.yml to include your domain name
# THIRD: From the root of the project directory:
mkdir -p ~/appdata
docker-compose -f net/container/docker-compose-swag.yml -p databag up
使用 Portainer 和 Nginx Proxy Manager 的示例
从 Portainer:
- 在卷视图中,点击添加卷:
- 输入名称,然后点击“创建卷”
- 在容器视图中,点击添加容器:
- 在“镜像”字段中输入“balzack/databag:latest”
- 点击“发布新的网络端口”,并为宿主和容器都选择端口 7000
- 在“高级容器设置”下,选择“环境变量”,然后点击“添加环境变量”
- 将“名称”输入为“ADMIN”,并将您的管理员密码 [password]
- 在“高级容器设置”下,选择“卷”,然后选择“映射附加卷”
- 为“容器”输入“/var/lib/databag”,为“卷”输入已创建的卷
- 点击“部署容器”
From Nginx Proxy Manager:
- 添加一个主机并指定:
- 主机名 [hostname.domain]
- Portainer IP 地址 [address]
- 端口 '7000'
- 请求新的 SSL 证书
Nginx Proxy 配置 ➡️ 点击展开 ⬅️
server {
server_name your.site.tld;
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://127.0.0.1:7000;
client_max_body_size 0;
proxy_max_temp_file_size 0;
}
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/your.site.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your.site.tld/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
add_header Strict-Transport-Security "max-age=0";
}
server {
if ($host = your.site.tld) {
return 301 https://$host$request_uri;
}
listen 80;
server_name your.site.tld;
return 404;
}
从您的浏览器:
- 在地址栏中输入您的服务器地址 [hostname.domain]
- 点击右上角的齿轮图标
- 输入您的管理员密码:[password]
- 点击仪表板中的齿轮图标
- 将 Federated Host 设置为 [hostname.domain]
- 点击“保存”
- 点击用户图标以生成新的账户链接
- 按照链接创建账户
使用 nginx-proxy 的示例
如果您使用 nginx-proxy 进行自动证书续期,
请参阅 /examples/docker-nginx-proxy/ 目录中提供的示例。
其他安装选项
在 Raspberry Pi Zero 上无容器安装,请参见 此处。
在 AWS 上无容器安装,请参见 此处。
在 OpenWrt 固件中集成 Databag,请参见 此处。
一键安装支持 CapRover、CasaOS、Unraid、Runtipi、Kubero、Umbrel
音频和视频通话
Databag 提供音频和视频通话功能,并依赖 STUN/TURN 中继服务器进行 NAT 穿透。测试已在 coturn 和 cloudflare 上进行,并且应该适用于任何实现。安装 coturn 服务器的说明请参见 此处。
如果您想启用音频和视频通话,您应该设置自己的中继服务器或使用 cloudflare turn 服务。出于测试目的,您可以使用演示中继服务器配置。在管理配置模态框中,设置:
- 启用 WebRTC 通话:-开启-
- WebRTC 服务器 URL:turn:34.210.172.114:3478?transport=udp
- WebRTC 用户名:user
- WebRTC 密码:pass
路线图
请添加任何缺失的功能;此处 是当前待办事项列表。功能将根据社区的兴趣进行优先级排序。

