aphick / dcomms-compose

Decentralized communications that work with or without the Internet

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dcomms

Decentralized communications that work with or without the Internet

Prerequisites

  • docker using the docker guide (https://docs.docker.com/engine/install/)
  • curl, aria2, tor
  • A directory named /var/www/dcomms created on the host for the website document root.
  • A subdomain with the A record pointed to the IP address of a node for automatic issuance of a Let's Encrypt SSL certificate.
  • A subdomain with the MX record pointed to the A record of a node for DeltaChat mail delivery.
  • (Optional) A Tor hidden service configured, and listening on port 80 and 8448.

Introduction

dcomms is a bundle of decentralized communication software running as services in the form of a docker swarm stack.

It is used to rapidly deploy a server hosting a variety of decentralized, encrypted, and federated communications platforms such as Matrix and DeltaChat across multiple hosts.

Let's Encrypt TLS certificates are automatically issued and managed by the Caddy container across all services.

Service containers

The dcomms stack leverages single node, non-replicated containers of the following services built from the latest images below:

Ports

CENO client: 28729/udp
Caddy (webserver): 443/tcp, 80/tcp, 8448/tcp
DeltaChat (postfix/dovecot): 587/tcp 143/tcp

  • Note: dcomms leverages docker host networking and therefore we recommend denying access to all other unnecessary ports at the host level.

Installation

Point the following A records to the docker worker you wish to use for deployment:

matrix.server1.example.org -> IP of your server
chat.server1.example.org -> IP of your server
server1.example.org -> IP of your server

Point the following MX record to the A record:

server1.example.org -> server1.example.org

Clone or download this repository. Review ./install.sh and make any that may be required for your environment.

Install

Once your server meets the prerequisites, installation simply involves running ./install.sh and responding to any prompts. Configs will be automatically placed in your DCOMMS_DIR and a run.sh script will be generated.

  • Note: If you wish to reinstall dcomms you will need to delete all docker volumes, and the conf directory in DCOMMS_DIR before running install.sh again.

Redeploy

In the future, if you need to start the dcomms containers again simply run the ./run.sh program in your DCOMMS_DIR.

Tor

If you wish to provide users with a Tor hidden service address by which they can access your services, you must first install and configure Tor. The script will detect if you have Tor installed and prompt you for a hidden service address. You can find this in the hostname file in your HiddenServiceDir.

Example:

cat /var/lib/tor/onion_service/hostname

Post installation

  • Copy a pre-existing website into /var/www/dcomms/ across all docker nodes or checkout all files from either the dcomms-web repo (UA) or the chatv3 repo (RU) into the same location.
  • Optionally visit https://server1.example.org to view the website.
  • Optionally visit https://chat.server1.example.org to view the Element service.
  • Optionally configure a Matrix client to use https://matrix.server1.example.org as the homeserver.

Troubleshooting

Log review

Altering configs

Specific issues with services

About

Decentralized communications that work with or without the Internet

License:GNU General Public License v3.0


Languages

Language:Shell 100.0%