2024-12-02 18:52:31 -06:00
|
|
|
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'
|
2024-12-02 19:52:49 -06:00
|
|
|
# - 'traefik.http.routers.api.middlewares=authelia@docker'
|
2024-12-02 18:52:31 -06:00
|
|
|
|
|
|
|
|
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'
|
2024-12-02 19:10:39 -06:00
|
|
|
|
|
|
|
|
miniflux:
|
|
|
|
|
image: miniflux/miniflux:latest
|
|
|
|
|
container_name: miniflux
|
|
|
|
|
ports:
|
|
|
|
|
- "8081:8080"
|
|
|
|
|
depends_on:
|
2024-12-08 17:37:09 -06:00
|
|
|
pg_db:
|
2024-12-02 19:10:39 -06:00
|
|
|
condition: service_healthy
|
|
|
|
|
environment:
|
2024-12-08 17:37:09 -06:00
|
|
|
- DATABASE_URL=postgres://miniflux:99uskas0_l@pg_db/miniflux?sslmode=disable
|
2024-12-02 19:10:39 -06:00
|
|
|
- RUN_MIGRATIONS=1
|
|
|
|
|
- CREATE_ADMIN=1
|
|
|
|
|
- ADMIN_USERNAME=admin
|
|
|
|
|
- ADMIN_PASSWORD=982#@2gGGHjf
|
|
|
|
|
|
2024-12-08 17:37:09 -06:00
|
|
|
pg_db:
|
2024-12-02 19:10:39 -06:00
|
|
|
image: postgres:17-alpine
|
2024-12-08 17:37:09 -06:00
|
|
|
container_name: pg_db
|
2024-12-02 19:10:39 -06:00
|
|
|
environment:
|
|
|
|
|
- POSTGRES_USER=miniflux
|
2024-12-02 19:52:49 -06:00
|
|
|
- POSTGRES_PASSWORD=99uskas0_l
|
2024-12-02 19:10:39 -06:00
|
|
|
- POSTGRES_DB=miniflux
|
|
|
|
|
volumes:
|
2024-12-08 17:37:09 -06:00
|
|
|
- /data/docker/volumes/pg_db:/var/lib/postgresql/data
|
2024-12-02 19:10:39 -06:00
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "pg_isready", "-U", "miniflux"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
start_period: 30s
|
2024-12-02 18:52:31 -06:00
|
|
|
|
|
|
|
|
# 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'
|
|
|
|
|
|
|
|
|
|
|