A collection of services I have running in my homelab.
Create a Docker network for the observability stack:
docker network create monitoringClone the repository onto the server:
git clone https://github.com/rynhndrcksn/homelab-services.git /srv/services && cd /srv/servicesGo into each directory and start up the docker-compose.yml file:
cd caddy && docker compose up -dEnsure you have all the directories and file permissions setup properly:
mkdir -p /mnt/data/{prometheus,loki,grafana,caddy/data,caddy/config}
chown -R 472:472 /mnt/data/grafana
chown -R 10001:10001 /mnt/data/loki
chown -R 65534:65534 /mnt/data/prometheusDuring the first set up, the observability stuff needs to be started in a specific order:
cd /srv/services/loki && docker compose up -d
cd /srv/services/prometheus && docker compose up -d
cd /srv/services/node-exporter && docker compose up -d
cd /srv/services/cadvisor && docker compose up -d
cd /srv/services/alloy && docker compose up -d
cd /srv/services/grafana && docker compose up -d
cd /srv/services/caddy && docker compose up -dIf you see a problem or improvement that can be made, please open up an issue to discuss it.
Copyright© 2026 Ryan Hendrickson. Released under the BSD-3-Clause License. See LICENSE for details.