Skip to content

Instantly share code, notes, and snippets.

@gschanuel
Created July 10, 2023 23:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gschanuel/234f1d1c529ced34519a802e151fe94a to your computer and use it in GitHub Desktop.
Save gschanuel/234f1d1c529ced34519a802e151fe94a to your computer and use it in GitHub Desktop.
version: '3'
name: frontend
services:
nginx-proxy:
image: jwilder/nginx-proxy
restart: unless-stopped
container_name: nginx-proxy
ports:
- "80:80"
- "443:443"
environment:
- CERT_NAME = gschanuel.com
volumes:
- html:/usr/share/nginx/html
- dhparam:/etc/nginx/dhparam
- vhost:/etc/nginx/vhost.d
- /etc/letsencrypt/live/gschanuel.com/fullchain.pem:/etc/nginx/certs/gschanuel.com.crt:ro
- /etc/letsencrypt/live/gschanuel.com/privkey.pem:/etc/nginx/certs/gschanuel.com.key:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
- frontend
- mediaserver
- services
google-dns:
image: ghcr.io/aaomidi/certbot-dns-google-domains:latest
container_name: google-dns
volumes:
- /var/lib/letsencrypt:/var/lib/letsencrypt
- /etc/letsencrypt:/etc/letsencrypt
cap_drop:
- ALL
command: >-
certbot certonly --authenticator 'dns-google-domains' --dns-google-domains-credentials '/var/lib/letsencrypt/dns_google_domains_credentials.ini' --server 'https://acme-v02.api.letsencrypt.org/directory' --non-interactive --dns-google-domains-zone 'gschanuel.com' -d '*.gschanuel.com'
networks:
- frontend
volumes:
html:
vhost:
dhparam:
networks:
frontend:
driver: bridge
name: frontend
mediaserver:
name: mediaserver
services:
name: services
backend:
driver: bridge
name: backend
version: "3"
name: gitea
services:
server:
image: gitea/gitea
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=postgresql:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea_user
- GITEA__database__PASSWD=!#a3485f20431f7595eb67eba90bda1ac5#!
- VIRTUAL_HOST=gitea.gschanuel.com
- VIRTUAL_PORT=3000
- DISABLE_REGISTRATION=true
restart: unless-stopped
networks:
- services
volumes:
- /opt/docker-data/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
services:
external: true
version: '3'
services:
common:
user: 1000:1000
networks:
- mediaserver
volumes:
Movies:
driver: local
driver_opts:
type: none
device: /media/Movies/
o: bind,rw
Series:
driver: local
driver_opts:
type: none
device: /media/Series/
o: bind,rw
downloading:
driver: local
driver_opts:
type: none
device: /media/.downloading/
o: bind,rw
Completed:
driver: local
driver_opts:
type: none
device: /media/Completed/
o: bind,rw
networks:
mediaserver:
name: mediaserver
version: '3'
name: mediaserver
services:
jellyfin:
extends:
file: mediaserver-common.yaml
service: common
container_name: jellyfin
image: tccr.io/truecharts/jellyfin
restart: unless-stopped
environment:
- VIRTUAL_HOST=jellyfin.gschanuel.com
- VIRTUAL_PORT=8096
group_add:
- "989"
devices:
- /dev/dri:/dev/dri
volumes:
- /opt/docker-data/jellyfin-config/:/config
- Movies:/storage/Movies:rw
- Series:/storage/Series:rw
- Completed:/storage/Completed:rw
- cache:/cache
bazarr:
extends:
file: mediaserver-common.yaml
service: common
container_name: bazarr
image: tccr.io/truecharts/bazarr
restart: unless-stopped
environment:
- VIRTUAL_HOST=bazarr.gschanuel.com
- VIRTUAL_PORT=6767
volumes:
- /opt/docker-data/bazarr-config/:/config
- Series:/storage/Series:rw
- Movies:/storage/Movies:rw
deluge:
container_name: deluge
image: tccr.io/truecharts/deluge
restart: unless-stopped
environment:
- VIRTUAL_HOST=deluge.gschanuel.com
- VIRTUAL_PORT=8112
- PUID=1000
- PGID=1000
networks:
- mediaserver
volumes:
- /opt/docker-data/deluge-config/:/config
- Movies:/storage/Movies:rw
- Series:/storage/Series:rw
- Completed:/storage/Completed:rw
- downloading:/storage/.downloading:rw
prowlarr:
extends:
file: mediaserver-common.yaml
service: common
container_name: prowlarr
image: tccr.io/truecharts/prowlarr
restart: unless-stopped
environment:
- VIRTUAL_HOST=prowlarr.gschanuel.com
- VIRTUAL_PORT=9696
volumes:
- /opt/docker-data/prowlarr-config/:/config
radarr:
extends:
file: mediaserver-common.yaml
service: common
container_name: radarr
image: tccr.io/truecharts/radarr
restart: unless-stopped
environment:
- VIRTUAL_HOST=radarr.gschanuel.com
- VIRTUAL_PORT=7878
volumes:
- /opt/docker-data/radarr-config/:/config
- Movies:/storage/Movies:rw
- Completed:/storage/Completed:rw
sonarr:
extends:
file: mediaserver-common.yaml
service: common
container_name: sonarr
image: tccr.io/truecharts/sonarr
restart: unless-stopped
environment:
- VIRTUAL_HOST=sonarr.gschanuel.com
- VIRTUAL_PORT=8989
volumes:
- /opt/docker-data/sonarr-config/:/config
- Series:/storage/Series:rw
- Completed:/storage/Completed:rw
volumes:
cache:
Movies:
driver: local
driver_opts:
type: none
device: /media/Movies/
o: bind,rw
Series:
driver: local
driver_opts:
type: none
device: /media/Series/
o: bind,rw
downloading:
driver: local
driver_opts:
type: none
device: /media/.downloading/
o: bind,rw
Completed:
driver: local
driver_opts:
type: none
device: /media/Completed/
o: bind,rw
networks:
mediaserver:
name: mediaserver
external: true
version: '3'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: unless-stopped
security_opt:
- no-new-privileges:true
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /opt/docker-data/portainer:/data
ports:
- 9000:9000
version: '3'
name: postgres
services:
postgresql:
image: postgres:13
container_name: postgresql
restart: unless-stopped
environment:
- POSTGRES_PASSWORD="!#g4br13l.sch4nu3l#!"
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- postgresql-data:/var/lib/postgresql/data
networks:
- services
networks:
services:
name: services
external: true
volumes:
postgresql-data:
driver: local
driver_opts:
type: local
device: /opt/docker-data/postgresql-data
o: bind,rw
version: '3'
name: services
services:
vaultwarden:
image: tccr.io/truecharts/vaultwarden
container_name: vaultwarden
restart: unless-stopped
environment:
- VIRTUAL_HOST=vaultwarden.gschanuel.com
- VIRTUL_PORT=3012
- I_REALLY_WANT_VOLATILE_STORAGE=true
volumes:
- /opt/docker-data/vaultwarden-config:/data
networks:
- services
networks:
services:
name: services
external: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment