Skip to content

madhur/docker-compose-examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Homelab Docker Compose Services

This repository contains Docker Compose configurations for various self-hosted services in my homelab environment. All services are configured to work together with Traefik as a reverse proxy and are accessible through custom domains with SSL certificates.

Architecture Overview

  • Reverse Proxy: Traefik with Let's Encrypt SSL certificates
  • Network: External proxy-network for service communication
  • VPN: WireGuard VPN (10.42.42.0/24) for secure remote access
  • Authentication: Authentik SSO — forward-auth via Traefik for internet-facing services
  • Database: PostgreSQL running on host machine (local.madhur.co.in:5432)
  • Monitoring: cAdvisor, Gatus, Grafana, Change Detection for observability
  • Notifications: Ntfy for push notifications
  • Storage: Multiple database systems (MongoDB, Redis, Elasticsearch, DynamoDB) and persistent volumes

Services

Core Infrastructure

Knowledge Management & Documentation

Media & Content Management

Finance

Security & Authentication

Development & DevOps

Databases & Storage

Monitoring & Analytics

Location & Tracking

Utilities & Tools

Quick Start

Prerequisites

  • Docker and Docker Compose installed
  • External proxy-network created
  • Domain names configured with DNS pointing to your server

Setup

  1. Clone this repository:

    git clone <repository-url>
    cd docker
  2. Create the external network:

    docker network create proxy-network
  3. Navigate to any service directory and start it:

    cd traefik
    docker-compose up -d

Configuration

Environment Variables

Most services use .env files for configuration. Key variables include:

  • Domain names (e.g., immich.desktop.madhur.co.in)
  • Database credentials
  • Upload locations
  • Timezone settings (Asia/Kolkata)

Network Configuration

  • proxy-network: External network for service communication
  • wg: WireGuard VPN network (10.42.42.0/24)
  • elastic: Elasticsearch cluster network

Security Features

  • Authentik SSO with forward-auth middleware for internet-facing services
  • Dual-router pattern: LAN/VPN bypasses auth, internet requires Authentik
  • VPN whitelist middleware for sensitive services
  • SSL certificates via Let's Encrypt
  • Container security options (no-new-privileges)
  • Network isolation

Monitoring

  • Gatus: Declarative health checks for all services, alerts via Ntfy
  • cAdvisor: Container resource usage metrics
  • Grafana: Visualizes metrics from Graphite/StatsD
  • Change Detection: Monitors websites for changes
  • Ntfy: Push notifications for system events

Access URLs

Core Infrastructure

  • Authentik: https://authentik.desktop.madhur.co.in
  • Gatus: https://gatus.desktop.madhur.co.in
  • Traefik Dashboard: https://traefik.desktop.madhur.co.in:9091
  • WireGuard: https://wg.desktop.madhur.co.in

Knowledge Management

  • Bookstack: https://bookstack.desktop.madhur.co.in
  • Booklore: https://booklore.desktop.madhur.co.in
  • Docmost: https://docmost.desktop.madhur.co.in
  • Karakeep: https://kk.desktop.madhur.co.in
  • Linkwarden: https://linkwarden.desktop.madhur.co.in

Media & Content

  • Immich: https://immich.desktop.madhur.co.in
  • Jellyfin: https://jf.desktop.madhur.co.in
  • Paperless: https://paperless.desktop.madhur.co.in
  • qBittorrent: https://torrent.desktop.madhur.co.in

Finance

  • Firefly III: https://firefly.desktop.madhur.co.in
  • Actual Budget: https://actual.desktop.madhur.co.in
  • EzBookkeeping: https://ezbookkeeping.desktop.madhur.co.in
  • ExpenseOwl: https://expenseowl.desktop.madhur.co.in
  • Myfin: https://myfin.desktop.madhur.co.in
  • InvoiceShelf: https://invoiceshelf.desktop.madhur.co.in

Security & Development

  • Code Server: https://code.desktop.madhur.co.in
  • Prefect: https://prefect.desktop.madhur.co.in
  • Temporal UI: https://temporal-ui.desktop.madhur.co.in
  • Vaultwarden: https://vault.madhur.co.in

Utilities

  • ConvertX: https://convertx.desktop.madhur.co.in
  • Glance: https://glance.desktop.madhur.co.in
  • Homebox: https://homebox.desktop.madhur.co.in
  • Homepage: https://home.desktop.madhur.co.in
  • IT Tools: https://tools.desktop.madhur.co.in
  • JSON Crack: https://jc.desktop.madhur.co.in
  • Ntfy: https://ntfy.madhur.co.in
  • OliveTin: https://olivetin.desktop.madhur.co.in
  • OpenGist: https://og.desktop.madhur.co.in
  • Radicale: https://radiscale.desktop.madhur.co.in
  • Sterling PDF: https://pdf.desktop.madhur.co.in

Location & Tracking

  • Dawarich: https://dawarich.desktop.madhur.co.in

Local Services (Host Machine)

  • Grafana: http://grafana.local.madhur.co.in
  • Prometheus: http://proxmox.local.madhur.co.in
  • ActivityWatch: http://activitywatch.local.madhur.co.in
  • WatchYourLAN: http://watchyourlan.local.madhur.co.in
  • Ollama: http://ollama.local.madhur.co.in
  • HomeAssistant: http://homeassistant.local.madhur.co.in

Maintenance

  • Updates: Manual container updates via docker compose pull && docker compose up -d
  • Backups: Regular backups of persistent volumes recommended
  • Monitoring: Check logs via Dozzle (http://localhost:9999) or docker logs <container-name>
  • SSL: Certificates automatically renewed by Traefik

Notes

  • Authentik forward-auth applied to internet-facing services; LAN/VPN access bypasses auth
  • VPN whitelist middleware applied to sensitive services (e.g., Vaultwarden)
  • External network proxy-network must be created before starting services
  • Some services require additional configuration files (.env, etc.)
  • PostgreSQL runs on the host machine and is shared by multiple services connecting to local.madhur.co.in:5432
  • All services use domain pattern: *.desktop.madhur.co.in or *.madhur.co.in
  • Traefik automatically provisions and renews Let's Encrypt SSL certificates

Contributing

This is a personal homelab setup. Feel free to use these configurations as reference for your own homelab.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors