Skip to content

A docker-compose setup ready to spin up a bunch of useful media, file-sharing, programming, web tools, databases...

Notifications You must be signed in to change notification settings

mpascu/docker-home-infra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-home-infra

This repo consists mainly in a docker-composed file ready to spin up a bunch of useful media, file-sharing, programming, web tools, databases... All the persistent data is stored in the ./config folder and Duplicati is provided in order to backup all data.

Screenshots

heimdall sceenshot

Organizr sceenshot

Tools included:

  • Traefik: Reverse proxy to be in front of all web services
  • Nextcloud: Nextcloud is the most deployed on-premises file share and collaboration platform.
  • MariaDB: Database required by nextcloud
  • Organizr: Organizr allows you to setup "Tabs" that will be loaded all in one webpage.
  • Pi-hole: The Pi-hole® is a DNS sinkhole that protects your devices from unwanted content, without installing any client-side software.
  • Heimdall: Heimdall Application Dashboard is a dashboard for all your web applications.
  • Calibre: calibre is a powerful and easy to use e-book manager
  • Calibre-web: Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.
  • Portainer: allows you to easily build, manage and maintain Docker environments.
  • Netdata: Instantly diagnose slowdowns and anomalies in your infrastructure with thousands of metrics, interactive visualizations, and insightful health alarms.
  • Guacamole: clientless, web-based remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
  • Transmission: BitTorrent client.
  • Restyaboard: Kanban board, management tool.
  • Duplicati: Backup tool
  • Postgresql: Database needed for Restyaboard
  • Adminer: Database management tool.
  • Bazarr, Sonarr, Radarr, Lidarr: download managers
  • Jackett: indexer scrapping
  • Plex: Media file organizer and streamer.
  • Watchtower: A process for automating Docker container base image updates.
  • Duplicati: Free backup software to store encrypted backups online. Configured to backup the persistent data of the other containers.
  • sftp: FTP server
  • Postfix: Mail sender
  • HomeAssistant: Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts.
  • OpenHab: a vendor and technology agnostic open source automation software for your home.

Prerequisites:

- Some domain
- Docker installed
- Docker-compose installed

Installation

  1. Create docker network
    docker network create nextcloud_network
  2. Setup the credentials and storage path in .env file
  3. Launch docker compose setup
    docker-compose up -d

Post-instalation configuration

  1. First, disable and stop Ubuntu's DNS resolver using the following two commands, otherwise pi-hole can't start because port 53 will be in use:

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service

    Open network manager configuration using the following command for editing:

    sudo nano /etc/NetworkManager/NetworkManager.conf

    Add dns=default under [main] so that the file contents look like what is shown below:

    	[main]
    	plugins=ifupdown,keyfile
    	dns=default
    

    Then, remove or even better rename /etc/resolv.conf file (it is a symbolic link) using the the following command:

    sudo mv /etc/resolv.conf /etc/resolv.conf.bak
    
    restart your network manager using the following command.
    
    sudo service network-manager restart
  2. Set your domain as trusted domain on Nextcloud config If you try to access your nextcloud instance right now, you will receive a message telling that this is not a trusted domain. To fix this you should setup your domain in two parameters of the file "app/config/config.php": first one under 'trusted_domains' => and the other one at 'overwrite.cli.url'

    Setting up External Storage

    'check_data_directory_permissions' => false,
    

    Needed to go through the reverse proxy:

    ‘overwriteprotocol’ => ‘https’,
    
  3. IMPORTANT: Remember to setup passwords at first deployment to sonarr, radarr and lidarr, otherwise they will be exposed to the internet without password.