Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Shell-based automation for deploying containerized services in LXC containers on Proxmox VE. Features automated stack deployments, monitoring with Grafana/Prometheus, and comprehensive homelab management tools.

License

Notifications You must be signed in to change notification settings

Yakrel/proxmox-homelab-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

25 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Proxmox Homelab Automation

Production homelab infrastructure running 40+ containerized services across 8 specialized LXC containers on Proxmox VE. Fully automated deployment with shell scripts, zero-touch configuration, and comprehensive monitoring.

๐Ÿš€ Quick Start

One-line installer on Proxmox host:

bash <(curl -s https://raw.githubusercontent.com/Yakrel/proxmox-homelab-automation/main/installer.sh)

Interactive menu guides you through stack selection and deployment. Only one password required (master encryption key).


๐Ÿ“ฆ What's Included

Media Automation Stack (LXC 101)

Complete media management with GPU acceleration for transcoding and ML:

  • Jellyfin - Media server with NVIDIA GPU transcoding (GTX 970)
  • Immich - Photo/video management with GPU-accelerated ML (face recognition, object detection)
  • Sonarr/Radarr/Bazarr - TV/Movie/Subtitle automation
  • Jellyseerr - Media request management
  • Prowlarr - Indexer manager
  • qBittorrent - Torrent client
  • FlareSolverr - Cloudflare bypass for indexers
  • Recyclarr - Automatic quality profile sync
  • Cleanuperr - Automatic torrent cleanup

Monitoring & Observability Stack (LXC 104)

Full monitoring infrastructure with auto-configured dashboards:

  • Prometheus - Metrics collection (30-day retention)
  • Grafana - Visualization with auto-imported dashboards (#10347, #893, #12611)
  • Loki - Log aggregation (30-day retention)
  • Promtail - Log collection from all LXC containers
  • PVE Exporter - Proxmox metrics with auto-generated credentials
  • cAdvisor - Container metrics

File Management Stack (LXC 102)

Download and file handling services:

  • JDownloader 2 - Direct download manager
  • MeTube - YouTube-dl web interface
  • Palmr - File management and sharing

Web Tools Stack (LXC 103)

Productivity and development tools:

  • Homepage - Unified dashboard with service widgets
  • Chrome - Browser-in-browser (web-accessible)
  • Obsidian - Note-taking with web access
  • CouchDB - Database for Obsidian sync
  • Portainer - Docker management UI

Proxy & Tunnel Stack (LXC 100)

External access and monitoring agents:

  • Cloudflared - Cloudflare tunnel for secure remote access
  • Promtail - Log shipping
  • Watchtower - Auto-updates

Backup Stack (LXC 106)

Automated backup solution:

  • Backrest - Web-based backup UI (powered by restic)
  • Automated backups: /datapool/config + Immich media

Game Servers Stack (LXC 105)

Dedicated game hosting (extensible framework):

  • Satisfactory - Factory building game server
  • Palworld - Multiplayer survival server

Development Stack (LXC 107)

Development environment (not in production deployment docs yet)


๐ŸŽฏ Key Features

Zero-Touch Deployment

  • Single command deployment per stack
  • Encrypted credentials in .env.enc files (AES-256-CBC)
  • Automatic service configuration (API keys, passwords, integrations)
  • Idempotent scripts - safe to re-run

GPU Acceleration

  • NVIDIA GTX 970 passthrough to unprivileged LXC
  • Jellyfin hardware transcoding (447 fps / 18.64x real-time tested)
  • Immich ML acceleration for face/object recognition
  • Automatic driver installation and cgroup configuration

Comprehensive Monitoring

  • Every LXC has Promtail (log shipping) + cAdvisor (metrics)
  • Central Grafana with pre-imported production dashboards
  • 30-day retention for metrics and logs
  • Automated Prometheus datasource configuration

Security & Isolation

  • Unprivileged LXC containers with UID/GID mapping
  • Encrypted secrets management
  • Network isolation per stack
  • Regular automated updates via Watchtower

โš ๏ธ Personal Homelab Notice

This is a production homelab optimized for a specific environment. It uses hardcoded values for reliability and simplicity:

  • Network: 192.168.1.x range, vmbr0 bridge, 192.168.1.1 gateway
  • Storage: ZFS pool named datapool
  • Timezone: Europe/Istanbul
  • Passwords: Pre-encrypted in .env.enc files

Not plug-and-play by design. To adapt: fork the repo, modify hardcoded values in scripts/configs, re-encrypt secrets with your key, test thoroughly.

๐Ÿ“ Project Structure

โ”œโ”€โ”€ installer.sh           # One-line installer entry point
โ”œโ”€โ”€ scripts/               # Deployment automation
โ”‚   โ”œโ”€โ”€ deploy-stack.sh   # Stack deployment orchestrator
โ”‚   โ”œโ”€โ”€ lxc-manager.sh    # LXC lifecycle management
โ”‚   โ””โ”€โ”€ helper-*.sh       # Utilities (menus, encryption, etc.)
โ”œโ”€โ”€ docker/               # Service stacks (compose files + configs)
โ”‚   โ”œโ”€โ”€ media/           # 15+ media services
โ”‚   โ”œโ”€โ”€ monitoring/      # Prometheus + Grafana + Loki
โ”‚   โ”œโ”€โ”€ files/           # Download managers
โ”‚   โ”œโ”€โ”€ webtools/        # Dashboard + productivity
โ”‚   โ”œโ”€โ”€ proxy/           # Cloudflare tunnel
โ”‚   โ”œโ”€โ”€ backup/          # Backrest
โ”‚   โ””โ”€โ”€ gameservers/     # Game servers
โ””โ”€โ”€ stacks.yaml          # Central configuration (IPs, resources, etc.)

๐Ÿ”ง Requirements

  • Proxmox VE 9.x with ZFS storage
  • Network: vmbr0 bridge, 192.168.1.x range
  • Optional: NVIDIA GPU for hardware transcoding/ML

๐ŸŽฎ GPU Support (NVIDIA)

Tested with NVIDIA GTX 970 for Jellyfin transcoding (447 fps / 18.64x) and Immich ML acceleration.

Setup: Run Helper Menu โ†’ Setup GPU Passthrough (NVIDIA) โ†’ Reboot โ†’ Deploy media stack

  • Automatic driver installation, cgroup config, device passthrough
  • Works in unprivileged LXC with custom container runtime patches

๐Ÿ” Security & Secrets

  • Unprivileged LXC containers with UID/GID mapping (101000:101000 โ†’ 1000:1000)
  • Encrypted credentials: All passwords in .env.enc files (AES-256-CBC with pbkdf2)
  • Single master password during deployment decrypts all secrets
  • Network isolation per stack with dedicated Docker networks
  • Automated updates via Watchtower (4x daily schedule)

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Shell-based automation for deploying containerized services in LXC containers on Proxmox VE. Features automated stack deployments, monitoring with Grafana/Prometheus, and comprehensive homelab management tools.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •