Collection of my docker compose stacks for various services.
-
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
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
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
This project is licensed under the MIT License - see the LICENSE file for details.