Skip to content

Collection of my docker compose stacks (traefik, pihole doh, nextcloud, mosquitto, portainer, homeassistant, etc.)

License

Notifications You must be signed in to change notification settings

BornToBeRoot/docker-compose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-compose

Collection of my docker compose stacks for various services.

Stacks

  • traefik - Traefik reverse proxy, load balancer and certificate manager

    NOTE: Most other stacks require this stack to be running

  • pihole_doh - Pi-hole with DNS over HTTPS (DoH)

  • mosquitto - Mosquitto MQTT broker

  • portainer_agent - Portainer Agent for remote management of Docker

COMING SOON:

  • homeassistant - Home Assistant home automation
  • homer - Homer dashboard for your services
  • Nextcloud - Nextcloud self-hosted file sync and share with Collabora Online integration
  • portainer - Portainer management UI for Docker
  • CUPS - CUPS print server

Pre-requirments

Using these stacks requires a server with Docker and Docker Compose v2 installed.

# Ubuntu 24.04
apt install docker docker-compose-v2

Files are stored in /opt/container on the server (but can be changed, depending on your needs).

# Create directory
mkdir -p /opt/container

# Clone repository
git clone https://github.com/BornToBeRoot/docker-compose /opt/container

NOTE: The .env files may contain sensitive information and should be protected accordingly.

# Restrict access
chmod 640 /opt/container/stacks/*/.env
chown root:root /opt/container/stacks/*/.env

Update all stacks

To automatically update all stacks, you can use the update_all_stacks.sh script that will iterate over all directories and pull the latest container images and restart the services.

# Copy script to /opt/scripts
mkdir -p /opt/scripts
cp ./update_all_containers.sh /opt/scripts/update_all_containers.sh

# Make script executable
chmod +x /opt/scripts/update_all_containers.sh

# Create cronjob
nano /etc/crontab

Add the following line to run the script every tuesday at 1:33:


33 1    * * 2   root    /opt/scripts/update_all_stacks.sh

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Collection of my docker compose stacks (traefik, pihole doh, nextcloud, mosquitto, portainer, homeassistant, etc.)

Topics

Resources

License

Stars

Watchers

Forks

Languages