Docker compose configs for popular applications.
  • Dockerfile 100%
Find a file
2025-11-02 15:15:21 -05:00
abs Add audiobookshelf stack 2025-10-15 17:07:47 -04:00
actual-budget Formatting unification 2024-08-05 15:12:29 -04:00
authentik chore(update): authenik 2025-10-27 18:26:25 -04:00
cloudflared fix(permissions): cloudflared 2025-07-03 16:01:55 -04:00
dashy dashy: align with var standards 2024-10-06 19:37:30 -04:00
dockge dockge: remove conflicting var 2025-10-16 11:07:24 -04:00
docusaurus fix(build): dockge deploy 2025-11-02 15:15:21 -05:00
dokemon dokemon: fix conflicting var name 2024-10-06 15:30:40 -04:00
drawio drawio: change memory unit 2024-05-11 13:48:25 -07:00
duplicati duplicati: fix typo 2025-10-15 17:25:40 -04:00
etesync Add etesync stack 2024-08-09 15:31:26 -04:00
homarr Formatting unification 2024-08-05 15:12:29 -04:00
homeassistant Formatting unification 2024-08-05 15:12:29 -04:00
immich immich: update from main 2025-10-15 17:28:12 -04:00
joplin-server Add joplin server stack 2024-08-28 11:44:15 -04:00
kasm Add dri device on gpu containers 2024-11-19 15:45:08 -05:00
mariadb Add mariadb stack 2025-10-15 17:31:21 -04:00
mattermost Add mattermost stack 2024-08-19 14:36:59 -04:00
mealie mealie: update to v2 2024-10-22 11:05:23 -04:00
mongodb Add mongo stack 2025-10-13 12:01:31 -04:00
npm npm: update from main 2025-10-15 17:33:39 -04:00
pihole pihole: service spelling fixes 2025-02-26 11:13:50 -05:00
plex plex: update compose 2025-10-15 17:35:27 -04:00
postgres chore(update): postgres vectorchord 2025-10-27 16:36:16 -04:00
scrutiny Add scrutiny stack 2025-09-17 17:39:08 -04:00
semaphore feat(env): add time zone for semaphore schedule 2025-10-30 16:59:38 -04:00
uptime Add uptime kuma stack 2024-10-25 15:44:08 -04:00
valkey feat(valkey): move away from bitnami 2025-10-30 20:58:31 -04:00
vaultwarden vaultwarden: move away from config.json 2025-10-17 18:11:27 -04:00
README.md gpu: update resource reservations 2024-10-24 11:15:07 -04:00

Docker Compose Configurations

Docker compose configs for popular applications. These configs are known to work with @Jip-Hop's jailmaker project as well.

How to use

Dockge


Clone this repo to your /opt/stacks directory, to clone, just run:

cd /opt/stacks \
&& git clone https://github.com/dasunsrule32/docker-compose-configs.git .

Then click Scan Stacks Folder to import the compose files. You can then manage any of the docker apps from within Dockge.

image

docker compose


You can run the following command to start it via docker compose.

mkdir stacks \
&& cd stacks/ \
&& git clone https://github.com/dasunsrule32/docker-compose-configs.git . \
&& cd <app-dir> \
&& docker compose up -d

You can stage the stacks/ directory where you please.

Configuring applications from these templates

Templates


Each app is in its own directory with it's own compose.yaml and .env file. These have been configured for simplicity. Each application may have more configuration options available than what is configured in these templates. See below as an example of how your stacks directory will look like.

tree -a stacks/
stacks/
├── actual-budget
│   ├── compose.yaml
│   └── .env
├── cloudflared
│   ├── compose.yaml
│   └── .env
├── drawio
│   ├── compose.yaml
│   └── .env
├── homarr
│   ├── compose.yaml
│   └── .env
├── home-assistant
│   ├── compose.yaml
│   └── .env
├── kasm
│   ├── compose.yaml
│   └── .env
├── nginx-proxy-manager
│   ├── compose.yaml
│   └── .env
├── pgadmin
│   ├── compose.yaml
│   └── .env
├── plex
│   ├── compose.yaml
│   └── .env
└── vaultwarden
    ├── compose.yaml
    └── .env

Environment Variables


In regards to ENV variables within the docker images, you can use the .env files or you can use the environment: directive in the compose.yaml files. An example of using the environment: directive would be:

    environment:
      - NVIDIA_VISIBLE_DEVICES=all

The syntax differs a bit in .env files, that same config would looke like:

NVIDIA_VISIBLE_DEVICES=all

In my example templates, you'll see that each application has various environment variables set for config and data locations, etc. I will use .env files, as I prefer secrets, file paths, etc to be separate from the compose.yaml.

Working with templates


I will use my plex template as an example here. You can see the main body of the compose.yaml here. Also notice that I've set the volume paths to my custom paths in a var inside my .env file.

compose.yaml:

services:
  plex:
    container_name: plex
    image: plexinc/pms-docker
    restart: unless-stopped
    network_mode: host
    volumes:
      - ${CONFIG_PATH}:/config
      - ${TRANSCODE_PATH}:/transcode
      - ${MEDIA_PATH}:/data
    runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities:
                - gpu
    env_file:
      - .env
networks: {}

.env file:

TZ=America/Chicago
PLEX_CLAIM=claim-*******************
NVIDIA_VISIBLE_DEVICES=all
NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
CONFIG_PATH=/mnt/data/plex/configs
TRANSCODE_PATH=/mnt/data/plex/transcode
MEDIA_PATH=/mnt/media/plex

All you would need to do is adjust your PATH's and enter your PLEX_CLAIM, adjust your timezone. If you don't need nvidia gpu, just comment out those ENV variables and the compose bits for runtime and the deploy bits for the gpu. After that, you should be off and running.