This repository has been archived on 2025-11-01. You can view files and clone it, but cannot push or open issues or pull requests.
excellon-config/docker-compose.yml
2024-12-02 19:10:39 -06:00

213 lines
7.7 KiB
YAML

version: '3'
services:
traefik:
image: traefik:v3.2
container_name: traefik
command:
# - "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:80"
- "--entryPoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
#- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.myresolver.acme.email=barton@akeley.tech"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "/data/docker/volumes/letsencrypt:/letsencrypt:rw"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.api.rule=Host(`traefik.akeley.tech`)'
- 'traefik.http.routers.api.entryPoints=https'
- 'traefik.http.routers.api.tls=true'
- 'traefik.http.routers.api.service=api@internal'
- 'traefik.http.routers.api.middlewares=authelia@docker'
pktriot:
image: packetriot/pktriot:latest
container_name: pktriot
restart: unless-stopped
volumes:
- /data/docker/volumes/pktriot:/data:rw
mariadb:
image: mariadb:10.6
container_name: mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- /data/docker/volumes/mariadb:/var/lib/mysql:rw
environment:
- MYSQL_ROOT_PASSWORD=fji9_+jK12dEW
- MYSQL_PASSWORD=Z67dJ0rKBSU74ZwvqIsd
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
nextcloud:
image: nextcloud
container_name: nextcloud
restart: always
ports:
- 8088:80
links:
- mariadb
volumes:
- /data/docker/volumes/nextcloud:/var/www/html
- /data:/data:rw
- /docs/documents:/documents:rw
environment:
- MYSQL_PASSWORD=Z67dJ0rKBSU74ZwvqIsd
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=mariadb
labels:
- traefik.enable=true
- traefik.http.routers.nextcloud.entrypoints=web,websecure
- traefik.http.routers.nextcloud.rule=Host(`nextcloud.akeley.tech`)
- traefik.http.routers.nextcloud.tls=true
- traefik.http.routers.nextcloud.tls.certresolver=myresolver
plex:
image: plexinc/pms-docker
container_name: plex
init: true
hostname: excellon
restart: always
ports:
- 32400:32400
- 8324:8324
- 32469:32469
- 1900:1900
- 32410:32410
- 32412:32412
- 32413:32413
- 32414:32414
environment:
TZ: "America/Chicago"
PLEX_CLAIM: "claim-7-N1LVT5AMco6ayhy4Tm"
ADVERTISE_IP: "http://192.168.1.3:32400/"
volumes:
- /data/docker/volumes/plex/config:/config
- /data/docker/volumes/plex/transcode:/transcode
- /data:/data:rw
forgejo:
image: codeberg.org/forgejo/forgejo:9
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
volumes:
- /data/docker/volumes/forgejo:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- '3000:3000'
- '222:22'
depends_on:
- forgejodb
forgejodb:
image: postgres:14
container_name: forgejodb
restart: always
environment:
- POSTGRES_USER=forgejo
- POSTGRES_PASSWORD=forgejo
- POSTGRES_DB=forgejo
volumes:
- /data/docker/volumes/forgejodb:/var/lib/postgresql/data
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
ports:
- "8081:8080"
depends_on:
minifluxdb:
condition: service_healthy
environment:
- DATABASE_URL=postgres://miniflux:99us$%kas0@minifluxdb/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=982#@2gGGHjf
minifluxdb:
image: postgres:17-alpine
container_name: minifluxdb
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=99us$%kas0
- POSTGRES_DB=miniflux
volumes:
- /data/docker/volumes/minifluxdb:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
# whoami:
# image: "traefik/whoami"
# container_name: whoami
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.whoami.rule=Host(`whoami.akeley.tech`)"
# - "traefik.http.routers.whoami.entrypoints=web,websecure"
# - "traefik.http.routers.whoami.tls.certresolver=myresolver"
# authelia:
# container_name: 'authelia'
# image: 'authelia/authelia'
# restart: 'unless-stopped'
# expose:
# - 9091
# volumes:
# - './authelia/config:/config'
# environment:
# TZ: "America/Chicago"
# labels:
# - 'traefik.enable=true'
# - 'traefik.http.routers.authelia.rule=Host(`auth.akeley.tech`)'
# - 'traefik.http.routers.authelia.entryPoints=https'
# - 'traefik.http.routers.authelia.tls=true'
# - 'traefik.http.middlewares.authelia.forwardAuth.address=http://authelia:9091/api/authz/forward-auth'
# ## The following commented line is for configuring the Authelia URL in the proxy. We strongly suggest this is
# ## configured in the Session Cookies section of the Authelia configuration.
# # - 'traefik.http.middlewares.authelia.forwardAuth.address=http://authelia:9091/api/authz/forward-auth?authelia_url=https%3A%2F%2Fauth.example.com%2F'
# - 'traefik.http.middlewares.authelia.forwardAuth.trustForwardHeader=true'
# - 'traefik.http.middlewares.authelia.forwardAuth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Email,Remote-Name'
# nextcloud:
# image: nextcloud/all-in-one:latest
# container_name: nextcloud-aio-mastercontainer
# init: true
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
# - /data:/data:rw
# - /docs/documents:/documents:rw
# ports:
# - 8088:8080
# environment:
# - APACHE_PORT=11000
# - APACHE_IP_BINDING=127.0.0.1
# - NEXTCLOUD_DATADIR=/data/nextcloud
# - AIO_DISABLE_BACKUP_SECTION=true
# - SKIP_DOMAIN_VALIDATION=true
# labels:
# - traefik.enable=true
# - traefik.http.routers.nextcloud.entrypoints=web,websecure
# - traefik.http.routers.nextcloud.rule=Host(`nextcloud.akeley.tech`)
# - traefik.http.routers.nextcloud.tls=true
# - traefik.http.routers.nextcloud.tls.certresolver=myresolver