Skip to content

My docker-compose based self-hosted setup including media centre, dns, home automation, and more

Notifications You must be signed in to change notification settings

martinbjeldbak/self-hosted

Repository files navigation

Martin's Self-hosting setup

Lint

Inspired by Ben Balter's blog posts and his repository benbalter/pi-hole-cloudflared-docker-compose-ansible-caddy and https://github.com/sebgl/htpc-download-box

flowchart TD
    subgraph HTPC/Download Server
    subgraph *arrs
    direction TB
    S[Sonarr]
    R[Radarr]
    end
    *arrs-->J

    *arrs-->TM[Transmission]
    TM-->O[Wireguard\nClient]
    TM-.->D[Download\ndirectory]
    D<-.->L[Library\ndirectory]
    P[Plex Media\nServer]-->L
    *arrs-.-> L & D
    PTS[plextraktsync]-->P
    PMM[plex-meta-manager]-->P
    TAUT[Tautulli]-->P
    BARR[Bazarr]-->*arrs
    U[Unpackerr]-->*arrs
    end

    J[Jackett]-->T[Torrent\nindexers]
    O-->V[VPN Server]
    V-->B[Bittorrent\nPeers]

    subgraph media metadata
    PTS-->TR[Trakt.tv]
    PMM-->TR
    PMM-->RT[Rotten\nTomatoes]
    PMM-->IMDB[IMDb]
    PMM-->*arrs
    PMM-->TMDB[tMDB]
    end

    subgraph subtitle providers
    BARR-->OS[Opensubtitles]
    BARR-->addic7ed
    BARR-->subscene
    BARR-->podnapisi
    end

    subgraph other
    AH[AdGuard\nHome]
    H[Huginn]
    HA[Home\nAssistant]
    C[Caddy]
    W[Watchtower]
    PG[Postgres]

    H-->PG
    end

    W-->DISCORD[Discord]

    C-->AH
    C-->HA
    C-->P
    C-->J
    C-->R
    C-->S
    C-->TM
    C-->BARR
    C-->H
    C-->TAUT

    linkStyle 3,4,5,6,7 stroke:blue;
    classDef internet stroke:#f66;
    classDef folder stroke:blue,fill:none,stroke-dasharray: 5 5;
    class L,D folder
    class T,V,B,TR,RT,IMDB,OS,addic7ed,subscene,podnapisi,DISCORD,TMDB internet
Loading
  • Adguard Home - self-hosted DNS server with ad-blocking
  • Plex Media Server - connects to my Synology NAS and hosts database
  • PlexTraktSync - syncs library and watch status to Trakt.tv
  • Plex Meta Manager - maintains Plex collections and playlists from configuration files
  • Tautulli - UI to monitor Plex statistics
  • Home Assistant - integrates all my IoT devices
  • Transmission - torrent client used by Radarr and Sonarr to fetch media
  • Radarr - monitor & download movies
  • Sonarr - monitor & download TV shows
  • Lidarr - monitor & download albums
  • Bazarr - fetch subtitles for Sonarr and Radarr
  • Jackett - proxy supporting private torrent tracker integration with Radarr, Sonarr, Lidarr
  • Unpackerr - extracts files for Radarr, Sonarr, Lidarr
  • Caddy - reverse proxy server
  • Gluetun - VPN client with Wireguard support. Transmission and Jackett connections are tunneled through this
  • Watchtower - check for container updates nightly
  • Huginn - allows configuring agents
  • PostgreSQL - for any apps that need a database. Huginn only at the moment

all of these services are managed via docker using docker-compose.

Once running, many need to be configured via their UIs. In my case, volume folders are backed up using Synology Hyper Backup to Backblaze B2.