{"id":19174587,"url":"https://github.com/equalitie/dcomms-docker-compose","last_synced_at":"2025-04-09T20:42:24.777Z","repository":{"id":249705561,"uuid":"823786258","full_name":"equalitie/dcomms-docker-compose","owner":"equalitie","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-11T16:09:15.000Z","size":47,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-23T22:37:42.657Z","etag":null,"topics":["dcomms"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/equalitie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-03T18:00:17.000Z","updated_at":"2025-03-11T16:09:19.000Z","dependencies_parsed_at":"2025-01-04T01:34:50.127Z","dependency_job_id":"861c6852-fdc1-4d82-a3c0-2dffb577f5a5","html_url":"https://github.com/equalitie/dcomms-docker-compose","commit_stats":null,"previous_names":["equalitie/dcomms-docker-compose"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fdcomms-docker-compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fdcomms-docker-compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fdcomms-docker-compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equalitie%2Fdcomms-docker-compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/equalitie","download_url":"https://codeload.github.com/equalitie/dcomms-docker-compose/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248110050,"owners_count":21049425,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dcomms"],"created_at":"2024-11-09T10:18:25.366Z","updated_at":"2025-04-09T20:42:24.768Z","avatar_url":"https://github.com/equalitie.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dcomms\n\nDecentralized communications that work with or without the Internet\n\n# Prerequisites\n* `docker` using the docker guide (https://docs.docker.com/engine/install/)\n* `curl`, `aria2`, `tor`\n* A directory named `/var/www/dcomms` created on the host for the website document root.\n* A subdomain with the A record pointed to the IP address of a node for automatic issuance of a Let's Encrypt SSL certificate.\n* A subdomain with the MX record pointed to the A record of a node for DeltaChat mail delivery.\n* (Optional) A Tor hidden service [configured](https://community.torproject.org/onion-services/setup/), and listening on port 80 and 8448.\n\n# Introduction\n\n`dcomms` is a bundle of decentralized communication software running as services in the form of a docker swarm stack.\n\nIt is used to rapidly deploy a server hosting a variety of decentralized, encrypted, and federated communications platforms such as [Matrix](https://matrix.org/) and [DeltaChat](https://delta.chat) across multiple hosts.\n\nLet's Encrypt TLS certificates are automatically issued and managed by the Caddy container across all services.\n\n## Service containers\n\nThe dcomms stack leverages single node, non-replicated containers of the following services built from the latest images below:\n\n* [CENO client](https://hub.docker.com/r/equalitie/ceno-client) courtesy of censorship.no\n* [Synapse Docker](https://hub.docker.com/r/matrixdotorg/synapse/) courtesy of matrix.org\n* [Element](https://hub.docker.com/r/vectorim/element-web/) courtesy of vector-im\n* [Mau](https://mau.dev/maubot/maubot) courtesy of the maubot dev team\n* [Caddy](https://hub.docker.com/_/caddy) courtesy of the Caddy Docker Maintainers\n* [docker-mailadm](https://github.com/deltachat/docker-mailadm), includes dovecot and postfix, courtesy of DeltaChat\n* [Mastodon](https://hub.docker.com/r/aphick/mastodon-sendmail), a modified version of the original Mastodon [container](https://hub.docker.com/r/tootsuite/mastodon) that includes sendmail.\n\n## Ports\n\nCENO client: 28729/udp \\\nCaddy (webserver): 443/tcp, 80/tcp, 8448/tcp \\\nDeltaChat (postfix/dovecot): 587/tcp 143/tcp\n\n* Note: `dcomms` leverages docker host networking and therefore we recommend denying access to all other unnecessary ports at the host level.\n\n# Installation\n\nPoint the following A records to the docker worker you wish to use for deployment:\n```\nmatrix.server1.example.org -\u003e IP of your server\nchat.server1.example.org -\u003e IP of your server\nserver1.example.org -\u003e IP of your server\n```\n\nPoint the following MX record to the A record:\n```\nserver1.example.org -\u003e server1.example.org\n```\n\nClone or download this repository.  Review `./install.sh` and make any that may be required for your environment.\n\n\n## Install\n\nOnce 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.\n\n* 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.\n\n## Redeploy\n\nIn the future, if you need to start the dcomms containers again simply run the `./run.sh` program in your `DCOMMS_DIR`.\n\n# Tor\n\nIf 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](https://community.torproject.org/onion-services/setup/).\nThe 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`.\n\nExample:\n```\ncat /var/lib/tor/onion_service/hostname\n```\n\n# Post installation\n\n* Copy a pre-existing website into `/var/www/dcomms/` across all docker nodes or checkout all files from either the [dcomms-web repo (UA)](https://github.com/censorship-no/dcomms-web) or the [chatv3 repo (RU)](https://github.com/censorship-no/chatv3-web) into the same location.\n* Optionally visit `https://server1.example.org` to view the website.\n* Optionally visit `https://chat.server1.example.org` to view the Element service.\n* Optionally configure a Matrix client to use `https://matrix.server1.example.org` as the homeserver.\n\n\n# Troubleshooting\n\n## Log review\n\n## Altering configs\n\n## Specific issues with services\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequalitie%2Fdcomms-docker-compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequalitie%2Fdcomms-docker-compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequalitie%2Fdcomms-docker-compose/lists"}