Skip to content

satsinush/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

269 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 Homelab Dashboard & Services

This repository contains all the configuration and Docker instructions needed to deploy a comprehensive, self-hosted homelab system.

License: MIT Docker Compose Arch Linux

πŸ“š Table of Contents

✨ Overview

This project bundles several open-source services, managed via docker-compose, and provides a custom web dashboard for easy management and interaction.

Homelab Dashboard Screenshot

Core Services Included

  • 🏠 Homelab Dashboard: A custom web interface with:
    • πŸ’» LAN device scanning and WOL support
    • 🧩 Word puzzle game solvers (Wordle, Mastermind, Hangman, Dungleon, Letter Boxed, Spelling Bee)
    • πŸ“¦ Host device package management (for pacman)
    • πŸ€– An integrated AI chatbot with Ollama
  • πŸ”€ Traefik v3: Cloud-native reverse proxy with automatic HTTPS (Let's Encrypt or self-signed).
  • πŸ”‘ Authelia: Single Sign-On (SSO) for securing services.
  • πŸ“Š Netdata: Real-time performance monitoring.
  • πŸ“¦ Portainer: Docker container management UI.
  • πŸ“ˆ Uptime Kuma: Service monitoring and status pages.
  • πŸ”” Ntfy: Push notifications for alerts.
  • 🚫 Pi-hole & Unbound: Network-wide ad-blocking and recursive DNS.
  • 🌐 ddclient: Dynamic DNS client to keep your domain pointed to your IP.
  • πŸ–₯️ RustDesk: A self-hosted remote desktop solution.
  • πŸ” Vaultwarden: Self-hosted password manager.

Infrastructure Diagram

%%{init: {
    "theme": "dark"
}}%%
graph TD
    %% INTERNET
    subgraph Internet
        RemoteClient[🌍 Remote User]
    end

    %% LAN
    subgraph LAN
        Router[πŸ“Ά Router]
        LocalClient[πŸ’» Local Devices]

        subgraph Server[πŸ–₯️ Homelab Server]
            WireGuard[πŸ”’ WireGuard VPN]
            UFW[πŸ›‘οΈ UFW Firewall]

            subgraph Docker[🐳 Docker Network]
                Traefik[πŸ”€ Traefik Reverse Proxy]
                Authelia[πŸ”‘ Authelia SSO]
                Vaultwarden[πŸ” Vaultwarden]
                Portainer[πŸ“¦ Portainer]
                Dashboard[🏠 Homelab Dashboard]
                Ollama[πŸ€– Ollama AI]
                Netdata[πŸ“Š Netdata Monitoring]
                UptimeKuma[πŸ“ˆ Uptime Kuma]
                Ntfy[πŸ”” ntfy Notifications]
                LLDAP[πŸ‘₯ LLDAP]
                Pihole[🚫 Pi-hole DNS]
                Unbound[πŸ”Ž Unbound DNS Resolver]
                Rustdesk[πŸ–₯️ RustDesk ID & Relay]
            end
        end
    end

    %% Entry chain
    RemoteClient --> Router --> WireGuard --> UFW
    LocalClient --> UFW

    %% DNS chain
    Pihole --> Unbound
    UFW -->|DNS| Pihole

    %% Firewall routes
    UFW -->|HTTP| Traefik
    UFW -->|Remote Access| Rustdesk --> LocalClient

    %% Proxy/Auth flows
    Traefik --> Authelia
    Traefik --> Vaultwarden
    Traefik --> Ntfy
    Traefik --> Portainer
    Traefik --> Dashboard
    Traefik --> Netdata
    Traefik --> UptimeKuma

    Authelia --> LLDAP

    %% Dashboard flows
    Dashboard --> Ollama
    Dashboard --> Netdata
    Dashboard -->|WOL| LocalClient
    Dashboard --> Ntfy

    %% Notifications
    UptimeKuma --> Ntfy
    Vaultwarden --> Ntfy
Loading

πŸš€ Quick Start Guide

Deployment is a multi-stage process. Follow these steps sequentially to prepare your host, configure services, and launch your homelab stack.

0. πŸ“‚ Clone & Initialize

First, clone this repository and its submodules.

git clone https://github.com/satsinush/homelab.git
cd homelab
git submodule init
git submodule update

For more info see the GitHub Docs πŸ”—

1. πŸ“‹ Install Host Prerequisites

Before running any configuration scripts, install all base dependencies on your Arch Linux host, including Docker, UFW, and WireGuard tools.

➑️ Follow the detailed instructions here: 1. Prerequisites

2. βš™οΈ Configure and Harden Host

This is the most critical security phase. You will configure SSH key access, set up the UFW firewall rules, and establish the WireGuard VPN tunnel.

➑️ Follow the detailed instructions here: 2. Host Machine Configuration

3. πŸš€ Deploy the Services

The final deployment involves configuring environment variables, setting up custom systemd services for automation, and launching the Docker stack.

  1. Configure Environment: Adjust values in the .env.template file.
  2. Enable Systemd Services: Copy and enable host API, backup, and sync services.
  3. Run Setup Script: Execute the main script to build containers and generate credentials.

➑️ Follow the detailed instructions here: 3. Project Deployment


Post-Deployment and Maintenance Guides

Once the core stack is running, use these sections for ongoing maintenance and checks.

4. βœ… Post-Installation Checklist

Complete a final checklist for each service (e.g., installing the root CA certificate, setting up notifications in Uptime Kuma, and disabling public sign-ups for Vaultwarden).

➑️ View the full checklist here: 4. Post Installation Checklist

5. πŸ’Ύ Backup and Restore

Learn how to manage and protect your data. This section covers running manual backups, checking the automated systemd backup timer, and performing a full system restoration from an archive.

➑️ View the backup and restore guide here: 5. Backup and Restore

6. πŸ§‘πŸ’» Development

If you plan to modify the Homelab Dashboard or Host API code, this guide explains how to use the docker-compose.override.yml file to launch a development environment with hot-reloading enabled.

➑️ View the development guide here: 6. Development

7. ❓ Troubleshooting

Find quick solutions for common deployment issues, including DNS resolution failures, browser security warnings, and container restarts.

➑️ View the troubleshooting guide here: 7. Troubleshooting

βš–οΈ License

This project is licensed under the MIT License. See the ./LICENSE file for details.

ℹ️ Note: The software for each containerized service falls under its own respective license. The MIT license for this repository applies only to the original configuration files, scripts, and the homelab-dashboard source code.

About

This repository contains all the configuration and Docker instructions needed to deploy a comprehensive, self-hosted homelab system. This project bundles several open-source services, managed via docker-compose, and provides a custom web dashboard for easy management and interaction.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages