Home - zbrewer/homelab GitHub Wiki
This wiki contains documentation for the setup of my homelab, namely how to install and configure services, which are listed below.
Update Instructions
Services
Hypervisors/Container Hosting
Networking Infrastructure
- OPNsense: Primary firewall.
- Brocade ICX-7250: Primary switch.
- UniFi Controller: Controller application for WiFi APs.
- Omada Controller: Controller application for WiFi APs.
- Pi-Hole: Ad-blocking DNS server.
- Caddy: Reverse proxy. Used to allow secure access to internal resources.
Identity Management
- Authentik: Centralized identity management system.
VPNs
- Wireguard: Highest performance and medium setup complexity. Used as primary VPN on core devices (phone & laptop).
- Tailscale: Extremely easy to setup and configure which makes it ideal for installation on a wide range of devices. It does require trusting Tailscale to manage network nodes although Headscale provides a self-hosted alternative. Slightly slower/less efficient than pure Wireguard due to user-space implementation (v.s. kernel-space) but it's getting better.
- OpenVPN: Low performance but widely supported. Used for L2 bridging capability. Most complex setup.
Storage
- TrueNAS: Primary storage solution. Provides a nice UI for managing storage features easily (backups, snapshots, ZFS pool scrubs, etc.).
- TrueCommand: Centralized management dashboard for TrueNAS systems.
Container Management
- Watchtower: Automatic container updating.
- Portainer: Container management web interface.
Monitoring & Alerting
- Grafana/InfluxDB: Monitoring dashboard (Grafana) and backing time-series datastore (InfluxDB).
- Telegraf: Supports sending a vide array of data to monitoring databases. Extremely useful when there is no built-in support for exporting monitoring data. Primarily used with InfluxDB as data sink.
- Network UPS Tools: Monitoring and management of uninterruptible power supplies (UPSs) that don't include their own networking features.
- Eaton UPS: Specific monitoring/alerting configs relating to my Eaton UPS and its SNMP interface.
- Mesh-Mini: Intel vPro management.
- Uptime Kuma: Uptime monitoring and alerting.
- Pushover: Notifications platform.
Media
- Plex: Media server.
- Tautulli: Statistics and monitoring for Plex.
- Automatic Ripping Machine: Rip movies, music, etc. from optical media automatically.
- Tablo on Plex: View live, OTA, TV on Plex from a Tablo tuner.
Remote Desktop
- Guacamole: Clientless (entirely in the browser) remote desktop gateway. Supports RDP, VNC, and SSH.
- Sunshine & Moonlight: High-performance remote desktop for applications where image quality and latency are more critical. The canonical use-case is for video game streaming but it is useful for other tasks like photo editing as well.
Wake-on-LAN
- UpSnap: Web app for sending WoL packets.
Home Automation
- Home Assistant: Home automation platform.
- Home Assistant Kiosk: Setting up a Surface Pro 3 as a Home Assistant control kiosk.
- Xcel Energy Monitoring: Monitor electrical usage from my smart meter.
- Wyze Bridge: Web interface and local streams for Wyze cameras.
User Apps
- Firefox: Browser in a browser. Useful when needing to access a site from a different computer, to get around internet browsing restrictions (as long as VPNs aren't blocked), etc.
- Homepage: Convenient landing page providing links to other services running in my homelab.
- Vikunja: Project management and to-do lists.
- Speedtest: Self-hosted speedtest.
- Actual Budget: Budgeting and financial tool.
- Wiki.js: Self-hosted wiki.
- Your Spotify: Spotify listening statistics.
- Calibre Web Automated: Web-based e-book library and management platform.
Amateur Radio
- Ham Clock: Browser-based dashboard for ham radio operators.
- Wavelog: Self-hosted contact logging software with integration support for popular online platforms.
Virtual Desktops
- Cloud Gaming VM: Play games running on a remote VM hosted on Proxmox.
Management
- Ansible: Task automation.