Giter Club home page Giter Club logo

charjabox's Introduction

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

charjabox's People

Contributors

dysphoricunicorn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

charjabox's Issues

Add documentation for Portainer

What type of feature are you requesting?
Documentation.

Describe the solution you'd like
In the directory /docs/applications/ there should be a small documentation page about every Application that can be installed via CharjaBox.

This should be possible to do without any actual knowledge about this project. Knowledge about the specific Application (best case in combination with docker) should be enough to contribute.

Additional context
Documentation for the app should include the following:

  • Link to original website of Application
  • One line description of the Application (see README.md)
  • First steps that should be done after installing the application
  • Basic information about how to configure the Application
  • Important things to consider (Example: A Media player needing specific file structures, application needing a first-time setup via webinterface, etc.)

More configurability

These things should be configurable:

  • Version/tag of docker containers
  • additional custom volumes for containers
  • additional custom environment variables and docker labels
  • users used to run containers

Add app-specific instructions to documentation.

What is this Issue asking for?

In the directory /docs/applications/ there should be a small documentation page about every Application that can be installed via CharjaBox.

This should be possible to do without any actual knowledge about this project. Knowledge about the specific Application (best case in combination with docker) should be enough to contribute.

This should include:

  • Link to original website of Application
  • One line description of the Application
  • First steps that should be done after installing the application
  • Basic information about how to configure the Application
  • Important things to consider (Example: A Media player needing specific file structures)

The following apps still need documentation:

  • Firefly III
  • Heimdall
  • Portainer

Add documentation for Firefly III

What type of feature are you requesting?
Documentation.

Describe the solution you'd like
In the directory /docs/applications/ there should be a small documentation page about every Application that can be installed via CharjaBox.

This should be possible to do without any actual knowledge about this project. Knowledge about the specific Application (best case in combination with docker) should be enough to contribute.

Additional context
Documentation for the app should include the following:

  • Link to original website of Application
  • One line description of the Application (see README.md)
  • First steps that should be done after installing the application
  • Basic information about how to configure the Application
  • Important things to consider (Example: A Media player needing specific file structures, application needing a first-time setup via webinterface, etc.)

Add documentation for Heimdall

What type of feature are you requesting?
Documentation.

Describe the solution you'd like
In the directory /docs/applications/ there should be a small documentation page about every Application that can be installed via CharjaBox.

This should be possible to do without any actual knowledge about this project. Knowledge about the specific Application (best case in combination with docker) should be enough to contribute.

Additional context
Documentation for the app should include the following:

  • Link to original website of Application
  • One line description of the Application (see README.md)
  • First steps that should be done after installing the application
  • Basic information about how to configure the Application
  • Important things to consider (Example: A Media player needing specific file structures, application needing a first-time setup via webinterface, etc.)

Add a way to simplify upgrading

What type of feature are you requesting?
This would be an extra script, not directly related with the playbook itself.

Describe the solution you'd like
There should be a way to make it easy to get new settings that were added to settings.template into the settings folder used for the playbook. For example a Script that automatically adds files and lines that were added since the last release.

Describe alternatives you've considered
An interactive tool that helps merging the template folder with the settings folder.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.