Giter Club home page Giter Club logo

dcomms-compose's Introduction

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

dcomms-compose's People

Contributors

kpetku avatar jnny avatar aphick avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.