Skip to content

ebertek/ebertek-compose

Repository files navigation

ebertek-compose

A collection of Docker Compose files and shell scripts.

Overview

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

Docker Compose

  • 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.
  • 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
  • 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.
  • 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.

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.
  • 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 tun kernel 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.

Requirements

  • 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.

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
  2. Update the .txt files with your own secrets.

  3. Deploy:

    cd <folder-name>
    docker compose up -d

About

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

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors