GREENENGINE Deployment Guide
This guide explains how to deploy the full GREENENGINE toolbox using Docker Compose. The deployment includes authentication, co-production tools, analytics, gamification services, monitoring, and more. It is designed to be replicable, modular, and production-ready.
๐ฆ Requirements
- Docker โฅ 20.10
- Docker Compose โฅ 1.29
- A Linux-based system (Ubuntu 20.04+, Debian, etc.)
- A valid domain (for HTTPS via Let's Encrypt)
- Recommended:
git
,curl
, and basic CLI tools - At least 8 GB RAM and 4 vCPU (recommended: 16 GB / 8 vCPU for full stack)
โ๏ธ Quick Setup
1. Download the docker-compose files and environment configuration sample
https://greengage-project.github.io/Documentation/green-engine/docker-compose.yml
https://greengage-project.github.io/Documentation/green-engine/.env.sample
2. Set Up the Environment File
Create a .env
file by copying the template:
cp .env.sample .env
Edit the file with your preferred editor and configure:
MAIN_DOMAIN=yourdomain.com
- Other required variables (see comments in
.env.sample
)
โ ๏ธ Important: This setup is provided as a boilerplate and can be extended or modified depending on pilot-specific needs. New services (e.g., additional data pipelines, frontend modules, edge connectors) can be integrated into the architecture by editing the
docker-compose.yml
file and updating the.env
configuration accordingly. The platform is designed to be modular and scalable.
3. Create Required Docker Networks
Before launching the stack, make sure the required external Docker networks are created. These allow multiple containers to communicate securely across services like the proxy (Traefik) and monitoring tools (Grafana, Prometheus).
Run the following commands:
docker network create traefik-public
docker network create grafana-network
Note: These are external networks, meaning they must exist before running
docker-compose up
. If you get an error about missing networks, check their existence withdocker network ls
and recreate them if necessary.
These can be included or ignored depending on the services enabled in your docker-compose.yml
.
4. Start the Full Stack
docker-compose up -d
This command will start over 20 services, including:
- ๐ Keycloak (auth)
- ๐ Grafana + Prometheus (monitoring)
- โ๏ธ Dremio, Matomo, ElasticSearch (analytics)
- ๐ง Gamification engine (Python + postgresql)
- ๐ฌ Loomio, Coproduction backend/frontend
- ๐ ๏ธ Traefik (proxy + TLS)
- ๐๏ธ PostgreSQL, Redis, MongoDB
- ๐ก Crontab backups and static volumes
๐งช Verify Deployment
- Keycloak:
https://auth1.yourdomain.com
- Frontend:
https://yourdomain.com
- Monitoring:
https://yourdomain.com/monitoring
- Gamification (optional route):
/interlink-gamification
To check logs:
docker-compose logs -f traefik
To see running services:
docker ps
๐ HTTPS via Let's Encrypt
Traefik automatically configures HTTPS certificates using the email and domain in .env
. Make sure ports 80 and 443 are open and your domain points to your host.
๐ Replicating to New Environments
- Copy the repo to the new host.
- Create a new
.env
file. - Repeat the steps from Quick Setup.
- Optionally, adjust volumes or backup paths for multi-node sync.
๐งฐ Maintenance
Restart the stack:
docker-compose restart
Stop all services:
docker-compose down
Prune unused resources:
docker system prune -a
๐ Documentation
๐ Full documentation and advanced setup options are available at: https://greengage-project.github.io/Documentation
๐จโ๐ง Support
For technical issues, please open an issue in the repository or contact:
๐ฉ greengage.admin@deusto.es Maintained by the GREENGAGE