Skip to content

Anashost/HomeLab-Docker-Stacks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation

Revolut.Me PayPal.Me ko_fi buymecoffee patreon

HomeLab Docker Stacks

This repository contains a collection of Docker Compose configurations for setting up and managing various services in a home lab environment. Each stack is tailored for ease of use, scalability, and maintainability, with detailed descriptions and customizable options.

               ##         .
             ## ## ##        ==
          ## ## ## ## ##    ===
      /"""""""""""""""""\___/ ===
 ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
      \______ o           __/
        \    \         __/
         \____\_______/
  _    _                         _           _        _____             _             
 | |  | |                       | |         | |      |  __ \           | |            
 | |__| | ___  _ __ ___   ___   | |     __ _| |__    | |  | | ___   ___| | _____ _ __ 
 |  __  |/ _ \| '_ ` _ \ / _ \  | |    / _` | '_ \   | |  | |/ _ \ / __| |/ / _ \ '__|
 | |  | | (_) | | | | | |  __/  | |___| (_| | |_) |  | |__| | (_) | (__|   <  __/ |   
 |_|  |_|\___/|_| |_| |_|\___|  |______\__,_|_.__/   |_____/ \___/ \___|_|\_\___|_|   

Available Stacks

Home Assistant - Home Automation Home Assistant is an open-source home automation platform that lets you control, automate, and monitor smart devices in one centralized system.
services:
  homeassistant:
    container_name: homeassistant
    ## image: "ghcr.io/home-assistant/home-assistant:2024.7.4"  ## Specific version
    image: "ghcr.io/home-assistant/home-assistant:stable"       ## Latest version
    volumes:
      - /home/user/homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host
Plex - Media Server Plex is a powerful media server solution that organizes your media and allows streaming to various devices.
version: "2.1"
services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=0
      - PGID=0
      - VERSION=docker
      - PLEX_CLAIM= # optional
    volumes:
      - /srv/plex/config:/config
      - /srv/dev-disk-by-uuid-nas/plex/TV:/tv
      - /srv/dev-disk-by-uuid-nas/plex/Movies:/movies
      - /srv/dev-disk-by-uuid-nas/plex/Music:/music
    restart: unless-stopped
Jellyfin - Open Source Media Server Jellyfin is an open-source alternative to Plex, offering media organization and streaming capabilities.
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    network_mode: 'host'
    volumes:
      - /srv/jellyfin/config:/config
      - /srv/jellyfin/cache:/cache
      - type: bind
        source: /srv/dev-disk-by-uuid-nas/media
        target: /media
        read_only: true
    devices: 
      - /dev/dri:/dev/dri ## iGPU passthrough
    restart: unless-stopped
Open WebUI - Interface for LLMs Open WebUI provides a convenient interface for managing and interacting with language models.
version: '3.8'
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    environment:
      - OLLAMA_BASE_URL=http://10.0.0.100:11434 # Change this to your server IP
    ports:
      - "3232:8080"
    volumes:
      - open-webui:/app/backend/data
    restart: unless-stopped
volumes:
  open-webui:
AdGuard Home - DNS-based Ad Blocking AdGuard Home is a network-wide ad and tracker blocking DNS server.
version: '3.8'
services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    restart: unless-stopped
    volumes:
      - adguard-workdir:/opt/adguardhome/work  # Docker volume for work directory
      - adguard-confdir:/opt/adguardhome/conf  # Docker volume for configuration directory
    ports:
      - 53:53/tcp
      - 53:53/udp
      - 784:784/udp
      - 853:853/tcp
      - 3000:3000/tcp
      - 80:80/tcp
      - 443:443/tcp
    networks:
      - adguard_net
volumes:
  adguard-workdir:
  adguard-confdir:
networks:
  adguard_net:
    driver: bridge
Pi-hole - Network-wide Ad Blocking Pi-hole is a DNS sinkhole that protects your devices from unwanted ads and trackers.
version: '3.8'
services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "8085:80"        # Web interface
      - "443:443"        # HTTPS (optional)
      - "5354:53/tcp"    # DNS (TCP)
      - "5354:53/udp"    # DNS (UDP)
    volumes:
      - pihole-data:/etc/pihole
      - dnsmasq-data:/etc/dnsmasq.d
    environment:
      - WEBPASSWORD=0000
      - DNS1=8.8.8.8
      - DNS2=8.8.4.4
      - ServerIP=10.0.0.100 # Change this to your server IP
    restart: unless-stopped
volumes:
  pihole-data:
  dnsmasq-data:
Uptime Kuma - Monitoring Uptime Kuma is a self-hosted monitoring solution for websites, APIs, and services.
version: '3.8'
services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    ports:
      - "3001:3001" # Web interface
    volumes:
      - uptime-kuma-data:/app/data # Persist data
    environment:
      - DB_TYPE=sqlite
    restart: unless-stopped
volumes:
  uptime-kuma-data:
Nginx Proxy Manager - Reverse Proxy Nginx Proxy Manager simplifies reverse proxy management with an intuitive web interface.
services:
  app:
    image: 'docker.io/jc21/nginx-proxy-manager:latest'
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    restart: unless-stopped
Nextcloud - File Sharing and Collaboration Nextcloud is a self-hosted productivity platform for file sharing, collaboration, and more.
version: '2'
volumes:
  nextcloud:
  db:
services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=admin
      - MYSQL_PASSWORD=xxxxxxx # Change this
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
  app:
    image: nextcloud
    restart: always
    ports:
      - 8888:80
    links:
      - db
    volumes:
      - /srv/dev-disk-by-uuid-nas/nextcloud:/var/www/html # Storage
    environment:
      - MYSQL_PASSWORD=xxxxxxx # Match the password above
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
VSCode Remote Server - Remote Development Code Server allows you to run VS Code in the browser for remote development.
version: '3.8'
services:
  code-server:
    image: codercom/code-server:latest
    container_name: code-server
    ports:
      - "8081:8080"  # Changed port mapping
    volumes:
      - code-server-data:/home/coder/project
    environment:
      - PASSWORD=0000  # Use a more secure password
    restart: unless-stopped
volumes:
  code-server-data:

About

This repository contains a collection of Docker Compose configurations for setting up and managing various services in a home lab environment. Each stack is tailored for ease of use, scalability, and maintainability, with detailed descriptions and customizable options.

Resources

Stars

Watchers

Forks

Contributors