Skip to content

MediaBoxDockerCompose: A media stack connected by volumes and networks

MediaBoxDockerCompose brings several homelab services together in Docker Compose. Its architecture lives mainly in service definitions, shared filesystem paths and network reachability, rather than in one application’s source code.

Configuration and automation Docker
  • Updated
  • 11
  • MIT
Docker ComposeWireGuard VPNWhisper AIPortainer
Repository languages

Shares calculated from GitHub Linguist bytes.

GitHub reports no language bytes for this repository.

GitHub · README · Language statistics

Overview

Why it exists

Comprehensive GitOps container stack combining WireGuard VPN tunnel networking with 15+ homelab automation services.

Best fit

Automated, isolated private cloud media server with remote access and encrypted traffic routing.

Getting started

These commands come from the repository documentation. They were not run during this review.

docker-compose.yml · Docker
docker-compose up -d

Repository references

Excerpts from the repository’s guides, in their original language. Links open the inspected source revision.

Prerequisites and first run

Installation

README.md

  1. Install Docker and Docker Compose on your system.
  2. Clone or download this repository to your system.
Read the full instructions ↗
Configuration and usage

Usage

README.md

  1. Navigate to the cloned/downloaded directory.
  2. Customize the configuration files in the config directory to your needs.
  3. Run the following command to start the containers:
  4. Access the web interfaces for the services by navigating to the URLs mentioned below.
Read the full instructions ↗
Development and contributions

Contributing

README.md

Pull requests and suggestions are welcome. For major changes, please open an issue first to discuss what you would like to change.
Read the full instructions ↗
Source documentation

1 documents read from 1 candidates.

Features and components 2

Service roles
The compose file includes download clients and media-management services such as Deluge, Jackett, Sonarr and Radarr. Each container has its own image and configuration. README service links should be distinguished from services actually enabled in Compose.
Persistent paths
Volume mappings connect container paths to host storage. A path used by one service must agree with the path seen by another when files move between them. Networking and persistence solve different integration problems.

Architecture

The components and their connections remain available as text. The diagram adds an interactive view.

System context Context
  1. Compose service definitions
  2. Download containers
  3. Media-management containers
  4. Shared host storage

Links verified in the repository.

Mermaid Interactive diagram (loads on open)

System overview of the components and connections verified in the repository.

Static architecture view for MediaBoxDockerCompose
Static preview. The interactive diagram replaces it after Mermaid loads.
flowchart LR
  n0["Compose service definitions"]
  n1["Download containers"]
  n2["Media-management containers"]
  n3["Shared host storage"]
  n0 --> n1
  n0 --> n2
  n1 --> n3
  n2 --> n3
Text version of the diagram
  • Compose service definitions → Download containers
  • Compose service definitions → Media-management containers
  • Download containers → Shared host storage
  • Media-management containers → Shared host storage
Follow one path through the code

Choose one service and compare its mounted download and library paths with the service that consumes them. Then check its network and port settings. Two healthy containers can still disagree about where a file exists.

Deployment and operations

The ports, storage, and startup relationships below come from the repository configuration. depends_on records startup order, not service readiness.

Network. Isolated Docker bridge network routed through WireGuard VPN gateway.

Deployment map

Compose topology of documented services, ports, and startup dependencies.

Static architecture view for MediaBoxDockerCompose
Static preview. The interactive diagram replaces it after Mermaid loads.
flowchart LR
  classDef svc fill:#1b3040,stroke:#6fdbd0,color:#edf4fb
  plex["plex<br/>32400:32400"]:::svc
  wireguard["wireguard<br/>51820:51820/udp"]:::svc
  whisper["whisper<br/>9000:9000"]:::svc
  portainer["portainer<br/>9443:9443"]:::svc
  samba["samba<br/>139:139, 445:445"]:::svc
Text version of the diagram
  • plex — plexinc/pms-docker · 32400:32400
  • wireguard — linuxserver/wireguard · 51820:51820/udp
  • whisper — local build / compose · 9000:9000
  • portainer — portainer/portainer-ce · 9443:9443
  • samba — dperson/samba · 139:139, 445:445
ServiceImage or buildPublished portsStartupStorage
plexplexinc/pms-docker32400:32400/media -> /data/movies
wireguardlinuxserver/wireguard51820:51820/udp/config bind mount
whisperlocal build / compose9000:9000Audio buffer volume
portainerportainer/portainer-ce9443:9443/var/run/docker.sock
sambadperson/samba139:139, 445:445Shared ZFS pool

File structure

The map shows the inspected files and their organization.

Reference

6 / 6 eligible files read (22 in the tree); 0 oversized, 0 failed reads and 0 syntax diagnostics.

What the scan covers

Known dependency/build folders, credential files and binaries are excluded. The scan covers READMEs, recognized manifests and parser-supported source files.

Linguist statistics cover the whole repository and may include other languages.

File map
flowchart TD
  root["MediaBoxDockerCompose"]
  f0["README.md"]
  root --> f0
  f1["docker-compose.yml"]
  root --> f1
  f2["whisper/docker-compose.yml"]
  root --> f2
  f3["extra/portainer/docker-compose.yml"]
  root --> f3
  f4["extra/samba/docker-compose.yml"]
  root --> f4
  f5["extra/wireguard-access-server/docker-compose.yml"]
  root --> f5

Files to read 2

References