Skip to content

[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!

License

Notifications You must be signed in to change notification settings

ctalaveraw/ultimate-devops-nas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

Ultimate NAS - DevOps Edition (in-development)

About

license

This project draws inspiration from several other existing open source projects:

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

MergerFS - virtual, modular, configurable filesystem that allows for storage aggregation using different underlying filesystems

Software RAID

SnapRAID - software-based RAID targeted for home media centers that allows for bitrot prevention, self-healing and scriptable scheduling of array sync

Bare-metal Hypervisor

Proxmox

Source Control

GitHub

Guest OS

Ubuntu

Machine Image Creation

Packer

Infrastructure Provisioning

Terrraform

Application/OS Provisioning

Ansible cloud-init

Application Infrastructure

Docker

Filesystem

ZFS

Remote Access

SSH

Reverse-Proxy / Load Balancer

Traefik

**Future**

Jenkins Gitea Kubernetes containerd Authelia

Stats

Project start

Created

View count

Visits Badge

Last update

Updated

Host Services

CI/CD Pipelines & Server Automation

  • Jenkins - Industry standard and extensible CI/CD engine

Alternative / optional choices

  • GitLab CI - 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

  • Grafana - Query, visualize, alert on, and understand your data no matter where it’s stored (via stats role).
  • Portainer - for managing Docker and running custom images
  • Prometheus - 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

  • Eclipse Mosquitto - An open source MQTT broker
  • Gotify - Self-hosted server for sending push notifications

Networking & Remote Access

  • CloudFlare DDNS - automatically update Cloudflare with your IP address
  • UniFi Controller (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

  • Bunkerized NGINX - 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

  • Traefik Proxy - Web proxy and SSL certificate manager
  • Vaultwarden - A FOSS Bitwarden fork written in Rust

Future implementation

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

  • Jellyfin - The Free Software Media System
  • Plex - 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

Miscellaneous

Private Cloud Storage

  • Nextcloud - A self-hosted Dropbox alternative

Smart Home Management

  • Home Assistant - Open source home automation
Alternative / optional choices
  • openHAB - A vendor and technology agnostic open source automation software for your home; Alternative to Home Assistant

About

[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!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published