Go to file
2022-12-06 22:52:53 -08:00
.github/workflows Update go.yml 2022-10-26 14:02:15 -07:00
app/mobile clear remote channels from disconnecting contacts 2022-11-16 09:50:42 -08:00
doc support seal key handling in webapp 2022-12-06 22:52:53 -08:00
net support seal key handling in webapp 2022-12-06 22:52:53 -08:00
.gitignore adding http utility functions 2022-01-17 13:27:48 -08:00
LICENSE Initial commit 2021-12-20 13:45:17 -08:00
package.json preparing app context 2022-09-06 15:16:53 -07:00
README.md Update README.md 2022-11-15 21:18:07 -08:00
yarn.lock preparing app context 2022-09-06 15:16:53 -07:00

Databag

Communication for the Decentralized Web


  

Mobile and Browser App Screens


Databag is a self-hosted messaging service. Notable features include:

  • Public-private key based identity (not bound to any blockchain or hosting domain)
  • Federated (accounts on different nodes can communicate)
  • Topic based threads (messages grouped by topic not contacts)
  • Lightweight (server runs on a raspberry pi zero v1.3)
  • Decentralized (direct communication between app and contact's node)
  • Low latency (use of websockets for push events to avoid polling)
  • Responsive (renders well in phone, tablet and pc)
  • Unlimited accounts per node (host for your whole family)
  • Mobile alerts (push notifications on new contacts and messages)

The app is available in the google and apple stores. You can also test out the project here, but don't post anything important as this server is regularly wiped. Feedback on the UI/UX, bugs or features is greatly appreciated.

Installation

To use databag, you will need a DNS name pointing to your node with a certificate. You can deploy a node manually, but you will have a much easier time using a container service. Containers for arm64 and amd64 are available here.

Instruction for installing without a container on a Raspberry Pi Zero are here.

Example with Portainer and Nginx Proxy Manager

From Portainer:

  • In the container view, click add container:
    • In the 'Image' field enter 'balzack/databag:latest'
    • Click 'publish a new network port', and select port 7000 for both host and container
    • Under 'Advanced container settings', select 'Env', and click 'Add Environment Variable'
      • Enter 'Name' as 'ADMIN' and your admin password [password]
    • Click 'Deploy the Container'

From Nginx Proxy Manager:

  • Add a host and specify:
    • Hostname [hostname.domain]
    • Portainer IP address [address]
    • Port '7000'
    • Request new SSL certificate

From Your Browser:

  • Enter your server address in the address bar [hostname.domain]
    • Click the cog icon in the top right
    • Enter your admin password: [password]
    • Click the cog icon in the dashboard
      • Enter Federated Host as [hostname.domain]
      • Click 'Save'
    • Click the user icon to generate a new account link
      • Follow the link to create an account