Monitoring

  • Monitoring server
  • Monitoring dashboard

Kubernetes

K3S Deployment in Homelab
Complete Guide

Networking

Deprecated (Migrated to Docker)

Tailscale

  1. Create a Ubuntu LXC
  2. Run the helper script in a PVE node
  3. Enable IP forwarding by following this
  4. Configure ethtool
  5. tailscale up --advertise-routes=<subnet_ip>

Pi-hole

  1. Install Pi-hole with this script
  2. Add Tailscale to LXC with this script
  3. Enable IP forwarding by following this
  4. Configure ethtool
  5. tailscale up --advertise-routes=192.168.1.0/24 --accept-dns=false --advertise-exit-node --accept-routes
  6. pi-hole settings > dns > permit all origins, use 127.0.0.1#5335 as upstream dns

Docker

Overview

Generate .env.example

sed 's/=.*/=/' .env > .env.example

VM Installation

  1. iGPU Passthrough
  2. Usual Debian Installation
  3. sudo apt update && sudo apt upgrade
  4. vi /etc/ssh/sshd_config
    1. PasswordAuthentication yes
    2. PermitRootLogin yes
    3. service ssh restart
    4. In local machine run ssh-copy-id root@<addr>
    5. Set the previous options back to default
  5. Install docker, gh
  6. Clone repo
  7. Copy .env
  8. apt install nfs-common cifs-utils

ctop

alias ctop="docker run --rm -ti --name=ctop --volume /var/run/docker.sock:/var/run/docker.sock:ro quay.io/vektorlab/ctop:latest"

Ansible

Tailscale

Traefik

https://technotim.live/posts/traefik-3-docker-certificates/

https://www.youtube.com/watch?v=hEoV_FjtWhE
https://www.youtube.com/watch?v=C6IL8tjwC5E

  • traefik.yml for static config
  • config.yml for defining routers and services
  • Setup ACME by labels of the traefik container

Pi-hole

  • A, CNAME records

Immich

  • SMB network volume
  • Storage template
    • {{y}}/{{y}}-{{MM}}-{{dd}}/{{y}}-{{MM}}-{{dd}}_{{HH}}.{{mm}}.{{ss}}_{{filename}}

Jellyfin

  • iGPU passthrough
  • NFS network volume

qBittorrent

  • NFS network volume

Sonarr

Radarr

Prowlarr

Stirling-PDF