Customizable, modular, free and open-source environment for decentralized, distributed communication and collaboration without third-party dependencies.
This repository contains our Docker composition for a containerized runtime environment of medienhaus-spaces + medienhaus-api + medienhaus-cms including matrix-synapse, element-web, etherpad-lite, spacedeck-open, and lldap.
🧩 For local development of medienhaus-spaces, use the simplified medienhaus-docker-dev composition.
-
git clone
themedienhaus-docker
repository and change directorygit clone https://github.com/medienhaus/medienhaus-docker.git && \ cd medienhaus-docker/
-
fetch contents of submodules
git submodule update --init
-
create
.env
file from examplecp .env.example .env
${VISUAL:-${EDITOR:-vim}} .env
⚠️ For production, please change at least the following environment variables❗️ADMIN_CONTACT_LETSENCRYPT
for issuing SSL certificates viatraefik
BASE_URL
to your fully qualified domain name, e.g.spaces.example.org
HTTP_SCHEMA
tohttps
for enabling https context for all serviceschange_me
to generated long, random, and secure passwords/secrets
💭 Generate long, random, and secure passwords/secrets via
openssl
command:openssl rand -hex 32
💭 This can also be done programmatically, if the
.env
file does not(!) exist, viabash
:if [[ ! -r .env ]]; then while IFS= read -r line; do sed "s/change_me/$(openssl rand -hex 32)/" <<< "$line" done < .env.example > .env fi
-
create
docker-compose.yml
file from examplecp docker-compose.example.yml docker-compose.yml
⚠️ For production, please usedocker-compose.example.websecure.yml
with securedhttps
context❗️cp docker-compose.example.websecure.yml docker-compose.yml
-
create config files from
template/*
files and.env
variables./scripts/envsubst.sh
-
start docker composition
docker compose up -d
-
create
matrix-synapse
account formedienhaus-*
./scripts/init.sh
⚠️ For includingmedienhaus-api
and/ormedienhaus-cms
, use these commands instead❗️
For including
medienhaus-api
, run the following:./scripts/init.sh --api
For including
medienhaus-cms
, run the following:./scripts/init.sh --cms
For including
medienhaus-api
andmedienhaus-cms
, run the following:./scripts/init.sh --all
The script can list these commands with the
--help
argument:./scripts/init.sh --help
-
re-create config files from
template/*
files and.env
variables includingmedienhaus-*
services./scripts/envsubst.sh
⚠️ For includingmedienhaus-api
and/ormedienhaus-cms
, use these commands instead❗️For including
medienhaus-api
, run the following:./scripts/envsubst.sh --api
For including
medienhaus-cms
, run the following:./scripts/envsubst.sh --cms
For including
medienhaus-api
andmedienhaus-cms
, run the following:./scripts/envsubst.sh --all
The script can list these commands with the
--help
argument:./scripts/envsubst.sh --help
-
re-start docker composition including
medienhaus-*
servicesdocker compose up -d
-
set up
lldap
user account(s) via: http://ldap.localhost/- username:
admin
(configured via.env
) - password:
change_me
(configured via.env
) - create user account(s)
- username:
-
open the
medienhaus-spaces
application and log in via: http://localhost/login- username: (configured via
lldap
) - password: (configured via
lldap
)
- username: (configured via
docker compose down && \
rm -rf data/etherpad && \
rm -rf data/matrix-synapse && \
rm -rf data/spacedeck && \
./scripts/envsubst.sh && \
docker compose up -d --build --force-recreate --wait && \
./scripts/init.sh && \
./scripts/envsubst.sh && \
docker compose up -d --build --force-recreate
💥 If you want to TAKE ALL THE SHORTCUTS YOU CAN TAKE, run scripts/reset.sh
.
./scripts/reset.sh
⚠️ For including medienhaus-api
and/or medienhaus-cms
, use these commands instead❗️
For including medienhaus-api
, run the following:
./scripts/reset.sh --api
For including medienhaus-cms
, run the following:
./scripts/reset.sh --cms
For including medienhaus-api
and medienhaus-cms
, run the following:
./scripts/reset.sh --all
The script can list these commands with the --help
argument:
./scripts/reset.sh --help
🧩 For convenience reasons, manually created lldap
accounts are not deleted.
Application / Service | URL / Link |
---|---|
medienhaus-spaces |
http://localhost/ |
medienhaus-api |
http://api.localhost/ |
medienhaus-cms |
http://cms.localhost/ |
matrix-synapse |
http://matrix.localhost/ |
element-web |
http://element.localhost/ |
etherpad-lite |
http://etherpad.localhost/ |
spacedeck-open |
http://spacedeck.localhost/ |
lldap |
http://ldap.localhost/ |