Deployment
This page covers how to run the full observability stack (Loki, Tempo, Prometheus, Grafana) and example services using the provided Docker configuration, and how to adapt it to your own environment.
Deployment flow
Clone the Docker stack
Use the MIT-licensed Docker stack repository to bootstrap Loki, Tempo, Prometheus, and Grafana.
Configure environment values
Set Grafana credentials, ports, retention, and the deployment environment label.
Register your services
Add your apps to targets.yaml and point each service at LOKI_HOST and OTEL_EXPORTER_OTLP_ENDPOINT.
Bring the stack up
Run Docker Compose and validate logs, metrics, and traces in Grafana.
Clone the stack repository
The production Docker stack lives in the MIT-licensed repository:
SSH
git clone git@github.com:planetmoondrop/centralized-logger-stack.git
cd centralized-logger-stackEnvironment configuration
Copy .env.example file in root
cp .env.example .envEdit .env in the Docker stack folder:
GRAFANA_ADMIN_USER,GRAFANA_ADMIN_PASSWORD– Grafana login.GRAFANA_PORT,LOKI_PORT,PROMETHEUS_PORT,TEMPO_*_PORT– host ports.ENVIRONMENT– label used across logs and metrics (env=productionetc.).PROMETHEUS_RETENTION– metrics retention period.
Update targets.yaml to list your production services and their ports.
Clone and configure checklist
Clone the repository
Use either HTTPS or SSH, depending on how your GitHub access is configured.
Copy the environment file
Duplicate env.example to .env and set real values for credentials and retention.
Register Prometheus targets
Add your service hostnames and ports to targets.yaml.
Start the stack
Run docker compose up -d and confirm Grafana, Loki, Tempo, and Prometheus are healthy.
Cleaning up
To stop and optionally remove data:
# Stop containers, keep data volumes
docker compose down
# Stop and delete volumes (Loki, Tempo, Prometheus, Grafana data)
docker compose down -vOnly run down -v in non‑production or when you are sure you can lose logs and metrics.
Need help or want to support the project? Visit Support us.