├── .gitattributes
├── Ansible Semaphore.yml
├── README.md
├── aapanel
├── adguard.yml
├── adguardhome-sync.yml
├── audiobookshelf.yml
├── bitwarden.yml
├── bookstack.yml
├── budibase.yml
├── changedetection
├── cloudflare-ddns.yml
├── cryptgeon.yml
├── dashdot.yml
├── deluge.yml
├── dozzle.yml
├── dupeGuru.yml
├── emby.yml
├── gitea.yml
├── glances.yml
├── guacamole.yml
├── heimdall.yml
├── homeassistant.yml
├── homepage.yml
├── humhub.yml
├── install-ubuntudocker.sh
├── jackett
├── joplin.yml
├── kanboard.yml
├── kms-server.yml
├── lazytainer.yml
├── littlelink-server.yml
├── nextcloud.yml
├── nginx-proxy-manager.yml
├── ntp-server.yml
├── ombi.yml
├── openssh-server.yml
├── openvpn-server.md
├── pihole.yml
├── plex.yml
├── portainer.yml
├── rancher.yml
├── snippetbox.yml
├── speedtest.yml
├── synology-dsm.yml
├── tailscale.yml
├── tautulli.yml
├── transmission.yml
├── trilium-notes.yml
├── unifi-controller.yml
├── uptime-kuma.yml
├── vscode-server.yml
├── watchtower.yml
├── wikijs.yml
├── wireGuard_easy.yml
└── wireshark
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 |
--------------------------------------------------------------------------------
/Ansible Semaphore.yml:
--------------------------------------------------------------------------------
1 | ---
2 | services:
3 | # uncommenct this section and comment out the mysql section to use postgres instead of mysql
4 | #postgres:
5 | #restart: unless-stopped
6 | #ports:
7 | #- 5432:5432
8 | #image: postgres:14
9 | #hostname: postgres
10 | #volumes:
11 | # - semaphore-postgres:/var/lib/postgresql/data
12 | #environment:
13 | # POSTGRES_USER: semaphore
14 | # POSTGRES_PASSWORD: semaphore
15 | # POSTGRES_DATABASE: semaphore
16 | # comment this section out if you wish to use postgres
17 | mysql:
18 | restart: unless-stopped
19 | ports:
20 | - 3306:3306
21 | image: mysql:8.0
22 | hostname: mysql
23 | volumes:
24 | - semaphore-mysql:/var/lib/mysql
25 | environment:
26 | MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
27 | MYSQL_DATABASE: semaphore
28 | MYSQL_USER: semaphore
29 | MYSQL_PASSWORD: semaphore
30 | semaphore:
31 | restart: unless-stopped
32 | ports:
33 | - 3000:3000
34 | image: semaphoreui/semaphore:latest
35 | environment:
36 | SEMAPHORE_DB_USER: semaphore
37 | SEMAPHORE_DB_PASS: semaphore
38 | SEMAPHORE_DB_HOST: mysql #change to postgres for postgres
39 | SEMAPHORE_DB_PORT: 3306 # change to 5432 for postgres
40 | SEMAPHORE_DB_DIALECT: mysql
41 | SEMAPHORE_DB: semaphore # change to semaphore?sslmode=disable for postgres
42 | SEMAPHORE_PLAYBOOK_PATH: /tmp/semaphore/
43 | SEMAPHORE_ADMIN_PASSWORD: changeme
44 | SEMAPHORE_ADMIN_NAME: admin
45 | SEMAPHORE_ADMIN_EMAIL: admin@localhost
46 | SEMAPHORE_ADMIN: admin
47 | SEMAPHORE_ACCESS_KEY_ENCRYPTION: gs72mPntFATGJs9qK0pQ0rKtfidlexiMjYCH9gWKhTU=
48 | SEMAPHORE_LDAP_ACTIVATED: 'no' # set to yes if you wish to use ldap
49 | SEMAPHORE_LDAP_HOST: dc01.local.example.com
50 | SEMAPHORE_LDAP_PORT: '636'
51 | SEMAPHORE_LDAP_NEEDTLS: 'yes'
52 | SEMAPHORE_LDAP_DN_BIND: 'uid=bind_user,cn=users,cn=accounts,dc=local,dc=shiftsystems,dc=net'
53 | SEMAPHORE_LDAP_PASSWORD: 'ldap_bind_account_password'
54 | SEMAPHORE_LDAP_DN_SEARCH: 'dc=local,dc=example,dc=com'
55 | SEMAPHORE_LDAP_SEARCH_FILTER: "(\u0026(uid=%s)(memberOf=cn=ipausers,cn=groups,cn=accounts,dc=local,dc=example,dc=com))"
56 | depends_on:
57 | - mysql #change to postgres for postgres
58 | volumes:
59 | semaphore-mysql: #switch to semaphore-postgres to use postgres
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # docker-compose-templates
2 | A set of collections of docker-compose templates!
3 | ##
4 | Create Docker compose files from docker run commands using Composerize => https://www.composerize.com/
5 | ##
6 | Configuring remote access with systemd unit file
7 |
Use the command sudo systemctl edit docker.service to open an override file for docker.service in a text editor.
8 | ```
9 | [Service]
10 | ExecStart=
11 | ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
12 | ```
13 |
14 |
15 | `sudo systemctl restart docker.service`
16 |
17 |
--------------------------------------------------------------------------------
/aapanel:
--------------------------------------------------------------------------------
1 | version: '3.3'
2 | services:
3 | aapanel:
4 | ports:
5 | - '8886:8888'
6 | - '22:21'
7 | - '443:443'
8 | - '80:80'
9 | - '889:888'
10 | volumes:
11 | - '~/website_data:/www/wwwroot'
12 | - '~/mysql_data:/www/server/data'
13 | - '~/vhost:/www/server/panel/vhost'
14 | image: 'aapanel/aapanel:lib'
--------------------------------------------------------------------------------
/adguard.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2"
3 | services:
4 | adguardhome:
5 | image: adguard/adguardhome
6 | container_name: adguardhome
7 | ports:
8 | - 53:53/tcp
9 | - 53:53/udp
10 | - 784:784/udp
11 | - 853:853/tcp
12 | - 3000:3000/tcp
13 | - 83:80/tcp
14 | volumes:
15 | - :/opt/adguardhome/work
16 | - :/opt/adguardhome/conf
--------------------------------------------------------------------------------
/adguardhome-sync.yml:
--------------------------------------------------------------------------------
1 | ----
2 | version: "2.1"
3 | services:
4 | adguardhome-sync:
5 | image: lscr.io/linuxserver/adguardhome-sync:latest
6 | container_name: adguardhome-sync
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=America/New_York
11 | - CONFIGFILE=/config/adguardhome-sync.yaml #optional
12 | volumes:
13 | - /path/to/appdata/config:/config
14 | ports:
15 | - 8080:8080
16 | restart: unless-stopped
--------------------------------------------------------------------------------
/audiobookshelf.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: '2'
3 | services:
4 | audiobookshelf:
5 | image: ghcr.io/advplyr/audiobookshelf:latest
6 | environment:
7 | - AUDIOBOOKSHELF_UID=998 #change to match your server
8 | - AUDIOBOOKSHELF_GID=100 #change to match your server
9 | ports:
10 | - 13378:80 #do not change :80
11 | volumes:
12 | - /path/to/location/AudioBookShelf/AudioBooks:/audiobooks #map to your serverlocations
13 | - /path/to/location/AudioBookShelf/Podcasts:/podcasts #map to your serverlocations
14 | - /path/to/location/AudioBookShelf/Config:/config #map to your serverlocations
15 | - /path/to/location/AudioBookShelf/MetaData:/metadata #map to your serverlocations
--------------------------------------------------------------------------------
/bitwarden.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: '3'
3 |
4 | services:
5 | bitwarden:
6 | image: bitwardenrs/server
7 | restart: always
8 | ports:
9 | - 8000:80
10 | volumes:
11 | - ./bw-data:/data
12 | environment:
13 | WEBSOCKET_ENABLED: 'true' # Required to use websockets
14 | SIGNUPS_ALLOWED: 'true' # set to false to disable signups
--------------------------------------------------------------------------------
/bookstack.yml:
--------------------------------------------------------------------------------
1 | version: '3.3'
2 |
3 | services:
4 | bookstack-db:
5 | image: mariadb:10.9
6 | container_name: bookstack-db
7 | restart: unless-stopped
8 | volumes:
9 | - /etc/localtime:/etc/localtime:ro
10 | - /etc/timezone:/etc/timezone:ro
11 | - /var/docker/bookstack/database:/var/lib/mysql
12 | environment:
13 | - MYSQL_ROOT_PASSWORD=somepassword
14 | - MYSQL_DATABASE=bookstack
15 | - MYSQL_USER=someuser
16 | - MYSQL_PASSWORD=somepassword
17 | - MYSQL_INITDB_SKIP_TZINFO=1
18 |
19 | bookstack-app:
20 | image: ghcr.io/linuxserver/bookstack:v22.04
21 | container_name: bookstack-app
22 | restart: unless-stopped
23 | volumes:
24 | - /etc/localtime:/etc/localtime:ro
25 | - /etc/timezone:/etc/timezone:ro
26 | - /var/docker/bookstack/app:/config
27 | links:
28 | - bookstack-db
29 | environment:
30 | - DB_HOST=bookstack-db:3306
31 | - DB_DATABASE=bookstack
32 | - DB_USERNAME=someuser
33 | - DB_PASSWORD=somepassword
34 | ports:
35 | - 80:80
36 |
--------------------------------------------------------------------------------
/budibase.yml:
--------------------------------------------------------------------------------
1 | version: '3.3'
2 | services:
3 | budibase:
4 | container_name: budibase
5 | ports:
6 | - '10000:80'
7 | volumes:
8 | - '/volume1/docker/budibase:/data'
9 | restart: always
10 | image: budibase/budibase
--------------------------------------------------------------------------------
/changedetection:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | changedetection:
5 | image: lscr.io/linuxserver/changedetection.io:latest
6 | container_name: changedetection
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | - BASE_URL= #optional
12 | volumes:
13 | - /path/to/appdata/config:/config
14 | ports:
15 | - 5000:5000
16 | restart: unless-stopped
--------------------------------------------------------------------------------
/cloudflare-ddns.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 |
3 | services:
4 | cloudflare-ddns:
5 | image: oznu/cloudflare-ddns
6 | container_name: cloudflare-ddns
7 | restart: unless-stopped
8 | environment:
9 | - API_KEY=${CF_API_KEY}
10 | - ZONE=${CF_ZONE}
11 | - SUBDOMAIN=${CF_SUBDOMAIN}
--------------------------------------------------------------------------------
/cryptgeon.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 | services:
3 | npm:
4 | image: 'jc21/nginx-proxy-manager:latest'
5 | restart: unless-stopped
6 | ports:
7 | - '80:80'
8 | - '81:81'
9 | - '443:443'
10 | volumes:
11 | - ./data:/data
12 | - ./letsencrypt:/etc/letsencrypt
13 | networks:
14 | nginxproxymanager_default:
15 |
16 | redis:
17 | image: redis:7-alpine
18 | networks:
19 | nginxproxymanager_default:
20 |
21 |
22 | cryptgeon:
23 | image: cupcakearmy/cryptgeon:latest
24 | depends_on:
25 | - redis
26 | environment:
27 | SIZE_LIMIT: 16 MiB
28 | ports:
29 | - 5000:5000
30 | networks:
31 | nginxproxymanager_default:
32 |
33 |
34 | networks:
35 | nginxproxymanager_default:
36 | external: false
--------------------------------------------------------------------------------
/dashdot.yml:
--------------------------------------------------------------------------------
1 | version: '3.5'
2 |
3 | services:
4 | dash:
5 | image: mauricenino/dashdot:latest
6 | restart: unless-stopped
7 | environment:
8 | DASHDOT_ENABLE_CPU_TEMPS: 'true'
9 | privileged: true
10 | ports:
11 | - '80:3001'
12 | volumes:
13 | - /:/mnt/host:ro
--------------------------------------------------------------------------------
/deluge.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | deluge:
5 | image: lscr.io/linuxserver/deluge:latest
6 | container_name: deluge
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | - DELUGE_LOGLEVEL=error #optional
12 | volumes:
13 | - /path/to/deluge/config:/config
14 | - /path/to/your/downloads:/downloads
15 | ports:
16 | - 8112:8112
17 | - 6881:6881
18 | - 6881:6881/udp
19 | restart: unless-stopped
--------------------------------------------------------------------------------
/dozzle.yml:
--------------------------------------------------------------------------------
1 | version: '2'
2 | services:
3 | dozzle:
4 | image: amir20/dozzle:latest
5 | container_name: dozzle
6 | ports:
7 | - 8888:8080
8 | volumes:
9 | - /var/run/docker.sock:/var/run/docker.sock
--------------------------------------------------------------------------------
/dupeGuru.yml:
--------------------------------------------------------------------------------
1 | version: '2'
2 |
3 | volumes:
4 | configs:
5 | trash:
6 |
7 | services:
8 | dupeguru:
9 | image: jlesage/dupeguru
10 | ports:
11 | - 5800:5800
12 | environment:
13 | - TZ=America/Denver
14 | - PUID=1026
15 | - PGID=100
16 | volumes:
17 | - configs:/config:rw
18 | - /path/to/storage/files:/storage:rw
19 | - trash:/trash:rw
--------------------------------------------------------------------------------
/emby.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | emby:
5 | image: lscr.io/linuxserver/emby:latest
6 | container_name: emby
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | volumes:
12 | - /path/to/library:/config
13 | - /path/to/tvshows:/data/tvshows
14 | - /path/to/movies:/data/movies
15 | - /opt/vc/lib:/opt/vc/lib #optional
16 | ports:
17 | - 8096:8096
18 | - 8920:8920 #optional
19 | devices:
20 | - /dev/dri:/dev/dri #optional
21 | - /dev/vchiq:/dev/vchiq #optional
22 | - /dev/video10:/dev/video10 #optional
23 | - /dev/video11:/dev/video11 #optional
24 | - /dev/video12:/dev/video12 #optional
25 | restart: unless-stopped
--------------------------------------------------------------------------------
/gitea.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 |
3 | networks:
4 | gitea:
5 | external: false
6 |
7 | services:
8 | server:
9 | image: gitea/gitea:latest
10 | container_name: gitea
11 | environment:
12 | - USER_UID=998
13 | - USER_GID=100
14 | - GITEA__database__DB_TYPE=mysql
15 | - GITEA__database__HOST=db:3306
16 | - GITEA__database__NAME=gitea
17 | - GITEA__database__USER=gitea
18 | - GITEA__database__PASSWD=gitea
19 | restart: always
20 | networks:
21 | - gitea
22 | volumes:
23 | - /srv/confs/gitea:/data
24 | - /etc/timezone:/etc/timezone:ro
25 | - /etc/localtime:/etc/localtime:ro
26 | ports:
27 | - "3000:3000"
28 | - "2234:22"
29 | depends_on:
30 | - db
31 |
32 | db:
33 | image: mysql:5.7
34 | restart: always
35 | environment:
36 | - MYSQL_ROOT_PASSWORD=gitea
37 | - MYSQL_USER=gitea
38 | - MYSQL_PASSWORD=gitea
39 | - MYSQL_DATABASE=gitea
40 | networks:
41 | - gitea
42 | volumes:
43 | - /srv/databases/gitea/mysql:/var/lib/mysql
--------------------------------------------------------------------------------
/glances.yml:
--------------------------------------------------------------------------------
1 | version: '3.3'
2 | services:
3 | glances:
4 | restart: always
5 | ports:
6 | - '61208-61209:61208-61209'
7 | environment:
8 | - GLANCES_OPT=-w
9 | volumes:
10 | - '/var/run/docker.sock:/var/run/docker.sock:ro'
11 | pid: host
12 | image: 'nicolargo/glances:latest-full'
--------------------------------------------------------------------------------
/guacamole.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | volumes:
4 | guacamoleconf:
5 |
6 | services:
7 | guacamole:
8 | image: oznu/guacamole
9 | container_name: guacamole
10 | volumes:
11 | - guacamoleconf:/config
12 | ports:
13 | - 8585:8080 #edit 8585 as necessary for your setup
14 | restart: unless-stopped
--------------------------------------------------------------------------------
/heimdall.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | heimdall:
5 | image: lscr.io/linuxserver/heimdall:latest
6 | container_name: heimdall
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | volumes:
12 | - :/config
13 | ports:
14 | - 80:80
15 | - 443:443
16 | restart: unless-stopped
17 |
--------------------------------------------------------------------------------
/homeassistant.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 |
4 | volumes:
5 | homeassistant:
6 |
7 | services:
8 | homeassistant:
9 | image: homeassistant/home-assistant
10 | network_mode: "host"
11 | container_name: homeassistant
12 | volumes:
13 | - homeassistant:/config
14 | environment:
15 | - TZ=America/Denver
16 | ports:
17 | - 8123:8123
18 | restart: unless-stopped
--------------------------------------------------------------------------------
/homepage.yml:
--------------------------------------------------------------------------------
1 | version: "3.3"
2 | services:
3 | homepage:
4 | image: ghcr.io/benphelps/homepage:latest
5 | container_name: homepage
6 | ports:
7 | - 3000:3000
8 | volumes:
9 | - /path/to/config:/app/config # Make sure your local config directory exists
10 | - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations
11 | #check https://github.com/benphelps/homepage/wiki !!
--------------------------------------------------------------------------------
/humhub.yml:
--------------------------------------------------------------------------------
1 | version: '2'
2 |
3 | volumes:
4 | HumHubConfig:
5 | HumHubUploads:
6 | HubHumModules:
7 |
8 | services:
9 | humhub:
10 | image: mriedmann/humhub:1.6.2
11 | links:
12 | - db:db
13 | ports:
14 | - 8484:80
15 | volumes:
16 | - HumHubConfig:/var/www/localhost/htdocs/protected/config
17 | - HumHubUploads:/var/www/localhost/htdocs/uploads
18 | - HumHubModules:/var/www/localhost/htdocs/protected/modules
19 | environment:
20 | HUMHUB_DB_USER: humhub
21 | HUMHUB_DB_PASSWORD: humhub
22 |
23 | db:
24 | image: mariadb:10.2
25 | environment:
26 | MYSQL_ROOT_PASSWORD: root
27 | MYSQL_DATABASE: humhub
28 | MYSQL_USER: humhub
29 | MYSQL_PASSWORD: humhub
--------------------------------------------------------------------------------
/install-ubuntudocker.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | sudo apt-get install -y \
3 | apt-transport-https \
4 | ca-certificates \
5 | curl \
6 | software-properties-common
7 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
8 | sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
9 | apt-cache policy docker-ce
10 | sudo apt-get update
11 | sudo apt install docker-ce -y
12 | sudo usermod -aG docker ${USER}
13 | sudo systemctl enable docker.service
14 | sudo systemctl enable containerd.service
--------------------------------------------------------------------------------
/jackett:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | jackett:
5 | image: lscr.io/linuxserver/jackett:latest
6 | container_name: jackett
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Etc/UTC
11 | - AUTO_UPDATE=true #optional
12 | - RUN_OPTS= #optional
13 | volumes:
14 | - /path/to/data:/config
15 | - /path/to/blackhole:/downloads
16 | ports:
17 | - 9117:9117
18 | restart: unless-stopped
19 |
--------------------------------------------------------------------------------
/joplin.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 | services:
3 | db:
4 | image: postgres:13
5 | volumes:
6 | - /docker/joplin/postgres:/var/lib/postgresql/data
7 | ports:
8 | - "5432:5432"
9 | restart: unless-stopped
10 | environment:
11 | - POSTGRES_PASSWORD=somepassword
12 | - POSTGRES_USER=joplin
13 | - POSTGRES_DB=joplin
14 | app:
15 | image: joplin/server:latest
16 | depends_on:
17 | - db
18 | ports:
19 | - "22300:22300"
20 | restart: unless-stopped
21 | environment:
22 | - APP_PORT=22300
23 | - APP_BASE_URL=https://joplin.domain.lol
24 | - DB_CLIENT=pg
25 | - POSTGRES_PASSWORD=somepassword
26 | - POSTGRES_DATABASE=postgres
27 | - POSTGRES_USER=joplin
28 | - POSTGRES_PORT=5432
29 | - POSTGRES_HOST=db
--------------------------------------------------------------------------------
/kanboard.yml:
--------------------------------------------------------------------------------
1 | version: '2'
2 | services:
3 | db:
4 | image: mariadb:latest
5 | command: --default-authentication-plugin=mysql_native_password
6 | volumes:
7 | - /srv/Databases/Kanboard2:/var/lib/mysql
8 | environment:
9 | - MYSQL_ROOT_PASSWORD=UVxY26hNL4qmo
10 | - MYSQL_DATABASE=kanboard
11 | - MYSQL_USER=kanboard
12 | - MYSQL_PASSWORD=kanboard
13 | restart: always
14 |
15 | kanboard:
16 | image: kanboard/kanboard:latest
17 | ports:
18 | - 88:80
19 | volumes:
20 | - /srv/Configs/Kanboard2/kanboard_data:/var/www/app/data
21 | - /srv/Configs/Kanboard2/kanboard_plugins:/var/www/app/plugins
22 | - /srv/Configs/Kanboard2/kanboard_ssl:/etc/nginx/ssl
23 | environment:
24 | - DATABASE_HOST=db
25 | - DATABASE_USER=kanboard
26 | - DATABASE_PASSWORD=kanboard
27 | - DATABASE_NAME=kanboard
28 | depends_on:
29 | - db
30 | links:
31 | - db:db
32 | restart: always
--------------------------------------------------------------------------------
/kms-server.yml:
--------------------------------------------------------------------------------
1 | version: '3.3'
2 | services:
3 | kmsserver:
4 | ports:
5 | - '1688:1688'
6 | restart: always
7 | container_name: vlmcsd
8 | image: fr0zendark/kmsserver
--------------------------------------------------------------------------------
/lazytainer.yml:
--------------------------------------------------------------------------------
1 | # With Lazytainer, you can have containers start up when you need them and then shut down after a specified amount of time after you're done using them!
2 | # Docker Compose Example
3 |
4 | version: "3"
5 | services:
6 | lazytainer3:
7 | container_name: lazytainer3
8 | image: ghcr.io/vmorganp/lazytainer:master
9 | environment:
10 | - PORT=8080, 3000 # comma separated list of ports...or just the one
11 | - LABEL=lazytainer3 # value of lazytainer.marker for other containers that lazytainer checks
12 | - TIMEOUT=15 # OPTIONAL number of seconds to let container idle
13 | - MINPACKETTHRESH=10 # OPTIONAL number of packets that must be recieved to keepalive/start container
14 | - POLLRATE=1 # OPTIONAL number of seconds to sleep between polls
15 | - VERBOSE=true # probably set this to false unless you're debugging or doing the initial demo
16 | ports:
17 | - 8080:8080
18 | - 3000:3000
19 | volumes:
20 | - /var/run/docker.sock:/var/run/docker.sock:ro
21 |
22 | youtube:
23 | container_name: youtube3
24 | image: modenaf360/youtube-dl-nas
25 | environment:
26 | - MY_ID=dbtech
27 | - MY_PW=password
28 | volumes:
29 | - /home/docker/YouTube:/downfolder
30 | network_mode: service:lazytainer3
31 | depends_on:
32 | - lazytainer3 # wait for lazytainer to start before starting
33 | labels:
34 | - "lazytainer.marker=lazytainer3" # required label to make it work
35 |
36 | taisun:
37 | image: linuxserver/taisun
38 | container_name: taisun3
39 | restart: unless-stopped
40 | network_mode: service:lazytainer3
41 | depends_on:
42 | - lazytainer3
43 | labels:
44 | - "lazytainer.marker=lazytainer3"
45 | volumes:
46 | - /var/run/docker.sock:/var/run/docker.sock
--------------------------------------------------------------------------------
/littlelink-server.yml:
--------------------------------------------------------------------------------
1 | # Original GitHub: https://github.com/techno-tim/littlelink-server
2 | # Note: Just remove any of the lines for social media accounts you don't want to show up on your page.
3 | # A lightweight, open source, and self-hosted alternative to linktree in a Docker container from Techno Tim
4 | ---
5 | version: "3.0"
6 | services:
7 | littlelink-server:
8 | image: ghcr.io/techno-tim/littlelink-server:latest
9 | # dockerhub is also supported timothystewart6/littlelink-server
10 | # image: timothystewart6/littlelink-server:latest
11 | container_name: littlelink-server
12 | environment:
13 | - META_TITLE=Techno Tim
14 | - META_DESCRIPTION=Techno Tim Link page
15 | - META_AUTHOR=Techno Tim
16 | - META_KEYWORDS=HomeLab, CSS, HTML, Engineering
17 | - LANG=en
18 | - META_INDEX_STATUS=all
19 | - THEME=Dark
20 | - FAVICON_URL=https://pbs.twimg.com/profile_images/1286144221217316864/qIAsKOpB_200x200.jpg
21 | - AVATAR_URL=https://pbs.twimg.com/profile_images/1286144221217316864/qIAsKOpB_200x200.jpg
22 | - AVATAR_2X_URL=https://pbs.twimg.com/profile_images/1286144221217316864/qIAsKOpB_400x400.jpg
23 | - AVATAR_ALT=Techno Tim Profile Pic
24 | - NAME=TechnoTim
25 | - BIO=Hey! Just a place where you can connect with me!
26 | - FOOTER=Thanks for stopping by!
27 | - GITHUB=https://github.com/timothystewart6
28 | - TWITTER=https://twitter.com/TechnoTimLive
29 | - INSTAGRAM=https://www.instagram.com/techno.tim
30 | - YOUTUBE=https://www.youtube.com/channel/UCOk-gHyjcWZNj3Br4oxwh0A
31 | - TWITCH=https://www.twitch.tv/technotim/
32 | - DISCORD=https://l.technotim.live/discord
33 | - TIKTOK=https://www.tiktok.com/@technotim
34 | - KIT=https://kit.co/TechnoTim
35 | - FACEBOOK=https://facebook.com
36 | - FACEBOOK_MESSENGER=https://facebook.com
37 | - LINKED_IN=https://linkedin.com
38 | - PRODUCT_HUNT=https://www.producthunt.com/
39 | - SNAPCHAT=https://www.snapchat.com/
40 | - SPOTIFY=https://www.spotify.com/
41 | - REDDIT=https://www.reddit.com/
42 | - MEDIUM=https://medium.com
43 | - PINTEREST=https://www.pinterest.com/
44 | - EMAIL=you@example.com
45 | - EMAIL_TEXT=Email Me!
46 | - EMAIL_ALT=you@example.com
47 | - EMAIL_ALT_TEXT=Email me!
48 | - SOUND_CLOUD=https://soundcloud.com
49 | - FIGMA=https://figma.com
50 | - TELEGRAM=https://telegram.org/
51 | - TUMBLR=https://www.tumblr.com/
52 | - STEAM=https://steamcommunity.com/
53 | - VIMEO=https://vimeo.com/
54 | - WORDPRESS=https://wordpress.com/
55 | - GOODREADS=https://www.goodreads.com/
56 | - SKOOB=https://www.skoob.com.br/
57 | - LETTERBOXD=https://letterboxd.com/
58 | - MASTODON=https://mastodon.social/
59 | - MICRO_BLOG=https://micro.blog/
60 | - WHATSAPP=https://www.whatsapp.com/
61 | - STRAVA=https://www.strava.com/
62 | - BUYMEACOFFEE=https://www.buymeacoffee.com/
63 | - GITLAB=https://www.gitlab.com/
64 | - PATREON=https://www.patreon.com/technotim
65 | - DEVTO=https://dev.to/
66 | - UMAMI_WEBSITE_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
67 | - UMAMI_APP_URL=https://your-umami-app.com
68 | - BUTTON_ORDER=YOUTUBE,TWITCH,TWITTER,GITHUB,INSTAGRAM,DISCORD,FACEBOOK,TIKTOK,KIT,PATREON
69 | - PAYPAL=https://www.paypal.me/user
70 | - SLACK=https://slack.com/
71 | - STACKOVERFLOW=https://stackoverflow.com/
72 | - LASTFM=https://last.fm/
73 | - GITEA=https://gitea.io/
74 | - POLYWORK=https://www.polywork.com/
75 | - SIGNAL=https://signal.org/
76 | - UNTAPPD=https://untappd.com/
77 | - BUTTON_TARGET=_blank
78 | - INSTANTGAMING=https://www.instant-gaming.com/
79 | - OG_SITE_NAME=Techno Tim Live (OG)
80 | - OG_TITLE=Techno Tim (OG)
81 | - OG_DESCRIPTION=Techno Tim Link page (OG)
82 | - OG_URL=https://technotim.live/
83 | - OG_IMAGE=https://pbs.twimg.com/profile_images/1286144221217316864/qIAsKOpB_400x400.jpg
84 | - OG_IMAGE_WIDTH=400
85 | - OG_IMAGE_HEIGHT=400
86 | - TWITTER_CARD=summary_large_image
87 | - TWITTER_IMAGE=https://pbs.twimg.com/profile_images/1286144221217316864/qIAsKOpB_400x400.jpg
88 | - TWITTER_SITE=@TechnoTimLive
89 | - TWITTER_CREATOR=@TechnoTimLive
90 | ports:
91 | - 8080:3000
92 | restart: unless-stopped
93 | security_opt:
94 | - no-new-privileges:true
--------------------------------------------------------------------------------
/nextcloud.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | nextcloud:
5 | image: lscr.io/linuxserver/nextcloud:latest
6 | container_name: nextcloud
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | volumes:
12 | - /path/to/appdata:/config
13 | - /path/to/data:/data
14 | ports:
15 | - 443:443
16 | restart: unless-stopped
--------------------------------------------------------------------------------
/nginx-proxy-manager.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 | services:
3 | app:
4 | image: 'jc21/nginx-proxy-manager:latest'
5 | restart: unless-stopped
6 | ports:
7 | # These ports are in format :
8 | - '80:80' # Public HTTP Port
9 | - '443:443' # Public HTTPS Port
10 | - '81:81' # Admin Web Port
11 | # Add any other Stream port you want to expose
12 | # - '21:21' # FTP
13 | environment:
14 | DB_MYSQL_HOST: "db"
15 | DB_MYSQL_PORT: 3306
16 | DB_MYSQL_USER: "npm"
17 | DB_MYSQL_PASSWORD: "npm"
18 | DB_MYSQL_NAME: "npm"
19 | # Uncomment this if IPv6 is not enabled on your host
20 | # DISABLE_IPV6: 'true'
21 | volumes:
22 | - ./data:/data
23 | - ./letsencrypt:/etc/letsencrypt
24 | depends_on:
25 | - db
26 |
27 | db:
28 | image: 'jc21/mariadb-aria:latest'
29 | restart: unless-stopped
30 | environment:
31 | MYSQL_ROOT_PASSWORD: 'npm'
32 | MYSQL_DATABASE: 'npm'
33 | MYSQL_USER: 'npm'
34 | MYSQL_PASSWORD: 'npm'
35 | volumes:
36 | - ./data/mysql:/var/lib/mysql
--------------------------------------------------------------------------------
/ntp-server.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: '3'
3 |
4 | services:
5 | ntp-server:
6 | image: cturra/ntp
7 | container_name: ntp-server
8 | restart: unless-stopped
9 | ports:
10 | - 123/udp:123/udp
11 | environment:
12 | - NTP_SERVERS=${NTP_SERVERS}
13 |
--------------------------------------------------------------------------------
/ombi.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | ombi:
5 | image: lscr.io/linuxserver/ombi:latest
6 | container_name: ombi
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | - BASE_URL=/ombi #optional
12 | volumes:
13 | - /path/to/appdata/config:/config
14 | ports:
15 | - 3579:3579
16 | restart: unless-stopped
17 |
--------------------------------------------------------------------------------
/openssh-server.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | openssh-server:
5 | image: lscr.io/linuxserver/openssh-server:latest
6 | container_name: openssh-server
7 | hostname: openssh-server #optional
8 | environment:
9 | - PUID=1000
10 | - PGID=1000
11 | - TZ=Europe/London
12 | - PUBLIC_KEY=yourpublickey #optional
13 | - PUBLIC_KEY_FILE=/path/to/file #optional
14 | - PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys #optional
15 | - PUBLIC_KEY_URL=https://github.com/username.keys #optional
16 | - SUDO_ACCESS=false #optional
17 | - PASSWORD_ACCESS=false #optional
18 | - USER_PASSWORD=password #optional
19 | - USER_PASSWORD_FILE=/path/to/file #optional
20 | - USER_NAME=linuxserver.io #optional
21 | volumes:
22 | - /path/to/appdata/config:/config
23 | ports:
24 | - 2222:2222
25 | restart: unless-stopped
--------------------------------------------------------------------------------
/openvpn-server.md:
--------------------------------------------------------------------------------
1 | git clone https://github.com/kylemanna/docker-openvpn.git
2 | cd docker-openvpn && docker build -t open-vpn-server .
3 | mkdir vpn-data && touch vpn-data/vars
4 | docker run -v $PWD/vpn-data:/etc/openvpn --rm open-vpn-server ovpn_genconfig -u udp://IP_ADDRESS:1194
5 | docker run -v $PWD/vpn-data:/etc/openvpn --rm -it open-vpn-server ovpn_initpki
6 | docker run -v $PWD/vpn-data:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN open-vpn-server
7 | docker run -v $PWD/vpn-data:/etc/openvpn --rm -it open-vpn-server easyrsa build-client-full user nopass
8 | docker run -v $PWD/vpn-data:/etc/openvpn --rm open-vpn-server ovpn_getclient user > user.ovpn
--------------------------------------------------------------------------------
/pihole.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 |
3 | # More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
4 | services:
5 | pihole:
6 | container_name: pihole
7 | image: pihole/pihole:latest
8 | # For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
9 | ports:
10 | - "53:53/tcp"
11 | - "53:53/udp"
12 | - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
13 | - "80:80/tcp"
14 | environment:
15 | TZ: 'America/Chicago'
16 | # WEBPASSWORD: 'set a secure password here or it will be random'
17 | # Volumes store your data between container upgrades
18 | volumes:
19 | - './etc-pihole:/etc/pihole'
20 | - './etc-dnsmasq.d:/etc/dnsmasq.d'
21 | # https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
22 | cap_add:
23 | - NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
24 | restart: unless-stopped
--------------------------------------------------------------------------------
/plex.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | plex:
5 | image: lscr.io/linuxserver/plex:latest
6 | container_name: plex
7 | network_mode: host
8 | environment:
9 | - PUID=1000
10 | - PGID=1000
11 | - VERSION=docker
12 | - PLEX_CLAIM= #optional
13 | volumes:
14 | - /path/to/library:/config
15 | - /path/to/tvseries:/tv
16 | - /path/to/movies:/movies
17 | restart: unless-stopped
--------------------------------------------------------------------------------
/portainer.yml:
--------------------------------------------------------------------------------
1 | version: '3.9'
2 |
3 | services:
4 | portainer:
5 | image: portainer/portainer-ce:latest
6 | container_name: portainer
7 | restart: unless-stopped
8 | security_opt:
9 | - no-new-privileges:true
10 | volumes:
11 | - /etc/localtime:/etc/localtime:ro
12 | - /var/run/docker.sock:/var/run/docker.sock:ro
13 | - ./portainer-data:/data
14 | ports:
15 | - 9000:9000
--------------------------------------------------------------------------------
/rancher.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 |
3 | services:
4 | rancher:
5 | image: rancher/rancher:latest
6 | restart: unless-stopped
7 | ports:
8 | - '443:443'
9 | - '80:80'
10 | volumes:
11 | - rancher-vol:/var/lib/rancher
12 |
13 | volumes:
14 | rancher-vol:
--------------------------------------------------------------------------------
/snippetbox.yml:
--------------------------------------------------------------------------------
1 | version: '3.3'
2 | services:
3 | snippet-box:
4 | container_name: snippetbox
5 | ports:
6 | - '5000:5000'
7 | volumes:
8 | - :/app/data' #map to wherever you want to map
9 | image: pawelmalak/snippet-box
--------------------------------------------------------------------------------
/speedtest.yml:
--------------------------------------------------------------------------------
1 | version: '3.3'
2 | services:
3 | speedtest:
4 | container_name: speedtest
5 | image: henrywhitaker3/speedtest-tracker
6 | ports:
7 | - 8765:80
8 | volumes:
9 | - :/config
10 | environment:
11 | - TZ=Europe/Bucharest
12 | - PGID=1000
13 | - PUID=1000
14 | - OOKLA_EULA_GDPR=true
15 | logging:
16 | driver: "json-file"
17 | options:
18 | max-file: "10"
19 | max-size: "200k"
20 | restart: unless-stopped
21 | network_mode: bridge
--------------------------------------------------------------------------------
/synology-dsm.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 | services:
3 | dsm:
4 | container_name: dsm
5 | image: kroese/virtual-dsm:latest
6 | environment:
7 | CPU_CORES: "1"
8 | DISK_SIZE: "700G"
9 | RAM_SIZE: "512M"
10 | devices:
11 | - /dev/kvm
12 | - /dev/vhost-net
13 | cap_add:
14 | - NET_ADMIN
15 | ports:
16 | - 5000:5000
17 | volumes:
18 | - /home/user/data:/storage
19 | restart: on-failure
20 | stop_grace_period: 1m
--------------------------------------------------------------------------------
/tailscale.yml:
--------------------------------------------------------------------------------
1 | version: "2.4"
2 | services:
3 | tailscale:
4 | privileged: true
5 | hostname: tailscale # This will become the tailscale device name
6 | network_mode: "host"
7 | container_name: tailscale
8 | image: tailscale/tailscale:latest
9 | volumes:
10 | - "/opt/appdata/tailscale/var_lib:/var/lib" # State data will be stored in this directory
11 | - "/dev/net/tun:/dev/net/tun" # Required for tailscale to work
12 | cap_add: # Required for tailscale to work
13 | - net_admin
14 | - sys_module
15 | command: tailscaled
16 | restart: unless-stopped
17 |
18 | ## Info!
19 | # Make sure you are in the same directory as the docker-compose.yml file, and now we want to start up the container(s) by running the following in each directory:
20 | # docker-compose up -d
21 | # If you're in another directory, then you will need to specify the compose file with the -f argument.
22 | # docker-compose -f /opt/appdata/tailscale/docker-compose.yml up -d
23 | # Run the following to have the abilityfor your Host device to be the Exit Node
24 | # docker exec tailscale tailscale up --advertise-exit-node
--------------------------------------------------------------------------------
/tautulli.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | tautulli:
5 | image: lscr.io/linuxserver/tautulli:latest
6 | container_name: tautulli
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | volumes:
12 | - :/config
13 | ports:
14 | - 8181:8181
15 | restart: unless-stopped
16 |
--------------------------------------------------------------------------------
/transmission.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | transmission:
5 | image: lscr.io/linuxserver/transmission:latest
6 | container_name: transmission
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | - TRANSMISSION_WEB_HOME=/combustion-release/ #optional
12 | - USER=username #optional
13 | - PASS=password #optional
14 | - WHITELIST=iplist #optional
15 | - PEERPORT=peerport #optional
16 | - HOST_WHITELIST=dnsname list #optional
17 | volumes:
18 | - /path/to/data:/config
19 | - /path/to/downloads:/downloads
20 | - /path/to/watch/folder:/watch
21 | ports:
22 | - 9091:9091
23 | - 51413:51413
24 | - 51413:51413/udp
25 | restart: unless-stopped
26 |
--------------------------------------------------------------------------------
/trilium-notes.yml:
--------------------------------------------------------------------------------
1 | version: '3.3'
2 | services:
3 | trilium:
4 | ports:
5 | - '8482:8080'
6 | volumes:
7 | - 'trilium-data:/home/node/trilium-data'
8 | image: 'zadam/trilium:latest'
9 | restart: always
10 |
11 | volumes:
12 | trilium-data:
--------------------------------------------------------------------------------
/unifi-controller.yml:
--------------------------------------------------------------------------------
1 | version: "2.1"
2 | services:
3 | unifi-controller:
4 | image: lscr.io/linuxserver/unifi-controller:latest
5 | container_name: ubiquity-unifi
6 | environment:
7 | - PUID=1000
8 | - PGID=1000
9 | - MEM_LIMIT=1024 #optional
10 | - MEM_STARTUP=1024 #optional
11 | volumes:
12 | - :/config
13 | ports:
14 | - 8443:8443
15 | - 3478:3478/udp
16 | - 10001:10001/udp
17 | - 8080:8080
18 | - 1900:1900/udp #optional
19 | - 8843:8843 #optional
20 | - 8880:8880 #optional
21 | - 6789:6789 #optional
22 | - 5514:5514/udp #optional
23 | restart: unless-stopped
--------------------------------------------------------------------------------
/uptime-kuma.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "3.1"
3 |
4 | services:
5 | uptime-kuma:
6 | image: louislam/uptime-kuma:1
7 | container_name: uptime
8 | volumes:
9 | - :/app/data
10 | - /var/run/docker.sock:/var/run/docker.sock
11 | ports:
12 | - 3002:3001
13 | restart: unless-stopped
14 | security_opt:
15 | - no-new-privileges:true
--------------------------------------------------------------------------------
/vscode-server.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | code-server:
5 | image: lscr.io/linuxserver/code-server:latest
6 | container_name: code-server
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | - PASSWORD=password #optional
12 | - HASHED_PASSWORD= #optional
13 | - SUDO_PASSWORD=password #optional
14 | - SUDO_PASSWORD_HASH= #optional
15 | - PROXY_DOMAIN=code-server.my.domain #optional
16 | - DEFAULT_WORKSPACE=/config/workspace #optional
17 | volumes:
18 | - /path/to/appdata/config:/config
19 | ports:
20 | - 8443:8443
21 | restart: unless-stopped
--------------------------------------------------------------------------------
/watchtower.yml:
--------------------------------------------------------------------------------
1 | version: "3.7"
2 | services:
3 | watchtower:
4 | container_name: watchtower
5 | image: containrrr/watchtower
6 | restart: always
7 | command: --schedule "0 0 4 * * *" --cleanup
8 | volumes:
9 | - /var/run/docker.sock:/var/run/docker.sock
10 | environment:
11 | - TZ=${TZ}
--------------------------------------------------------------------------------
/wikijs.yml:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | wikijs:
5 | image: lscr.io/linuxserver/wikijs:latest
6 | container_name: wikijs
7 | environment:
8 | - PUID=1000
9 | - PGID=1000
10 | - TZ=Europe/London
11 | volumes:
12 | - :/config
13 | - :/data
14 | ports:
15 | - 3000:3000
16 | restart: unless-stopped
--------------------------------------------------------------------------------
/wireGuard_easy.yml:
--------------------------------------------------------------------------------
1 | version: "3.8"
2 | services:
3 | wg-easy:
4 | environment:
5 | # ⚠️ Required:
6 | # Change this to your host's public address
7 | - WG_HOST=raspberrypi.local
8 |
9 | # Optional:
10 | # - PASSWORD=foobar123
11 | # - WG_PORT=51820
12 | # - WG_DEFAULT_ADDRESS=10.8.0.x
13 | # - WG_DEFAULT_DNS=1.1.1.1
14 | # - WG_MTU=1420
15 | # - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24
16 | # - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt
17 | # - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt
18 | # - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt
19 | # - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt
20 |
21 | image: weejewel/wg-easy
22 | container_name: wg-easy
23 | volumes:
24 | - .:/etc/wireguard
25 | ports:
26 | - "51820:51820/udp"
27 | - "51821:51821/tcp"
28 | restart: unless-stopped
29 | cap_add:
30 | - NET_ADMIN
31 | - SYS_MODULE
32 | sysctls:
33 | - net.ipv4.ip_forward=1
34 | - net.ipv4.conf.all.src_valid_mark=1
35 |
36 | # - please check https://github.com/WeeJeWel/wg-easy for more information and setup!
--------------------------------------------------------------------------------
/wireshark:
--------------------------------------------------------------------------------
1 | ---
2 | version: "2.1"
3 | services:
4 | wireshark:
5 | image: lscr.io/linuxserver/wireshark:latest
6 | container_name: wireshark
7 | cap_add:
8 | - NET_ADMIN
9 | security_opt:
10 | - seccomp:unconfined #optional
11 | network_mode: host
12 | environment:
13 | - PUID=1000
14 | - PGID=1000
15 | - TZ=Etc/UTC
16 | volumes:
17 | - /path/to/config:/config
18 | ports:
19 | - 3000:3000 #optional
20 | restart: unless-stopped
--------------------------------------------------------------------------------