Awesome
Ansible NAS
After getting burned by broken FreeNAS updates one too many times, I figured I could do a much better job myself using just a stock Ubuntu install, some clever Ansible config and a bunch of Docker containers.
What Ansible-NAS Does
You can configure Ansible-NAS to set up any (or all!) of the applications listed below on your home server.
If you have a spare domain name you can configure applications to be accessible externally to your home LAN too; they'll be configured with a sensible hostname and DNS gets updated accordingly if your home IP address changes.
Available Applications
- Airsonic - catalog and stream music
- Bazarr - companion to Radarr and Sonarr for downloading subtitles
- Bitwarden - Password Manger (Technically Vaultwarden, a lightweight implementation in Rust)
- Booksonic - The selfhosted audiobook server
- Calibre - Calibre is a powerful and easy to use e-book manager.
- Calibre-web - Provides a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.
- Code Server - Powerful IDE from Microsoft accessible through the browser
- Cloud Commander - A dual panel file manager with integrated web console and text editor
- Cloudflare DDNS - automatically update Cloudflare with your IP address
- CouchPotato - for downloading and managing movies
- Dashy - A self-hosted startpage for your server. Easy to use visual editor, status checking, widgets, themes and tons more!
- DDNS Updater - dynamic dns updater for serveral providers
- Deluge - A lightweight, Free Software, cross-platform BitTorrent client.
- DokuWiki - A simple to use and highly versatile Open Source wiki software that doesn't require a database.
- Drone CI - A self-service Continuous Integration platform for busy development teams.
- Duplicacy - A web UI for the Duplicacy cloud backup program, which provides lock-free deduplication backups to multiple providers
- Duplicati - for backing up your stuff
- Emby - Media streaming and management
- ESPHome - ESP8266/ESP32 programming and management for home automation
- Firefly III - Free and open source personal finance manager
- FlareSolverr - FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection
- Fresh RSS - Self-hosted RSS feed aggregator like Leed or Kriss Feed
- get_iplayer - download programmes from BBC iplayer
- Gitea - Simple self-hosted GitHub clone
- GitLab - Self-hosted GitHub clone of the highest order
- Glances - for seeing the state of your system via a web browser
- Gotify - Self-hosted server for sending push notifications
- Grafana - Query, visualize, alert on, and understand your data no matter where it’s stored (via stats role).
- Guacamole - Web based remote desktop gateway, supports VNC, RDP and SSH
- Homepage - Highly customizable application dashboard with integrations for over 100 services.
- healthchecks.io - Ensure your NAS is online and get notified otherwise
- Heimdall - Home server dashboard
- Home Assistant - Open source home automation
- Homebridge - Emulate the iOS HomeKit API
- Jackett - API Support for your favorite torrent trackers
- Jellyfin - The Free Software Media System
- Joomla - Open source content management system
- Komga - a media server for your comics, mangas, BDs and magazines
- Krusader - Twin panel file management for your desktop
- Lidarr - Music collection manager for Usenet and BitTorrent users
- Loki - Loki is a horizontally scalable, highly available, multi-tenant log aggregation system inspired by Prometheus.
- Mealie - A self-hosted recipe manager and meal planner
- Minecraft Java Server - Java server edition of the popular building and exploring game
- Minecraft Bedrock Server - Bedrock server edition of the popular building and exploring game
- MiniDLNA - simple media server which is fully compliant with DLNA/UPnP-AV clients
- Miniflux - An RSS news reader
- Minio - MinIO is a high-performance, S3 compatible object store
- Mosquitto - An open source MQTT broker
- Mumble - Open source, low latency, high quality voice chat
- Mylar - An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents
- MyMediaForAlexa - Lets you stream your music collection to your alexa device
- n8n - Nodemation, a node based workflow and automation service like IFTTT.
- navidrome - Modern Music Server and Streamer compatible with Subsonic/Airsonic
- netboot.xyz - a PXE boot server
- Netdata - An extremely comprehensive system monitoring solution
- Nextcloud - A self-hosted Dropbox alternative
- Nomad - A simple and flexible scheduler and software orchestrator
- NZBget - The most efficient usenet downloader
- Octoprint - Control and monitor your 3D printer
- Ombi - web application that automatically gives your users the ability to request content
- openHAB - A vendor and technology agnostic open source automation software for your home
- Organizr - ORGANIZR aims to be your one stop shop for your Servers Frontend.
- overseerr - open source software application for managing requests for your media library
- Paperless_ng - Scan, index and archive all your physical documents
- Piwigo - Photo Gallery Software
- Plex - Plex Media Server
- Portainer - for managing Docker and running custom images
- Prometheus - Time series database and monitoring system (via stats role).
- Promtail - Promtail is an agent which ships the contents of local logs to a private Grafana Loki instance
- Prowlarr - Indexer aggregator for Sonarr, Radarr, Lidarr, etc.
- pyLoad - A download manager with a friendly web-interface
- PyTivo - An HMO and GoBack server for TiVos.
- Radarr - for organising and downloading movies
- Romm - A game library manager focused on retro gaming
- Route53 DDNS - Automatically update AWS Route53 with your IP address
- RSS-Bridge - The RSS feed for websites missing it
- Sabnzbd - A powerful usenet downloader that FreeNAS provides
- Sickchill - for managing TV episodes
- Silverbullet - Note-taking application optimized for people with a hacker mindset
- Sonarr - for downloading and managing TV episodes
- Speedtest-Tracker - Continuously track your internet speed
- Stats - Monitor and visualise metrics about your NAS and internet connection using Grafana, Prometheus, Telegraf and more.
- Syncthing - sync directories with another device
- Tautulli - Monitor Your Plex Media Server
- The Lounge - Web based always-on IRC client
- Threadfin - M3U Proxy for Plex DVR and Emby/Jellyfin Live TV. Based on xTeVe.
- TiddlyWiki - A unique non-linear notebook/wiki for capturing, organizing, and sharing complex information
- TimeMachine - Samba-based mac backup server
- Traefik - Web proxy and SSL certificate manager
- Transmission - BitTorrent client (with OpenVPN if you have a supported VPN provider)
- Ubooquity - Book and comic server
- uTorrent - The best torrent downloading app for beginners
- Valheim Server - Valheim dedicated gameserver manager.
- Virtual Desktop - A virtual desktop running on your NAS.
- Wallabag - Save and classify articles. Read them later.
- Watchtower - Monitor your Docker containers and update them if a new version is available
- Wireshark - the world’s foremost and widely-used network protocol analyzer.
- Woodpecker-CI - a simple CI engine with great extensibility, forked from Drone.
- YouTubeDL-Material - Self-hosted YouTube downloader built on Material Design
- ZNC - IRC bouncer to stay connected to favourite IRC networks and channels
Preconfigured Application Stacks
Ansible-NAS application stacks are a number of applications deployed together and preconfigured to perform a common goal.
- Logging - application logging capture and search service based on Grafana Loki.
What This Could Do
Ansible-NAS can run anything that's in a Docker image, which is why Portainer is included. A NAS configuration is a pretty personal thing based on what you download, what media you view, how many photos you take...so it's difficult to please everyone.
That said, if specific functionality you want isn't included and you think others could benefit, add it and raise a PR!
What This Doesn't Do
Ansible NAS doesn't set up your disk partitions, primarily because getting it wrong can be incredibly destructive. That aside, configuring partitions is usually a one-time (or very infrequent) event, so there's not much to be gained by automating it. Check out the docs for recommended setups.
Installation
See Installation.
Documentation
You can read the docs here. PRs for more documentation always welcome!
Migrating from FreeNAS
Read the migrating from FreeNAS docs.
Requirements
- Ansible NAS targets the latest Ubuntu LTS release, which is currently Ubuntu Server 22.04 LTS.
- You can run Ansible-NAS on whatever hardware you like, read the docs for more info. I use an HP Microserver.
Getting Help
Getting help is easy! You can:
- Read the docs
- Start a discussion
- Raise an issue if you think you've found a bug
- Chat on Gitter
Contributing
Contributions are always welcome! Please read CONTRIBUTING.md first.
Support
If you've enjoyed Ansible-NAS as much as I do working on it, please consider buying me a coffee :coffee:
Thanks
The awesome dudes at JetBrains for supplying core contributors with JetBrains Open Source licenses!
All of the awesome contributors to Ansible-NAS!