Smart Yellow Nextcloud And Postoffice Stack for Enterprises
  • Shell 59.5%
  • YAML 25.2%
  • JSON 14.9%
  • SQL 0.4%
Find a file
2026-07-26 20:24:26 +02:00
caddy Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
dev_rustfs Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
document_server Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
nextcloud Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
nextcloud_hpb Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
nextcloud_push Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
postgres Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
stalwart Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
valkey Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
.editorconfig Add services 2026-07-08 16:31:18 +02:00
.env.example Move Caddy TLS mode comment to own line 2026-07-26 16:29:14 +02:00
.gitattributes Add JSON to linguist-detectable files 2026-07-19 15:52:43 +02:00
.gitignore Dev compose 2026-07-26 20:17:01 +02:00
check.py Rename all docker-compose.yml to compose.yml 2026-07-26 20:15:05 +02:00
compose.dev.yml Dev compose 2026-07-26 20:17:01 +02:00
compose.yml Dev compose 2026-07-26 20:17:01 +02:00
ensure_env.sh Ensure BACKUP_PASSPHRASE secret 2026-07-26 16:09:27 +02:00
ensure_env_dev.sh Dev compose 2026-07-26 20:17:01 +02:00
LICENSE.txt Add contact info and license 2026-07-26 18:01:31 +02:00
README.md Readme: use --profile flag instead of env var 2026-07-26 20:24:26 +02:00
upgrade.sh Dev compose 2026-07-26 20:17:01 +02:00

Synapse

Synapse aims to provide an integrated groupware and e-mail communication solution for businesses, by combining and integrating Nextcloud and Stalwart Mail Server.

Stack 🥞

Requirements

  • OS: Linux or macOS. Synapse is used, developed and known to work on Debian 13 and macOS 26.
  • Docker
  • Docker Compose 5.3.0 or higher (with support for init containers)

Deployment

Copy .env.example to .env and set the variables accordingly. Run ensure_env.sh to validate your settings and generate secure values for any missing secrets, then start the containers.

./ensure_env.sh
docker compose --profile=document_server,backup up -d

To upgrade, first pull the latest version of the repository, then run upgrade.sh to pull and restart the containers.

Development setup

It is required to set up the following hostnames in your /etc/hosts file by running:

echo "" >> /etc/hosts
echo "127.0.0.1 synapse.test" >> /etc/hosts
echo "127.0.0.1 nextcloud.synapse.test" >> /etc/hosts
echo "127.0.0.1 stalwart.synapse.test" >> /etc/hosts

After cloning the repository, set up the development environment by running the following.

./ensure_env_dev.sh
docker compose --profile=document_server up -d

If you wish to override any variable, create a .env.local file and set the variables you want to override before running ensure_env_dev.sh. This makes the .env file is disposable: when you wish to modify the environment, you can simply change the .env.local file, delete the .env file and run ensure_env_dev.sh again.

If you want to start over, the following can be executed in order to remove all containers and data. Then run the above commands again to spin up a fresh environment again.

docker compose --profile=document_server down -v
rm -rf .env {nextcloud,stalwart,postgres,valkey,dev_rustfs}/data stalwart/etc

If COMPOSE_PROFILES is not set, you might run into errors like service "nextcloud" depends on undefined service "nextcloud_push": invalid compose project.

About

Synapse is developed at Smart Yellow and licensed under the AGPLv3. Feel free to contribute or drop us a line!