No description
Find a file
2025-04-22 23:26:13 +02:00
core impl mailcow git support 2025-04-22 06:58:36 +02:00
drupal first commit 2025-04-06 22:48:06 +02:00
gitlab first commit 2025-04-06 22:48:06 +02:00
hedgedoc first commit 2025-04-06 22:48:06 +02:00
mailcow impl mailcow git support 2025-04-22 06:58:36 +02:00
nextcloud fix nextcloud domain 2025-04-06 22:53:34 +02:00
onlyoffice first commit 2025-04-06 22:48:06 +02:00
openproject fix openproject example-env 2025-04-06 22:54:34 +02:00
override add override dir 2025-04-22 23:26:13 +02:00
.gitignore impl mailcow git support 2025-04-22 06:58:36 +02:00
diagnostic.sh first commit 2025-04-06 22:48:06 +02:00
LICENSE first commit 2025-04-06 22:48:06 +02:00
README.md more readme 2025-04-06 22:56:35 +02:00

Open Productive Stack

Overview

This repository contains a productive stack of open-source applications for team collaboration and communication. The stack includes:

Core Infrastructure

  • Traefik: Edge router that handles routing and load balancing for all services
  • PostgreSQL: Relational database for applications requiring PostgreSQL
  • MariaDB: MySQL-compatible database for applications requiring MySQL
  • Adminer: Database management tool for easy database administration

Mail

  • Mailcow: Complete mail server solution with SMTP, IMAP, antivirus, and webmail

Collaboration Tools

  • Nextcloud: Self-hosted file sync and share platform with collaboration features
  • OnlyOffice: Online office suite for document editing and collaboration
  • OpenProject: Project management and team collaboration software
  • HedgeDoc: Collaborative markdown notes editor for team documentation

Web Publishing

  • Drupal: Flexible content management system (CMS) for building websites

All components are containerized using Docker for easy deployment, scaling, and management, creating a complete productivity environment for teams.

Requirements

You need docker and with docker compose plugin. You may want to follow the post installation instructions.

At least 6 cores with 16GB RAM 100GB SSD would be sufficent.

Install

Core environment

  1. Copy the .example-env to .env and add you settings.
cp core/.example-env core/.env
  1. Start traefik, mariadb, postgres and adminer with:
docker compose -f core/docker-compose.yml up -d

Drupal

  1. Copy the .example-env to .env and add you settings.
cp drupal/.example-env drupal/.env
  1. Create databse and Drupal root.
drupal/create_infra.bash
  1. Start Drupal containers.
docker compose -f drupal/docker-compose.yml up -d

Additional steps

You may want to use Redis Caching. 3) add to drupal/sites/default/settings.php:

// Redis Configuration
$settings['redis.connection']['interface'] = 'PhpRedis';
$settings['redis.connection']['host'] = 'redis';
$settings['redis.connection']['port'] = 6379;
$settings['cache']['default'] = 'cache.backend.redis';
$settings['cache']['bins']['bootstrap'] = 'cache.backend.chainedfast';
$settings['cache']['bins']['discovery'] = 'cache.backend.chainedfast';
$settings['cache']['bins']['config'] = 'cache.backend.chainedfast';
  1. Visit your Domain and install Drupal site.

Gitlab

  1. Copy the .example-env to .env and add you settings.
cp gitlab/.example-env gitlab/.env
  1. Start gitlab.
docker compose -f gitlab/docker-compose.yml up -d
  1. Get your root password.
sudo docker exec -it gitlab grep 'Password:'
/etc/gitlab/initial_root_password
  1. Visit you domain and log in.

Hedgedoc

  1. Copy the .example-env to .env and add you settings.
cp hedgedoc/.example-env hedgedoc/.env
  1. Create database and Drupal root.
hedgedoc/create_infra.bash
  1. Start containers.
docker compose -f hedgedoc/docker-compose.yml up -d
  1. Add your user.
source hedgedoc/.env
docker exec hedgedoc bin/manage_users --pass ${HEDGEDOC_USER_PASSWORD} --add ${HEDGEDOC_USER_EMAIL}

Mailcow

  1. Generate config
cd mailcow
./geneare_config.bash
  1. Copy config to .env
cp mailcow.conf .env
  1. Start containers.
docker compose docker-compose.yml up -d
  1. Visit DOMAIN/admin and log in with admin:admin.

  2. Consider the post installation steps, i. e.

watchdog dmarc dkim (You get your dkim key when you registered your email domain in mailcow ui)

OnylOffice

  1. Copy the .example-env to .env and add you settings.
cp onlyoffice/.example-env onlyoffice/.env
  1. Create database and Drupal root.
onlyoffice/create_infra.bash
  1. Start containers.
docker compose -f onlyoffice/docker-compose.yml up -d

Nextcloud

  1. Start OnlyOffice first!

  2. Copy the .example-env to .env and add you settings.

cp nextcloud/.example-env nextcloud/.env
  1. Create database and Drupal root.
nextcloud/create_infra.bash
  1. Start containers.
docker compose -f nextcloud/docker-compose.yml up -d
  1. Visit nextcloud domain and login with your .env credentials.

Openproject

  1. Copy the .example-env to .env and add you settings.
cp nextcloud/.example-env nextcloud/.env
  1. Create database and Drupal root.
hedgedoc/create_infra.bash
  1. Start containers.
docker compose -f hedgedoc/docker-compose.yml up -d
  1. Visit openproject domain and login with admin:admin and set new password.

Roadmap

  • Tweak the core components and subservices for petter performance.
  • More automatisation when installing the environment.
  • Add more services
    • Matrix/Synapse + Element
  • Better reuse of gits for updating and maintainment.

Changelog