diff --git a/README.md b/README.md index c419fdd..69cc16d 100644 --- a/README.md +++ b/README.md @@ -3,22 +3,29 @@ 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 +- **Traefik**: Edge router that handles routing, TLS (Let's Encrypt) 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 +- **WireGuard**: VPN gateway; SSH is reachable only from within the VPN subnet +- **MTA-STS**: Static policy host for mail transport security + +### Code Hosting & CI +- **Forgejo**: Self-hosted Git forge (replaces GitLab) at `git.${DOMAIN}`, SSH on port 2424 +- **Forgejo Actions Runner**: CI runner with an isolated Docker-in-Docker engine for `.forgejo/workflows` ### 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 +- **Nextcloud**: Self-hosted file sync and share platform (with Collabora/Talk) - **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 +- **Drupal**: Headless content management system (CMS), PHP-FPM + NGINX, Redis cache +- **Next.js**: Decoupled frontend (`${DOMAIN}`) consuming the Drupal backend All components are containerized using Docker for easy deployment, scaling, and management, creating a complete productivity environment for teams. @@ -79,9 +86,9 @@ cp mailcow.conf .env docker compose -f core/docker-compose.yml up -d ``` -### Drupal -1) Set your env variables in -2) Start Drupal containers. +### Drupal + Next.js +1) Set your env variables in `drupal/.env` and `nextjs/.env.local`. +2) Start the stack (NGINX, Drupal PHP-FPM, Redis and the Next.js frontend). ```bash docker compose -f drupal/docker-compose.yml up -d ``` @@ -150,7 +157,7 @@ docker exec hedgedoc bin/manage_users --pass ${HEDGEDOC_USER_PASSWORD} --add ${H ### Mailcow 1) Start containers. ```bash -docker compose docker-compose.yml up -d +cd mailcow && docker compose up -d ``` 4) Visit DOMAIN/admin and log in with admin:admin. @@ -194,7 +201,7 @@ See `/var/deploy/nextcloud/COLLABORA-QUICK-SETUP.md` for details. ### Openproject 1) Start containers. ```bash -docker compose -f hedgedoc/docker-compose.yml up -d +docker compose -f openproject/docker-compose.yml up -d ``` 2) Visit openproject domain and login with admin:admin and set new password.