ultimate-devops-nas
ultimate-devops-nas copied to clipboard
[IN-DEVELOPMENT] An ultimate NAS build, automated with love using Proxmox as host OS, Ansible and Terraform. Make your self-hosted setup overkill with cutting-edge DevOps!
Table of Contents
- Ultimate NAS - DevOps Edition
- About
- What Ultimate DevOps NAS Does
- Stats
- Project start
- View count
- Last update
- List of Self-Hosted NAS Applications to be Used
- Host Services
- CI/CD Pipelines & Server Automation
- Alternative / optional choices
- Front-End
- Alternative / optional choices
- Infrastructure & Application Management
- Alternative / optional choices
- Microservices
- Networking & Remote Access
- Alternative / optional choices
- Security
- Utilities
- Alternative / optional choices
- CI/CD Pipelines & Server Automation
- Media Streaming
- Content Aggregation & Management
- Alternative / optional choices
- Content Downloading
- Alternative / optional choices
- Content Streaming
- Alternative / optional choices
- Content Aggregation & Management
- Miscellaneous
- Private Cloud Storage
- Smart Home Management
- Alternative / optional choices
- Host Services
- Tech Stack
- Installation
- Documentation
- Requirements
Ultimate NAS - DevOps Edition (in-development)
About
This project draws inspiration from several other existing open source projects:
- Perfect Media Server - Open-source media server framework by Alex Kretzschmar, using Linux paired with MergerFS (virtual, modular, configurable filesystem that allows for storage aggregation using different underlying filesystems) and SnapRAID (scriptable, self-healing software-based RAID targeted for home media centers) as an FOSS alternative for proprietary NAS solutions such as unRAID, OpenMediaVault, etc.
- Ansible NAS - NAS project by David Stephens, forking his project as the core Ansible deployment
- Wolfgang's Home Server Ansible Playbook - Ansible playbook for home server by Linux YouTuber Wolfgang, pulling some application and config ideas from this project
- DevOps Boilerplate Code - Boilerplates for Terraform and Proxmox infrastructure deployments by Christian Lempa
What Ultimate DevOps NAS Does
This intends to be a self-contained and automated provisioning and configuring of a feature-rich NAS host, with a flexible and modular configuration.
All services will be deployed via Ansible playbooks, with all services containerized with Docker. The eventual goal is to migrate all services to Kubernetes (something for smaller-scale clusters like K3s, Minikube, etc.) at a later point.
There is complexity with this due to some services being stateful (any apps using a built-in SQLite DB like Sonarr, Jellyfin, etc.) or requiring sidecar pods (any apps requiring a separate DB container, such as Firefly, Gitea, NextCloud, etc.)
All services are meant to be optional and swappable with alternatives of one's choosing, as each service will be deployed with an Ansible playbook using <SERVICE_NAME>_enabled as a deployment variable.
Features include:
- Flexible storage and software-based RAID
- Front-end dashboard
- Services Health Checks
- Monitoring and Logging
- Home Automation dashboard
- Media server
- Movies
- TV Shows
- eBooks
- Comics/Manga
- Torrent management
- Tracking
- Auto Downloader
- Traefik Reverse Proxy
- Dynamic DNS
- Password Vault
- Private Cloud
- File Storage
- Photo Storage
Planned features include:
- End-to-end self-hosted CI/CD pipelines for deployment
- Different environments for dev, staging and prod
- Using Kubernetes or Docker Swarm in place of just Docker
- Self-hosted MFA with Authelia
Tech Stack
* Badges generated by Shields.io *
Storage Pooling
- virtual, modular, configurable filesystem that allows for storage aggregation using different underlying filesystems
Software RAID
- software-based RAID targeted for home media centers that allows for bitrot prevention, self-healing and scriptable scheduling of array sync
Bare-metal Hypervisor
Source Control
Guest OS
Machine Image Creation
Infrastructure Provisioning
Application/OS Provisioning
Application Infrastructure
Filesystem
Remote Access
Reverse-Proxy / Load Balancer
**Future**
Stats
Project start
View count
Last update
Host Services
CI/CD Pipelines & Server Automation
Alternative / optional choices
- Self-hosted CI/CD runner, feature-rich
- n8n - Nodemation, a node based workflow and automation service like IFTTT.
- Woodpecker-CI - a simple CI engine with great extensibility, forked from Drone.
Front-End
- Dashy - A self-hosted startpage for your server. Easy to use visual editor, status checking, widgets, themes and tons more!
Alternative / optional choices
- Flame (Another static home page)
- Homer (A static home page)
- Krusader - Twin panel file management for your desktop
- Organizr - ORGANIZR aims to be your one stop shop for your Servers Frontend.
Infrastructure & Application Management
- Query, visualize, alert on, and understand your data no matter where it’s stored (via stats role).
- for managing Docker and running custom images
- Time series database and monitoring system (via stats role).
Alternative / optional choices
- healthchecks.io - Ensure your NAS is online and get notified otherwise
- Netdata - An extremely comprehensive system monitoring solution
- Tautulli - Monitor Your Plex Media Server
- Watchtower - Monitor your Docker containers and update them if a new version is available
Microservices
- An open source MQTT broker
- Gotify - Self-hosted server for sending push notifications
Networking & Remote Access
- automatically update Cloudflare with your IP address
(A controller for UniFi devices such as routers and Access Points)
- Guacamole - Web based remote desktop gateway, supports VNC, RDP and SSH
- DuckDNS (A dynamic DNS client for DuckDNS)
Alternative / optional choices
- A NGINX-based web server focused on security; needs Certbot + fail2ban)
- netboot.xyz - a PXE boot server
- SWAG (A reverse proxy with built-in support for dynamic DNS, Certbot and fail2ban)
Security
Future implementation
- Authelia - An authentication provider
Utilities
- Syncthing - sync directories with another device
- Code Server - Powerful IDE from Microsoft accessible through the browser
Media Streaming
Content Aggregation & Management
- Radarr - for organising and downloading movies
- Sonarr - for downloading and managing TV episodes
- Bazarr - companion to Radarr and Sonarr for downloading subtitles
- Lidarr - Music collection manager for Usenet and BitTorrent users
- Mylar - An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents
- Prowlarr - Indexer aggregator for Sonarr, Radarr, Lidarr, etc.
- Jackett - API Support for your favorite torrent trackers
- YouTubeDL-Material - Self-hosted YouTube downloader built on Material Design
Alternative / optional choices
- Overseerr - open source software application for managing requests for your media library; front end replacement for Sonarr and Radarr
- CouchPotato - for downloading and managing movies
Content Downloading
- arch-delugevpn (An Arch Linux container running Deluge and an Wireguard/OpenVPN client with a kill switch)
Alternative / optional choices
- Transmission - BitTorrent client (with OpenVPN if you have a supported VPN provider)
- pyLoad - A download manager with a friendly web-interface
Content Streaming
- The Free Software Media System
- Plex Media Server
- Airsonic - catalog and stream music
- Navidrome - Modern Music Server and Streamer compatible with Subsonic/Airsonic
- Komga - a media server for your comics, mangas, BDs and magazines
- Calibre-web - Provides a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.
- Paperless_ng - Scan, index and archive all your physical documents
Alternative / optional choices
- Photo Gallery Software
- Booksonic (An audiobook server)
- Miniflux - An RSS news reader
- Ubooquity - Book and comic server
Miscellaneous
Private Cloud Storage
Smart Home Management
Alternative / optional choices
- openHAB - A vendor and technology agnostic open source automation software for your home; Alternative to Home Assistant