Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/BornToBeRoot/docker-compose

Collection of my docker compose stacks (traefik, pihole doh, nextcloud, mosquitto, portainer, homeassistant, etc.)
https://github.com/BornToBeRoot/docker-compose

dns-over-https docker docker-compose homeassistant homer mosquitto nextcloud pi-hole portainer traefik

Last synced: 3 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# docker-compose

Collection of my docker compose stacks for various services.

## Stacks

- **[traefik][traefik_readme]** - Traefik reverse proxy, load balancer and certificate manager

> **NOTE:** Most other stacks require this stack to be running

- **[pihole_doh][pihole_doh_readme]** - Pi-hole with DNS over HTTPS (DoH)
- **[mosquitto][mosquitto_readme]** - Mosquitto MQTT broker
- **[portainer_agent][portainer_agent_readme]** - 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 installed.

```bash
# Ubuntu
apt install docker docker-compose
```

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

```bash
# 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.
>
> ```bash
> # 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`](./update_all_stacks.sh) script that will iterate over all directories and pull the latest container images and restart the services.

```bash
# 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:

```plaintext

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

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

[mosquitto_readme]: ./stacks/mosquitto/
[pihole_doh_readme]: ./stacks/pihole_doh/
[portainer_agent_readme]: ./stacks/portainer_agent/
[traefik_readme]: ./stacks/traefik/