A collection of Docker Compose files and shell scripts.
This repository contains self-hosted infrastructure and home automation services using Docker Compose.
Main areas:
- Home automation (Home Assistant, ESPHome, Zigbee2MQTT, Matter)
- Media management and streaming (*arr stack, Plex, Immich)
- Monitoring (Grafana, Loki, Prometheus, Alloy)
- Identity and networking (Keycloak, Traefik, Cloudflare Tunnel)
- Utility services and maintenance scripts
- alloy: Collect and forward logs and metrics to
ygg-mon. - bind9: DNS management.
- watchtower: Automatic Docker container image updates.
- mariadb: Relational database for WordPress.
- nginx: Reverse proxy server for WordPress.
- wordpress: Custom WordPress (content management system) PHP-FPM image based on
wordpress:php8.3-fpm-alpine, with additional PHP extensions.
- alloy: Collect and forward logs and metrics to
ygg-mon. - watchtower: Automatic Docker container image updates.
- bazarr: Subtitle manager for Sonarr/Radarr.
- lidarr: Music collection manager.
- pg-arr: Object-relational database system for *arr.
- prowlarr: Indexer manager for *arr.
- radarr: Movie organizer/manager.
- recyclarr: Automatically sync TRaSH Guides to your Sonarr/Radarr instances.
- requestrr: Discord chatbot for *arr.
- sonarr: Smart PVR.
- unpackerr: Extracts downloads for Radarr, Sonarr, Lidarr, Readarr, and/or a Watch folder.
- birdnet: AI solution for continuous avian monitoring and identification.
- autoheal: Monitor and restart unhealthy docker containers.
- cloudflare-ddns: A small, feature-rich, and robust Cloudflare DDNS updater.
- cloudflared: Client for Cloudflare Tunnel.
- dns: Technitium DNS Server.
- keycloak: Open Source Identity and Access Management.
- oauth2-proxy: A reverse proxy that provides authentication with OpenID Connect.
- pg-keycloak: Object-relational database system for Keycloak.
- traefik: HTTP reverse proxy.
- watchtower: Automatic Docker container image updates.
- download: BitTorrent client.
- gluetun: VPN client.
- mousehole: A background service to update a seedbox IP for MAM.
- gramps: Open Source Online Genealogy System.
- grampsweb-celery: Distributed Task Queue for Gramps.
- rd-gramps: Data platform for caching, vector search, and NoSQL databases.
- esphome: Control ESP32 devices.
- esp-bedroom-1: M5Stack AtomS3 Lite ESP32S3 Dev Kit
- Atomic Port ABC Base
- Unit ENV-IV (SHT40 + BMP280)
- Unit PaHub v2.0 (PCA9548AP)
- Unit Mini TVOC/eCO2 (SGP30)
- esp-guest-1: Espressif ESP32-S3-DevKitC-1-N32R8V
- Unit MIC (MAX4466 microphone preamplifier + LM393DR2G dual-voltage comparator)
- esp-hall-1: M5Stack AtomS3 Lite ESP32S3 Dev Kit
- Unit Light (photoresistor + LM393DR2G dual differential comparator)
- esp-kitchen-1: M5Stack NanoC6 ESP32-C6FH4 Dev Kit
- Unit KMeter-ISO (STM32F030 data acquisition + MAX31855KASA+T thermocouple digital conversion + CA-IS3641HW signal isolation)
- esp-kitchen-2: M5Stack NanoC6 ESP32-C6FH4 Dev Kit
- Unit Watering (22 μF capacitor + EDLP600-D12B water pump)
- esp-office-1: Espressif ESP32-S3-BOX-3
- Audio input: ES7210
- Audio output: ES8311 + NS4150
- Gyroscope + accelerometer: ICM-42607-P
- ESP32-S3-BOX-3-SENSOR
- Radar: MS58-3909S68U4
- Infrared: IRM-H638T + IR67-21C/TR8
- Temperature + humidity: AHT30
- lora-1: Heltec WiFi LoRa 32(V3) home receiver node that bridges LoRa mailbox events to MQTT/Home Assistant
- lora-2: Battery-powered Heltec WiFi LoRa 32(V3) remote mailbox sensor using an MC-38 reed switch
- esp-bedroom-1: M5Stack AtomS3 Lite ESP32S3 Dev Kit
- frigate: NVR with realtime local object detection for IP cameras.
- hass: Home automation that puts local control and privacy first.
- influxdb: Time series database built for real-time analytic workloads.
- mass: Media library manager that connects to your streaming services and a wide range of connected speakers.
- mass-alexa: Alexa skill prototype for controlling the Music Assistant server.
- matter-server: Matter server based on Matter.js.
- mosquitto: Message broker.
- ollama: The easiest way to get up and running with large language models.
- ps5-mqtt: PlayStation 5 status integration using MQTT.
- scrypted: High performance video integration and automation platform.
- vonage: Vonage to Home Assistant bridge for SMS and voice.
- zigbee2mqtt: Zigbee to MQTT bridge.
- bjornify: Discord bot based on discord.py that adds requested tracks to your Spotify playback queue.
- books: Web app for browsing, reading and downloading eBooks.
- plex: Media server.
- tautulli: Monitoring and tracking tool for Plex.
- tmm: Media management tool.
- immich: Photo and video management.
- immich-machine-learning: CLIP embeddings and facial recognition for Immich.
- pg-immich: Scalable vector search in Postgres for Immich.
- rd-immich: Data structure server for Immich.
- alloy: Vendor-agnostic OpenTelemetry Collector distribution with programmable pipelines.
- grafana: Analytics & monitoring solution.
- loki: Cloud Native Log Aggregation.
- prometheus: Systems and service monitoring system.
- acmesh: ACME client for Let's Encrypt certificates.
- dbeaver: Cloud database manager.
- irc: Web IRC client.
- smtp: Postfix SMTP server configured as an SMTP relay.
- vw: Password management service.
- pull_persistent: Pull persistent files that should be version-controlled.
- thang010146: Back up videos from Nguyen Duc Thang.
- update-matter: Fix routing between matter_server and Matter devices.
- 10-acmesh: Renew all certificates.
- 20-plex: Replace plex certificate.
- 30-vpc: Replace tntphoto certificates.
- 40-syno: Replace Synology certificates.
- 50-hass: Replace hass certificates.
- hc-sync: Back up persistent storage from tntphoto.
- photo-sync: Back up photos.
- ygg-sync: Back up persistent storage from NAS.
- 00-startup: Load all other scripts, update Docker, update Synology compatible drive database.
- 10-fix-sysctl: Applies kernel/sysctl tuning for containerized workloads and networking, including increased inotify watcher limits, higher socket backlog capacity, IPv4/IPv6 networking adjustments, unprivileged ICMP ping support, and Redis-compatible memory overcommit settings.
- 20-insmod-tun: Load the
tunkernel module required for VPN. - 30-macvlan: Fix routing between the host and the Macvlan network used by ygg.
- 40-disable-active_insight: Remove Synology Active Insight.
- 50-sdp: Activate current IP for Smart DNS Proxy.
- 60-rclone: Update rclone.
- 70-youtube: Update yt-dlp.
- Docker and Docker Compose.
- Synology's Container Manager contains an old version of Docker; the synology-docker script can be used to update it.
- Some older Synology DSM/kernel versions may require the legacy yggdrasil-final branch.
- Some folders require specific environment files.
-
Update the following elements in
compose.yamlto work with your environment:dnsdns_searchenvironmentextra_hostsmac_addressnetworksuservolumes
-
Update the
.txtfiles with your own secrets. -
Deploy:
cd <folder-name> docker compose up -d