๐Ÿ  Homelab

A self-hosted homelab running on Docker Compose, built and maintained on Ubuntu Server.

Docker Docker Compose Ubuntu Server Ansible Prometheus Grafana K3s GitLab Vagrant

๐ŸŸข Always-On Services

๐Ÿ“ŠMonitoring Stack

Prometheus, Grafana, cAdvisor, node-exporter, Loki + Alloy for centralized logging

docker-compose/monitoring-grafana-promethues-cadvisor-node-exporter/

๐Ÿ›ก๏ธPi-hole

Network-wide DNS-level ad and tracker blocking

docker-compose/pihole/

๐ŸณPortainer

Web UI for managing and monitoring all Docker containers

docker-compose/portainer/

๐Ÿ”ฎDockScope

3D visual dashboard mapping containers, networks, and dependencies

docker-compose/dockscope/

โšกn8n

Workflow automation engine, backed by Postgres

docker-compose/n8n/

๐Ÿ“Samba

Network file sharing across LAN devices

docker-compose/samba/

๐Ÿ“‚Filebrowser

Web-based file manager for the server's storage

docker-compose/filebrowser/

๐ŸŽฌMedia Stack

Plex, Sonarr/Radarr/Prowlarr/Whisparr, qBittorrent

docker-compose/mediastack/

โ›๏ธMinecraft

Self-hosted game server

docker-compose/minecraft/

๐Ÿ”Sentinel + smartctl

Disk health monitoring via S.M.A.R.T. data

docker-compose/sentinel/

๐Ÿค–OpenHands

Self-hosted AI coding agent backed by Ollama

docker-compose/openhands/

๐Ÿ”€Nginx Proxy Manager

Reverse proxy with friendly .home hostnames and local HTTPS

docker-compose/nginx-proxy-manager/

๐ŸŽฏSemaphore

Self-hosted Ansible UI for running playbooks

docker-compose/semaphore/

๐ŸฆŠGitLab CI/CD

Self-hosted GitLab Omnibus + Docker-executor Runner

docker-compose/gitlab/

๐Ÿ“ฆMinIO

S3-compatible object storage, backup target

docker-compose/minio/

โ˜ธ๏ธK3s Cluster

Single-node K3s alongside Docker Compose, monitored by same stack

kubernetes/

๐Ÿงช Learning Labs (not always-on)

๐Ÿ”ŽElastic Stack (ELK)

Elasticsearch + Kibana, security-enabled โ€” replaced by Loki for daily logging

docker-compose/ELK/

๐Ÿ’ปVagrant Test VM

Disposable Debian 12 VM for testing provisioning before touching production

vagrant/

โš™๏ธ Ansible Automation

๐Ÿ”„Update Playbooks

16 thin playbooks, one per stack, all delegating to the shared docker_compose_update role: pull โ†’ recreate โ†’ health-check โ†’ prune. Run through Semaphore.

ansible/update-playbooks/

๐Ÿ—๏ธServer Provisioning

Full server preparation: packages, sshd hardening, iptables, fail2ban, auditd, Docker CE, Nexus + Traefik. Tested against Vagrant first.

ansible/preparing-playbook/

๐Ÿ—‚๏ธ Repository Structure

homelab/
โ”œโ”€โ”€ docker-compose/ # every service in its own folder
โ”‚ โ”œโ”€โ”€ monitoring-grafana-promethues-cadvisor-node-exporter/
โ”‚ โ”œโ”€โ”€ pihole/   portainer/   dockscope/   n8n/
โ”‚ โ”œโ”€โ”€ samba/   filebrowser/   mediastack/   minecraft/
โ”‚ โ”œโ”€โ”€ sentinel/   smartctl/   minio/
โ”‚ โ”œโ”€โ”€ openhands/   nginx-proxy-manager/   semaphore/
โ”‚ โ”œโ”€โ”€ gitlab/   (with ci-images-reference/ & backups/)
โ”‚ โ””โ”€โ”€ ELK/
โ”œโ”€โ”€ ansible/
โ”‚ โ”œโ”€โ”€ update-playbooks/   # day-to-day stack updates
โ”‚ โ”‚    โ”œโ”€โ”€ roles/docker_compose_update/
โ”‚ โ”‚    โ””โ”€โ”€ update-*.yml + ping.yml
โ”‚ โ””โ”€โ”€ preparing-playbook/ # server provisioning
โ”‚         โ””โ”€โ”€ reza-ansible/ (inventory, roles, vault)
โ”œโ”€โ”€ docs/ # detailed write-ups per topic
โ”œโ”€โ”€ kubernetes/ # K3s manifests & RBAC patches
โ”œโ”€โ”€ dashboards/ # Grafana dashboard JSON exports
โ”œโ”€โ”€ vagrant/ # disposable test VM
โ””โ”€โ”€ scripts/ # linux_setup.sh provisioning script

๐Ÿ“ˆ Grafana Dashboards

DashboardData SourcesType
GitLab Rails & Puma OverviewPrometheus + LokiCustom-built
GitLab Runner MetricsPrometheusCustom-built
Kubernetes / PodsPrometheusCommunity import
K3s Cluster OverviewPrometheusCommunity import
K3s Unified App DashboardPrometheus + LokiCustom-built
K3s Professional Log AnalyzerLokiCustom-built