Skip to content
Ansible based Homeserver setup using Docker
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


GitHub Build Status

CharjaBox mascot

Work in progress Ansible based Homeserver setup using Docker.

Inspired by Ansible NAS and HomelabOS

What is this?

In the future this maybe could be a simple solution to quickly deploy a homeserver using Ansible and Docker. At the moment it can share files via SMB and create a Portainer container for managing Docker containers. But this is only the beginning. I will add more information, documentation and features soon

Read the documentation here.


  • Samba Sharing
  • Manual container management using Portainer
  • Home Media Streaming with Plex or Jellyfin
  • Your own wiki using Dokuwiki
  • macOS backups over the network with Time machine over SMB
  • Personal Finance management with Firefly III
  • Local DNS management with BIND
  • Download caching for many CDNs


  • BIND - Domain Name Server for your home network
  • Dokuwiki - Simple to use and highly versatile Open Source wiki software that doesn't require a database
  • Firefly III - Free and open source personal finance manager
  • Heimdall - Application Dashboard for easy access to all your services
  • Jellyfin - The Free Software Media System
  • Lancache - Cache your video game downloads and operating system updates so you only have to download them once
  • Nginx - Open source web server and a reverse proxy server
  • Plex - Your very own personal streaming service
  • Portainer - Web Interface for managing Docker containers
  • Time machine - Backup your macOS devices over the network


  1. Make sure all Requirements are met
  2. Clone the repository and cd into the directory
  3. Copy settings/template to settings/charjabox and 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 script charjabox/scripts/ to skip part of steps 3 and 4. This scripts 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

You can’t perform that action at this time.