Skip to content

About

A collection of Docker Compose files for various self-hosted services.

Topics

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

ebertek-compose

A collection of Docker Compose files and shell scripts.

Overview

This repository contains Docker Compose configuration, persistent application configuration, and supporting scripts for self-hosted infrastructure across multiple hosts.

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, Technitium DNS)
  • GitOps and container management (Komodo, Renovate)
  • Remote web hosting (WordPress, MariaDB, nginx)
  • Utility services, backups, and host startup/maintenance scripts

Docker Compose

  • alloy: Collect and forward logs and metrics to ygg-mon.
  • bind9: DNS management.
  • mariadb: Relational database for WordPress.
  • nginx: Reverse proxy server for WordPress.
  • wordpress: Custom WordPress (content management system) PHP-FPM image based on wordpress:php8.5-fpm-alpine, with pdo_mysql added.
  • alloy: Collect and forward logs and metrics to ygg-mon.
  • 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.
  • download: BitTorrent client.
  • gluetun: VPN client in a thin Docker container for multiple VPN providers.
  • 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-4: M5Stack AtomS3 Lite ESP32S3 Dev Kit
      • Atomic Port ABC Base
      • Unit ENV-IV (SHT40 + BMP280)
      • Unit Light (photoresistor + LM393DR2G dual differential comparator)
      • Unit Mini TVOC/eCO2 (SGP30)
      • Unit PaHub v2.0 (PCA9548AP)
      • Unit RF433R (SYN531R)
    • esp-2: Espressif ESP32-S3-DevKitC-1-N32R8V
      • BME280
      • Unit MIC (MAX4466 microphone preamplifier + LM393DR2G dual-voltage comparator)
    • esp-3: M5Stack AtomS3 Lite ESP32S3 Dev Kit
    • esp-7: M5Stack AtomS3 Lite ESP32S3 Dev Kit
      • Atomic Port ABC Base
      • Unit RF433T (SYN115)
    • esp-5: M5Stack NanoC6 ESP32-C6FH4 Dev Kit
      • Unit KMeter-ISO (STM32F030 data acquisition + MAX31855KASA+T thermocouple digital conversion + CA-IS3641HW signal isolation)
    • esp-6: M5Stack NanoC6 ESP32-C6FH4 Dev Kit
      • Unit Watering (22 μF capacitor + EDLP600-D12B water pump)
    • esp-1: Espressif ESP32-S3-BOX-3
      • Audio input: ES7210
      • Audio output: ES8311 + NS4150
      • Gyroscope + accelerometer: ICM-42607-P
      • ESP32-S3-BOX-3-SENSOR
        • Radar: AT581X (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
  • 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.
  • 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: Community continuation of Calibre-Web-Automated.
  • plex: Media server.
  • plextraktsync: A python script that syncs the movies, shows and ratings between trakt and Plex.
  • scheduler: A docker job scheduler.
  • tautulli: Monitoring and tracking tool for Plex.
  • tmm: Media management tool.
  • komodo: A tool to build and deploy software on many server.
  • mongo: MongoDB document database used by Komodo.
  • periphery: Komodo agent.
  • 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.
  • atuin: Making your shell magical.
  • browser: Web accessible Chromium inside a Debian Container.
  • dbeaver: Cloud database manager.
  • irc: Web IRC client.
  • pg-atuin: PostgreSQL database used by Atuin.
  • smtp: Postfix SMTP server configured as an SMTP relay.
  • vw: Password management service.

Scripts

  • 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.
  • update-nftset: Update an IP blacklist using nftables sets.
  • 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: Run the Synology startup maintenance scripts, including sysctl tuning, TUN setup, Active Insight configuration, Smart DNS Proxy IP activation, rclone updates, yt-dlp/PhantomJS updates, and Synology HDD database updates.
  • 10-fix-sysctl: Apply kernel/sysctl settings required or recommended by containerized workloads and networking, including increased inotify watcher limits, socket backlog capacity, IPv4/IPv6 settings, unprivileged ICMP ping support, and Redis-compatible memory overcommit.
  • 20-insmod-tun: Create /dev/net/tun if necessary and load the tun kernel module required for VPN networking.
  • 30-macvlan-host: Configure host-side routing for the Docker Macvlan network.
  • 31-macvlan-docker: Configure the Docker Macvlan network.
  • 32-ygg-compose: Manage startup and shutdown of the allowlisted ygg-* Docker Compose stacks, with separate handling for NFS-dependent services.
  • 40-disable-active_insight: Disable Synology Active Insight file activity monitoring.
  • 50-sdp: Update the current public IP address with Smart DNS Proxy.
  • 60-rclone: Update the installed rclone binary to the latest stable release.
  • 70-youtube: Update yt-dlp and install/update PhantomJS for tinyMediaManager.

Requirements

  • Linux host with Docker Engine and Docker Compose.
  • Git for Git-backed deployment.
  • Host-specific external networks, bind-mount paths, and secrets referenced by the relevant Compose stacks.
  • NFS mounts are required by selected Pleiades services using the nfs Compose profile.

For legacy Synology deployments:

  • Synology Container Manager may ship an older Docker version; synology-docker can be used to update it.
  • Older DSM/kernel versions may require the legacy yggdrasil-final branch.

Usage

  1. Update the following elements in compose.yaml to work with your environment:
  • dns
  • dns_search
  • environment
  • extra_hosts
  • mac_address
  • networks
  • user
  • volumes
  1. Update the .env and .txt files with your own secrets.
  2. Deploy:
cd <folder-name>
docker compose up -d

About

A collection of Docker Compose files for various self-hosted services.

Topics

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages