A Docker-based boilerplate for building data-driven Observatory platforms.
The stack combines open-source services for knowledge management, data integration, databases, and data storage. It is designed as a generic starting point that can be adapted to different Observatory use cases, domains, organisations, and data infrastructures.
The platform is modular: individual services can be configured, extended, replaced, or removed depending on the needs of the deployment.
β οΈ This repository is a template, not a plug-and-play application.The first installation automatically creates environment files, generates credentials, installs configured extensions, builds the Docker stack, and initialises MediaWiki. Deployment-specific configuration may still be required.
See ARCHITECTURE.md for a detailed overview of the stack architecture, services, and components.
See SERVICE.md for a description of the individual services and their roles in the stack.
See SETUP.md for a step-by-step installation guide.
The Makefile provides shortcuts around Docker Compose.
make upStarts all services in the background.
make downStops and removes the Compose containers.
make restartRestarts the running services.
make buildBuilds the Docker images.
make rebuildUseful after changes to Dockerfiles or dependencies.
make pullPulls the latest configured Docker images.
make statusDisplays the current container status.
make logsFollows the latest container logs.
After the initial installation, do not run make install again.
The normal maintenance command is:
make updateThe update pipeline is designed for an already-installed platform.
It can perform:
Pull latest images
β
Synchronise extensions
β
Rebuild containers
β
Start services
β
Update Composer dependencies
β
Update MediaWiki database
For more controlled maintenance, the individual commands can be executed separately.
For example:
make extensions
make composer
make mediawiki-updatemake mediawiki-updateRuns the MediaWiki database update process.
make shellThis opens a shell inside the MediaWiki container.
This is useful for debugging and running MediaWiki commands manually.
See BACKUP.md for instructions on creating and managing MariaDB/PostgreSQL backups.
The exact URLs depend on the values configured in the root .env and Docker Compose configuration.
The default services include:
| Service | Default port | Purpose |
|---|---|---|
| MediaWiki | 8080 |
Knowledge and ontology management |
| Apache Hop Web | 8081 |
Data integration and ETL |
| MariaDB | 3306 |
MediaWiki database |
| PostgreSQL | Configured in Compose | Relational data |
| MinIO | Configured in Compose | Object storage |
After installation, the generated:
connection-info.txt
contains the configured access information.
You can inspect it with:
cat connection-info.txtThis repository contains infrastructure capable of handling potentially sensitive data.
Never commit:
.env
connection-info.txt
or other files containing credentials.
Only commit the corresponding:
.env.example
templates.
The .gitignore should therefore exclude environment files, generated credentials, database backups, and other deployment-specific artefacts.
Run:
make helpto display the commands available in the current version of the platform.
The main commands are:
make installComplete first-time installation.
make init-envCreate missing .env files.
make credentialsGenerate missing security credentials.
You should only run the make install command as it performs the initial setup of the platform and call the other commands. After that, use make update for maintenance.
make extensions
make composer-install
make composer
make mediawiki-install
make mediawiki-updatemake build
make rebuild
make up
make down
make restart
make pull
make status
make logsmake update
make backup-mariadb
make shellgit clone <repository-url>
cd <repository-directory>
make init-env
# Review and configure .env files
make installmake upThen access the required services.
When finished:
make down# Edit services/mediawiki/extensions.config
make extensions
make composer # if required
make mediawiki-update # if requiredmake updateCheck service status:
make statusView logs:
make logsOpen the MediaWiki container:
make shellRebuild the Docker images:
make rebuildiObservatory is intended to provide a reusable technical foundation, rather than a fixed application.
The stack therefore follows several principles:
- Modularity β services can be added, removed, or replaced.
- Extensibility β MediaWiki extensions and data-processing pipelines can be added independently.
- Separation of concerns β knowledge management, relational storage, ETL, and object storage are provided by separate services.
- Automation β repetitive deployment and maintenance tasks are exposed through the Makefile.
- Configuration through environment files β deployment-specific values remain outside the application template.
- Reproducibility β
.env.example, Docker Compose, extension configuration, and Make targets provide a repeatable deployment process. - Privacy-conscious deployment β the stack is designed to support self-hosted infrastructure and local control of data.
The objective is to provide a foundation on which different Observatory platforms can be developed without requiring the underlying deployment architecture to be redesigned from scratch.