Archived old Ansible based Homeserver setup using Docker, hasn't been in use for years.
This repository has been archived on 2025-10-02. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Find a file
CherryKitten 8f38bded86 Fix typo
2020-02-10 14:18:02 +01:00
.github Update issue templates 2019-11-23 19:13:04 +01:00
docs Fix typo 2020-02-10 14:18:02 +01:00
group_vars/all Add openVPN server 2020-02-10 13:38:36 +01:00
roles/charjabox_deploy Add poste.io 2020-02-09 13:34:33 +01:00
scripts Update helper scripts 2020-01-06 16:42:30 +01:00
tasks Move variable defaults to group_vars/all/ 2020-01-06 16:35:40 +01:00
.gitignore Move variable defaults to group_vars/all/ 2020-01-06 16:35:40 +01:00
.travis.yml Add ansible-lint to travis.yml 2019-12-25 16:47:49 +01:00
ansible.cfg Set hash behaviour to 'merge' 2020-01-02 13:10:10 +01:00
charjabox.yml Add openVPN server 2020-02-10 13:38:36 +01:00
LICENSE Change name in License file 2019-10-25 11:07:23 +02:00
mkdocs.yml Add documentation for openvpn 2020-02-10 13:45:52 +01:00
README.md Add documentation for openvpn 2020-02-10 13:45:52 +01:00
requirements.yml Add openVPN server 2020-02-10 13:38:36 +01:00
Vagrantfile Update Vagrantfile to use custom inventory 2020-01-07 15:40:38 +01:00
vagrantinventory Update Vagrantfile to use custom inventory 2020-01-07 15:40:38 +01:00

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