Skip to content

一个用于去中心化网络的小型自托管联合信使。

License

Notifications You must be signed in to change notification settings

yuanxiaoming8899/databag

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

贡献.设计

数据包

用于自托管的联合信使

-> 设计概述 <-


  

移动和浏览器应用程序屏幕


Databag 旨在提高效率,在主机系统和网络上消耗最少的资源。显着的特点包括:

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

该应用程序可在 fdroid 以及谷歌和苹果商店上使用。您可以在此处测试该项目,但不要发布任何重要内容,因为该服务器会定期擦除。非常感谢有关 UI/UX、错误或功能的反馈。

安装

要使用数据包,您需要一个带有证书的指向您的节点的 DNS 名称。您可以手动部署节点,但使用容器服务会更轻松。适用于 arm64 和 amd64 的容器可在此处获取。

Docker 撰写命令

从 net/container 子目录:

  • sudo docker-compose -f compose.yaml -p databag up

Portainer 和 Nginx 代理管理器的示例

来自Portainer:

  • 在卷视图中,单击添加卷:
    • 输入名称,然后单击“创建卷”
  • 在容器视图中,单击添加容器:
    • 在“图像”字段中输入“balzack/databag:latest”
    • 单击“发布新网络端口”,并为主机和容器都选择端口 7000
    • 在“高级容器设置”下,选择“Env”,然后单击“添加环境变量”
      • 输入“名称”作为“管理员”以及您的管理员密码 [密码]
    • 在“高级容器设置”下,选择“卷”,然后选择“映射附加卷”
      • 输入“/var/lib/databag”作为“container”,输入创建的卷作为“volume”
    • 单击“部署容器”

来自 Nginx 代理管理器:

  • 添加主机并指定:
    • 主机名 [主机名.域]
    • Portainer IP地址[地址]
    • 端口“7000”
    • 请求新的 SSL 证书
Nginx 代理配置➡️点击展开⬅️
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; }

<clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" value="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; }" tabindex="0" role="button">

从您的浏览器:

  • 在地址栏中输入您的服务器地址[主机名.域]
    • 单击右上角的齿轮图标
    • 输入您的管理员密码:[密码]
    • 单击仪表板中的齿轮图标
      • 输入联合主机作为 [主机名.域]
      • 点击“保存”
    • 单击用户图标生成新帐户链接
      • 点击链接创建帐户

其他安装选项

此处无需容器即可在 Raspberry Pi Zero 上安装。

此处无需在 AWS 中安装容器。

在此处将 Databag 集成到 OpenWrt 固件中。

在CapRoverCasaOSUnraidRuntipiKuberoUmbrel中一键安装

音频和视频通话

Databag提供音频和视频通话,并依赖STUN/TURN中继服务器进行NAT穿越。测试是使用coturnpion完成的,并且应该适用于任何实现。此处提供了安装 coturn 服务器的说明。

如果您想启用音频和视频通话,您应该设置自己的中继服务器。不过,出于测试目的,您可以使用演示中继服务器配置。在管理配置模式中,设置:

  • 启用 WebRTC 通话:-打开-
  • WebRTC 服务器 URL:转:34.210.172.114:3478?transport=udp
  • WebRTC 用户名:user
  • WebRTC密码:pass

路线图

请让我知道任何缺少的功能;是当前的积压情况。根据社区的兴趣对功能进行优先级排序。

About

一个用于去中心化网络的小型自托管联合信使。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 72.1%
  • Go 26.0%
  • Swift 0.7%
  • Java 0.5%
  • Shell 0.1%
  • Ruby 0.1%
  • Other 0.5%