Skip to content

Example Compose Stacks

Dennis edited this page Mar 3, 2026 · 1 revision

Example Compose Stacks

Ready-made docker-compose.yml examples for common setups. Copy the one that fits your needs and adjust as needed.

All examples use named volumes so your data survives container recreation. See Configuration for all available environment variables.


Minimal

DOCSight only. The simplest setup.

services:
  docsight:
    image: ghcr.io/itsdnns/docsight:latest
    container_name: docsight
    restart: unless-stopped
    ports:
      - "8765:8765"
    volumes:
      - docsight_data:/data
    environment:
      - TZ=Europe/Berlin

volumes:
  docsight_data:

With Speedtest Tracker

DOCSight + Speedtest Tracker for automated speed test history.

services:
  docsight:
    image: ghcr.io/itsdnns/docsight:latest
    container_name: docsight
    restart: unless-stopped
    ports:
      - "8765:8765"
    volumes:
      - docsight_data:/data
    environment:
      - TZ=Europe/Berlin
      - SPEEDTEST_TRACKER_URL=http://speedtest:80
      # Set SPEEDTEST_TRACKER_TOKEN via .env or DOCSight Settings UI

  speedtest:
    image: lscr.io/linuxserver/speedtest-tracker:latest
    container_name: speedtest
    restart: unless-stopped
    ports:
      - "8999:80"
    volumes:
      - speedtest_data:/config
    environment:
      - TZ=Europe/Berlin
      - DB_CONNECTION=sqlite
      - APP_KEY=  # generate with: docker run --rm lscr.io/linuxserver/speedtest-tracker generate-key

volumes:
  docsight_data:
  speedtest_data:

After starting, open Speedtest Tracker at http://localhost:8999, create an API token under Settings, and enter it in DOCSight Settings. See the Speedtest Tracker Setup Guide for details.


With BNetzA Sidecar

DOCSight + Breitbandmessung sidecar for automated BNetzA measurements. The sidecar runs the official BNetzA Desktop App in a headless browser on a configurable schedule and writes results to a shared volume that DOCSight imports automatically.

services:
  docsight:
    image: ghcr.io/itsdnns/docsight:latest
    container_name: docsight
    restart: unless-stopped
    ports:
      - "8765:8765"
    volumes:
      - docsight_data:/data
      - bnetz_data:/data/bnetz
    environment:
      - TZ=Europe/Berlin
      - BNETZ_WATCH_ENABLED=true
      - BNETZ_WATCH_DIR=/data/bnetz

  breitbandmessung:
    image: fabianbees/breitbandmessung:latest
    container_name: breitbandmessung
    restart: unless-stopped
    ports:
      - "5800:5800"    # noVNC web UI for initial setup
    volumes:
      - bnetz_data:/config/xdg/config/Breitbandmessung
    environment:
      - TZ=Europe/Berlin
      - TIME_START=13:00
      - TIME_END=22:30

volumes:
  docsight_data:
  bnetz_data:

After first start, open http://localhost:5800 to complete the Breitbandmessung app setup (accept terms, select your ISP and tariff). Measurements are imported into DOCSight automatically.

See BNetzA Breitbandmessung for details on the file watcher and CSV/PDF import.


With Home Assistant (MQTT)

DOCSight + Mosquitto MQTT broker for Home Assistant integration.

services:
  docsight:
    image: ghcr.io/itsdnns/docsight:latest
    container_name: docsight
    restart: unless-stopped
    ports:
      - "8765:8765"
    volumes:
      - docsight_data:/data
    environment:
      - TZ=Europe/Berlin
      - MQTT_HOST=mosquitto
      - MQTT_PORT=1883
      # Set MQTT_USER / MQTT_PASSWORD if your broker requires auth

  mosquitto:
    image: eclipse-mosquitto:2
    container_name: mosquitto
    restart: unless-stopped
    ports:
      - "1883:1883"
    volumes:
      - mosquitto_data:/mosquitto/data
      - mosquitto_config:/mosquitto/config

volumes:
  docsight_data:
  mosquitto_data:
  mosquitto_config:

If you already run an MQTT broker (e.g., via Home Assistant's Mosquitto add-on), skip the mosquitto service and point MQTT_HOST to your existing broker's IP address.

See Home Assistant Integration for sensor details and automation examples.


Full Stack

Everything together: DOCSight + Speedtest Tracker + BNetzA sidecar + community modules volume.

services:
  docsight:
    image: ghcr.io/itsdnns/docsight:latest
    container_name: docsight
    restart: unless-stopped
    ports:
      - "8765:8765"
    volumes:
      - docsight_data:/data
      - bnetz_data:/data/bnetz
      - ./modules:/modules          # community modules (optional)
    environment:
      - TZ=Europe/Berlin
      - BNETZ_WATCH_ENABLED=true
      - BNETZ_WATCH_DIR=/data/bnetz
      - SPEEDTEST_TRACKER_URL=http://speedtest:80
      # Configure remaining secrets via DOCSight Settings UI or .env file

  speedtest:
    image: lscr.io/linuxserver/speedtest-tracker:latest
    container_name: speedtest
    restart: unless-stopped
    ports:
      - "8999:80"
    volumes:
      - speedtest_data:/config
    environment:
      - TZ=Europe/Berlin
      - DB_CONNECTION=sqlite
      - APP_KEY=  # generate with: docker run --rm lscr.io/linuxserver/speedtest-tracker generate-key

  breitbandmessung:
    image: fabianbees/breitbandmessung:latest
    container_name: breitbandmessung
    restart: unless-stopped
    ports:
      - "5800:5800"
    volumes:
      - bnetz_data:/config/xdg/config/Breitbandmessung
    environment:
      - TZ=Europe/Berlin
      - TIME_START=13:00
      - TIME_END=22:30

volumes:
  docsight_data:
  speedtest_data:
  bnetz_data:

Tips

  • Secrets: Prefer entering API tokens and passwords via the DOCSight Settings UI rather than environment variables. The UI encrypts them at rest.
  • Networking: Services in the same compose file can reach each other by service name (e.g., http://speedtest:80). Use the internal port, not the published host port.
  • Community modules: Add - ./modules:/modules to the DOCSight volumes to enable community modules.
  • Smokeping / BQM: These are external services with their own Docker setups. Configure them in DOCSight Settings by entering their URLs. See Smokeping and BQM.

Clone this wiki locally