charjabox

Highly configurable Ansible based Homeserver setup using Docker.
10 Feb 202082

CharjaBox

GitHub Build Status

CharjaBox mascot

Ansible based Homeserver setup using Docker.

Inspired by Ansible NAS and HomelabOS

What is this?

CharjaBox is an Ansible playbook that can be used to easily deploy your Homeserver setup.

All supported applications can be installed on your server using Docker by simply changing some variables and running the playbook.

Read the documentation here.

Features

  • Samba Sharing
  • openVPN Server
  • Manual container management using Portainer
  • Home Media Streaming with Plex, Jellyfin and/or Airsonic
  • Media management with Sonarr, Radarr and Lidarr
  • Torrenting via r(u)Torrent
  • Your own wiki using Dokuwiki
  • RSS Feed Reader
  • macOS backups over the network with Time machine over SMB
  • Personal Finance management with Firefly III
  • Local DNS management with BIND
  • Hosting your own git repositories
  • Download caching for many CDNs
  • Password management
  • and more...

Applications

  • Airsonic - Free, web-based media streamer, providing ubiquitous access to your music
  • Bazarr - Companion application to Sonarr and Radarr for downloading subtitles
  • BIND - Domain Name Server for your home network
  • Bitwarden_rs - Password manager compatible with Bitwarden apps
  • Calibre-Web - Web app for browsing, reading and downloading eBooks stored in a Calibre database
  • Dokuwiki - Simple to use and highly versatile Open Source wiki software that doesn't require a database
  • Duplicati - Free backup software to store encrypted backups online
  • Firefly III - Free and open source personal finance manager
  • Gitea - Git with a cup of tea
  • Heimdall - Application Dashboard for easy access to all your services
  • Home-Assistant - Open source home automation that puts local control and privacy first.
  • Jackett - API Support for your favorite torrent trackers.
  • Jellyfin - The Free Software Media System
  • Lancache - Cache your video game downloads and operating system updates so you only have to download them once
  • Lidarr - Manage your music collection
  • Miniflux - Minimalist and opinionated feed reader
  • Nextcloud - Selfhosted cloud file hosting & sharing
  • Nginx - Open source web server and a reverse proxy server
  • Plex - Your very own personal streaming service
  • Portainer - Web Interface for managing Docker containers
  • Poste.io - All-in-one selfhosted E-Mail solution
  • pyLoad - Free and open-source Download Manager written in Python
  • Radarr - Manage your movie collection
  • rtorrent - Text-based ncurses BitTorrent client
  • ruTorrent - Web front-end for the popular Bittorrent client rtorrent
  • Sonarr - Manage your TV collection
  • Tautulli - Monitor your Plex Media Server
  • TheLounge - Self-hosted web IRC client
  • Time machine - Backup your macOS devices over the network
  • Traefik - Automate reverse proxy access to your server

Installation

  1. Make sure all Requirements are met
  2. Clone the repository and cd into the directory
  3. Configure everything
  4. Create an inventory file and add your server's IP/Hostname/Domain
  5. Install needed roles: ansible-galaxy install -r requirements.yml
  6. Run the playbook: ansible-playbook -i inventory -u $USER charjabox.yml

You can use the playbook charjabox/scripts/initialize.yml to skip part of steps 3 and 4. This playbook asks you about your server IP, group name and settings folder and creates the files for you automatically.

You still need to do it manually if you want to use multiple servers for now. This functionality will be added to the script in the future.

Special Thanks