first commit
This commit is contained in:
commit
098f59b644
3632 changed files with 518046 additions and 0 deletions
191
README.md
Normal file
191
README.md
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
# 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](https://docs.docker.com/get-started/get-docker/) and with [docker compose plugin](https://docs.docker.com/compose/). You may want to follow the [post installation instructions](https://docs.docker.com/engine/install/linux-postinstall/).
|
||||
|
||||
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.
|
||||
```bash
|
||||
cp core/.example-env core/.env
|
||||
```
|
||||
|
||||
2) Start traefik, mariadb, postgres and adminer with:
|
||||
```bash
|
||||
docker compose -f core/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
### Drupal
|
||||
1) Copy the `.example-env` to `.env` and add you settings.
|
||||
```bash
|
||||
cp drupal/.example-env drupal/.env
|
||||
```
|
||||
2) Create databse and Drupal root.
|
||||
```bash
|
||||
drupal/create_infra.bash
|
||||
```
|
||||
|
||||
3) Start Drupal containers.
|
||||
```bash
|
||||
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:
|
||||
```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';
|
||||
```
|
||||
|
||||
4) Visit your Domain and install Drupal site.
|
||||
|
||||
### Gitlab
|
||||
1) Copy the `.example-env` to `.env` and add you settings.
|
||||
```bash
|
||||
cp gitlab/.example-env gitlab/.env
|
||||
```
|
||||
|
||||
2) Start gitlab.
|
||||
```bash
|
||||
docker compose -f gitlab/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
3) Get your root password.
|
||||
```bash
|
||||
sudo docker exec -it gitlab grep 'Password:'
|
||||
/etc/gitlab/initial_root_password
|
||||
```
|
||||
|
||||
4) Visit you domain and log in.
|
||||
|
||||
# Hedgedoc
|
||||
1) Copy the `.example-env` to `.env` and add you settings.
|
||||
```bash
|
||||
cp hedgedoc/.example-env hedgedoc/.env
|
||||
```
|
||||
2) Create database and Drupal root.
|
||||
```bash
|
||||
hedgedoc/create_infra.bash
|
||||
```
|
||||
|
||||
3) Start containers.
|
||||
```bash
|
||||
docker compose -f hedgedoc/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
4) Add your user.
|
||||
```bash
|
||||
source hedgedoc/.env
|
||||
docker exec hedgedoc bin/manage_users --pass ${HEDGEDOC_USER_PASSWORD} --add ${HEDGEDOC_USER_EMAIL}
|
||||
```
|
||||
|
||||
|
||||
### Mailcow
|
||||
1) Generate config
|
||||
```bash
|
||||
cd mailcow
|
||||
./geneare_config.bash
|
||||
```
|
||||
2) Copy config to .env
|
||||
```bash
|
||||
cp mailcow.conf .env
|
||||
```
|
||||
|
||||
3) Start containers.
|
||||
```bash
|
||||
docker compose docker-compose.yml up -d
|
||||
```
|
||||
|
||||
4) Visit DOMAIN/admin and log in with admin:admin.
|
||||
|
||||
5) Consider the post installation steps, i. e.
|
||||
|
||||
[watchdog](https://docs.mailcow.email/de/post_installation/firststeps-authorize_watchdog_and_bounces/)
|
||||
[dmarc](https://docs.mailcow.email/de/post_installation/firststeps-dmarc_reporting/)
|
||||
[dkim](https://docs.mailcow.email/getstarted/prerequisite-dns/) (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.
|
||||
```bash
|
||||
cp onlyoffice/.example-env onlyoffice/.env
|
||||
```
|
||||
2) Create database and Drupal root.
|
||||
```bash
|
||||
onlyoffice/create_infra.bash
|
||||
```
|
||||
|
||||
3) Start containers.
|
||||
```bash
|
||||
docker compose -f onlyoffice/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
### Nextcloud
|
||||
1) Copy the `.example-env` to `.env` and add you settings.
|
||||
```bash
|
||||
cp nextcloud/.example-env nextcloud/.env
|
||||
```
|
||||
2) Create database and Drupal root.
|
||||
```bash
|
||||
nextcloud/create_infra.bash
|
||||
```
|
||||
|
||||
3) Start containers.
|
||||
```bash
|
||||
docker compose -f nextcloud/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
4) Visit nextcloud domain and login with your .env credentials.
|
||||
|
||||
### Openproject
|
||||
1) Copy the `.example-env` to `.env` and add you settings.
|
||||
```bash
|
||||
cp nextcloud/.example-env nextcloud/.env
|
||||
```
|
||||
2) Create database and Drupal root.
|
||||
```bash
|
||||
hedgedoc/create_infra.bash
|
||||
```
|
||||
|
||||
3) Start containers.
|
||||
```bash
|
||||
docker compose -f hedgedoc/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
4) 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 installinge the environment
|
||||
- Add more services
|
||||
- [ ] Matrix/Synapse + Element
|
||||
Loading…
Add table
Add a link
Reference in a new issue