infrastructure/src/resources/docker-compose.yml

676 lines
21 KiB
YAML
Raw Normal View History

2023-10-06 15:09:02 +00:00
---
version: "3.6"
services:
# Nextcloud is ran inside of Docker, however I spin it up in a different way. Please refer to the README.
# I also host game servers on another box.
# See also: https://git.chse.dev/chase/infrastructure/src/branch/main/src/resources/gs/docker-compose.yml
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
ports:
- 1994:3000
restart: "unless-stopped"
volumes:
- /dockerData/homepage:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro
- /media/easystore:/media/easystore:ro
- /media/easystore2:/media/easystore2:ro
- /media/easystore3:/media/easystore3:ro
vaultwarden:
container_name: "vaultwarden"
image: "vaultwarden/server:latest"
ports:
- "3012:3012/tcp"
- "1337:80/tcp"
restart: "unless-stopped"
volumes:
- "/dockerData/vaultwarden:/data"
bookstack:
image: lscr.io/linuxserver/bookstack
container_name: bookstack
environment:
- APP_URL=https://docs.chse.dev
- DB_HOST=bookstack
- DB_PORT=3306
- DB_USER=bookstack
- DB_PASS=qwerty #! Change this
- DB_DATABASE=bookstack
- APP_DEFAULT_DARK_MODE=true
- AUTH_METHOD=saml2
- AUTH_AUTO_INITIATE=true
- SAML2_NAME=authentik
- SAML2_EMAIL_ATTRIBUTE=email
- SAML2_EXTERNAL_ID_ATTRIBUTE=uid
- SAML2_USER_TO_GROUPS=true
- SAML2_GROUP_ATTRIBUTE=http://schemas.xmlsoap.org/claims/Group
- SAML2_DISPLAY_NAME_ATTRIBUTES=http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname
- SAML2_IDP_ENTITYID=https://auth.chse.dev/api/v3/providers/saml/27/metadata/?download
- SAML2_AUTOLOAD_METADATA=true
volumes:
- /dockerData/bookstack:/config
ports:
- 6875:80
restart: unless-stopped
ghost:
container_name: "ghost"
environment:
- "database__client=mysql"
- "database__connection__host=192.168.86.2"
- "database__connection__user=ghostblog"
- "database__connection__password=password" #! Change This
- "database__connection__database=ghostblog"
- "url=https://blog.chse.dev"
- "mail__from=Chase <ch@chasehall.net>"
- "mail__options__auth__user=ch@chasehall.net"
- "mail__options__auth__pass=password" #! Change This
- "mail__options__host=mail.chse.dev"
- "mail__options__port=587"
- "mail__options__secure=false"
- "mail__options__service=SMTP"
- "mail__transport=SMTP"
- "NODE_ENV=production"
image: "ghost:latest"
ports:
- "2368:2368/tcp"
restart: "unless-stopped"
volumes:
- "/dockerData/ghost:/var/lib/ghost/content"
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=192.168.86.2:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=password #! Change This
restart: always
volumes:
- /dockerData/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "2015:3000"
gitea-act-runner:
image: "vegardit/gitea-act-runner:latest"
container_name: gitea_act_runner
restart: "unless-stopped"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:rw"
- "/dockerData/gitea/act_runner:/data:rw"
environment:
- GITEA_RUNNER_REGISTRATION_TOKEN=asdf #! Change This
- "GITEA_INSTANCE_URL=https://git.chse.dev"
- "GITEA_RUNNER_LABELS=ubuntu-latest:docker://catthehacker/ubuntu:act-22.04"
- "GITEA_RUNNER_MAX_PARALLEL_JOBS=4"
renovate:
image: renovate/renovate
volumes:
- "/dockerData/renovate/config.js:/usr/src/app/config.js"
container_name: renovate
environment:
- GITHUB_COM_TOKEN=asdf #! Change This
restart: "unless-stopped"
freshrss:
container_name: "freshrss"
image: "lscr.io/linuxserver/freshrss:latest"
ports:
- "2004:80"
restart: "unless-stopped"
volumes:
- "/dockerData/freshrss:/config"
privatebin:
container_name: "PrivateBin"
image: "privatebin/nginx-fpm-alpine:latest"
ports:
- "1992:8080/tcp"
read_only: true
restart: "unless-stopped"
volumes:
- "/dockerData/privatebin/conf.php:/srv/cfg/conf.php:ro"
- "/dockerData/privatebin/privatebin-data:/srv/data"
gokapi:
container_name: "gokapi"
image: "f0rc3/gokapi:latest"
ports:
- "53842:53842"
restart: "unless-stopped"
volumes:
- "/dockerData/gokapi/data:/app/data"
- "/dockerData/gokapi/config:/app/config"
filebrowser:
container_name: filebrowser
ports:
- "2010:80"
volumes:
- "/media/easystore:/srv"
- "/dockerData/filebrowser/filebrowser.db:/database/filebrowser.db"
environment:
- "PUID=1000"
- "PGID=1000"
image: filebrowser/filebrowser:s6
restart: unless-stopped
teamspeak:
container_name: "teamspeak"
environment:
- "TS3SERVER_LICENSE=accept"
image: "teamspeak:latest"
ports:
- "10011:10011/tcp"
- "30033:30033/tcp"
- "9987:9987/udp"
restart: "unless-stopped"
volumes:
- "/dockerData/teamspeak3server:/var/ts3server"
portainer:
container_name: "portainer"
image: "portainer/portainer-ce:latest"
ports:
- "8000:8000/tcp"
- "9000:9000/tcp"
restart: "always"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/dockerData/portainer:/data"
scrutiny:
container_name: scrutiny
image: ghcr.io/analogj/scrutiny:master-omnibus
cap_add:
- SYS_RAWIO
- SYS_ADMIN
ports:
- "1995:8080"
restart: "unless-stopped"
volumes:
- /run/udev:/run/udev:ro
- /dockerData/scrutiny/config:/opt/scrutiny/config
- /dockerData/scrutiny/influxdb:/opt/scrutiny/influxdb
devices:
- "/dev/sda"
- "/dev/sdb"
- "/dev/sdc"
- "/dev/sdd"
healthchecks:
image: lscr.io/linuxserver/healthchecks:latest
container_name: healthchecks
environment:
- PUID=1000
- PGID=1000
- SITE_ROOT=https://hc.chse.dev
- SITE_NAME=HealthChecks
- DEFAULT_FROM_EMAIL=ch@chasehall.net
- EMAIL_HOST=mail.chse.dev
- EMAIL_PORT=465
- EMAIL_HOST_USER=ch@chasehall.net
- EMAIL_HOST_PASSWORD=password #! Change This
- EMAIL_USE_TLS=True
- SUPERUSER_EMAIL=ch@chasehall.net
- SUPERUSER_PASSWORD=password #! Change This
- DEBUG=False
volumes:
- /dockerData/healthchecks:/config
ports:
- 2008:8000
restart: unless-stopped
ntfy:
image: binwiederhier/ntfy
container_name: ntfy
command:
- serve --cache-file /var/cache/ntfy/cache.db
environment:
- TZ=UTC
user: 1000:1000
volumes:
- /dockerData/ntfy:/var/cache/ntfy
- /dockerData/ntfy/server.yml:/etc/ntfy/server.yml
ports:
- 2009:80
restart: unless-stopped
speedtest-tracker:
container_name: speedtest-tracker
ports:
- "2007:80"
volumes:
- "/dockerData/speedtest-tracker:/config"
environment:
- "PUID=1000"
- "PGID=1000"
2024-03-02 13:40:27 +00:00
image: lscr.io/linuxserver/speedtest-tracker:latest
2023-10-06 15:09:02 +00:00
restart: unless-stopped
phpmyadmin:
container_name: phpmyadmin
image: phpmyadmin:latest
ports:
- "1997:80"
restart: unless-stopped
volumes:
- "/dockerData/phpmyadmin/config.inc.php:/etc/phpmyadmin/config.user.inc.php"
wg-easy:
container_name: wg-easy
image: weejewel/wg-easy
environment:
- WG_HOST=real.chse.dev
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
restart: unless-stopped
volumes:
- /dockerData/wg-easy:/etc/wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
uptime-kuma-ext:
container_name: uptime-kuma-ext
restart: unless-stopped
ports:
- "2013:3001"
volumes:
- "/dockerData/uptime-kuma-ext:/app/data"
image: "louislam/uptime-kuma:1"
uptime-kuma-int:
container_name: uptime-kuma-int
restart: unless-stopped
ports:
- "2014:3001"
volumes:
- "/dockerData/uptime-kuma-int:/app/data"
image: "louislam/uptime-kuma:1"
sonarr:
container_name: "sonarr"
environment:
- "PUID=1000"
- "PGID=1005"
image: "lscr.io/linuxserver/sonarr:latest"
ports:
- "8989:8989/tcp"
restart: "unless-stopped"
volumes:
- "/dockerData/sonarr:/config"
- "/media/easystore/TV:/tv"
- "/media/easystore2/Torrents:/downloads"
- "/media/easystore2/TV:/tv2"
- "/media/easystore3/TV:/tv3"
radarr:
container_name: "radarr"
environment:
- "PUID=1000"
- "PGID=1005"
image: "lscr.io/linuxserver/radarr:latest"
ports:
- "7878:7878/tcp"
restart: "unless-stopped"
volumes:
- "/dockerData/radarr:/config"
- "/media/easystore/Movies:/movies"
- "/media/easystore2/Torrents:/downloads"
- "/media/easystore2/Movies:/movies2"
- "/media/easystore3/Movies:/movies3"
readarr:
container_name: "readarr"
environment:
- "PUID=1000"
- "PGID=1005"
image: "lscr.io/linuxserver/readarr:develop"
ports:
- "8787:8787/tcp"
restart: "unless-stopped"
volumes:
- "/media/easystore/Books:/books"
- "/media/easystore2/Torrents:/downloads"
- "/dockerData/readarr:/config"
bazarr:
container_name: "bazarr"
environment:
- "PUID=1000"
- "PGID=1005"
image: "lscr.io/linuxserver/bazarr:latest"
ports:
- "6767:6767/tcp"
restart: "unless-stopped"
volumes:
- "/media/easystore/TV:/tv"
- "/dockerData/bazarr:/config"
- "/media/easystore/Movies:/movies"
- "/media/easystore2/TV:/tv2"
- "/media/easystore2/Movies:/movies2"
- "/media/easystore3/TV:/tv3"
- "/media/easystore3/Movies:/movies3"
prowlarr:
container_name: "prowlarr"
image: "lscr.io/linuxserver/prowlarr:develop"
ports:
- "9696:9696"
restart: "unless-stopped"
volumes:
- "/dockerData/prowlarr:/config"
qbittorrent-vpn:
container_name: "qbittorrent-vpn"
environment:
- "VPN_ENABLED=yes"
- "VPN_TYPE=wireguard"
- "LAN_NETWORK=192.168.0.0/24"
image: "dyonr/qbittorrentvpn:latest"
ports:
- "8080:8080/tcp"
restart: "unless-stopped"
volumes:
- "/media/easystore2/Torrents:/downloads"
- "/dockerData/qbittorrent:/config"
cap_add:
- NET_ADMIN
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv6.conf.all.disable_ipv6=0
tautulli:
container_name: "tautulli"
image: "lscr.io/linuxserver/tautulli:latest"
ports:
- "8181:8181/tcp"
2023-11-14 02:07:27 +00:00
environment:
- "PLEXAPI_CONFIG_PATH=/config/JBOPS/config_chase.ini"
2023-10-06 15:09:02 +00:00
restart: "unless-stopped"
volumes:
- "/dockerData/tautulli:/config"
overseerr:
container_name: "overseerr"
image: "lscr.io/linuxserver/overseerr:latest"
ports:
- "5055:5055"
restart: "unless-stopped"
volumes:
- "/dockerData/overseerr:/config"
requestrr:
container_name: "requestrr"
image: "lscr.io/linuxserver/requestrr:latest"
ports:
- "4545:4545/tcp"
restart: "unless-stopped"
volumes:
- "/dockerData/requestrr:/config"
openbooks:
container_name: OpenBooks
image: evanbuss/openbooks:latest
ports:
- "1996:80"
restart: unless-stopped
volumes:
- "/dockerData/openbooks:/books"
command: --persist --name user --useragent HexChat 2.9.1
wizarr:
container_name: wizarr
image: ghcr.io/wizarrrr/wizarr
ports:
- 5690:5690
volumes:
- /dockerData/wizarr:/data/database
environment:
- APP_URL=https://joinplex.chse.dev
- DISABLE_BUILTIN_AUTH=false
- TZ=America/Chicago
restart: unless-stopped
umami:
container_name: umami
ports:
- "2011:3000"
environment:
- DATABASE_TYPE=mysql
- DATABASE_URL=mysql://umami:PASSWORDHERE@192.168.86.2:3306/umami #! Change This
- HASH_SALT=<random-chars> #! Change This
image: ghcr.io/umami-software/umami:mysql-latest
restart: unless-stopped
cyberchef:
image: mpepping/cyberchef:latest
container_name: cyberchef
ports:
- 2005:8000
restart: unless-stopped
ittools:
container_name: it-tools
ports:
- "2012:80"
image: corentinth/it-tools:latest
restart: unless-stopped
stirling-pdf:
image: 'frooodle/s-pdf:latest'
container_name: stirling-pdf
volumes:
- '/dockerData/stirlingpdf/trainingdata:/usr/share/tesseract-ocr/4.00/tessdata'
ports:
- '2016:8080'
restart: unless-stopped
image-uploader:
image: 'git.chse.dev/chase/image-uploader:latest'
volumes:
- '/dockerData/image-uploader:/app/src/imgs'
ports:
- '2017:3000'
environment:
- 'REDIR_URL=https://chse.dev'
- UPLOAD_PW=password #! Change This
container_name: image-uploader
restart: "unless-stopped"
shields.io:
container_name: "shields.io"
environment:
- "GH_TOKEN=FIXME" #! Change this
image: "shieldsio/shields:next"
ports:
- "2001:80/tcp"
restart: "unless-stopped"
plexautolanguages:
image: remirigal/plex-auto-languages:latest
container_name: PlexAutoLanguages
environment:
- TZ=America/Chicago
volumes:
- /dockerData/plexautolanguages:/config
restart: unless-stopped
watchtower:
container_name: "watchtower"
image: "containrrr/watchtower:latest"
restart: "unless-stopped"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
mysql:
container_name: mysql
ports:
- "3306:3306"
volumes:
- "/dockerData/mysql:/var/lib/mysql"
image: mysql
restart: unless-stopped
guacamole:
image: flcontainers/guacamole
ports:
- '2020:8080'
volumes:
- '/dockerData/guacamole:/config'
container_name: guacamole
restart: unless-stopped
plex-meta-manager:
image: 'meisnate12/plex-meta-manager:latest'
volumes:
- '/dockerData/plexmetamanager/config:/config'
environment:
- 'TZ=America/Chicago'
container_name: plex-meta-manager
restart: unless-stopped
pantherswimdive.com:
image: 'webdevops/php-nginx:8.2'
volumes:
- '/dockerData/pantherswimdive.com:/app'
ports:
- '2024:80'
restart: unless-stopped
container_name: pantherswimdive.com
missionpark.net:
image: 'webdevops/php-nginx:8.2'
volumes:
- '/dockerData/missionpark.net:/app'
ports:
- '2025:80'
restart: unless-stopped
container_name: missionpark.net
safe-bars-new-zealand.com:
image: 'webdevops/php-nginx:8.2'
volumes:
- '/dockerData/safe-bars-new-zealand.com:/app'
ports:
- '2026:80'
restart: unless-stopped
container_name: safe-bars-new-zealand.com
chse.dev:
image: 'webdevops/php-apache:8.2'
volumes:
- '/dockerData/chse.dev:/app'
environment:
- 'WEB_DOCUMENT_ROOT=/app/src'
ports:
- '2027:80'
restart: unless-stopped
container_name: chse.dev
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
volumes:
- '/dockerData/nginxpm/letsencrypt:/etc/letsencrypt'
- '/dockerData/nginxpm/data:/data'
ports:
- '443:443'
- '81:81'
- '80:80'
restart: unless-stopped
container_name: nginx-proxy-manager
authentik_postgresql:
image: docker.io/library/postgres:12-alpine
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
start_period: 20s
interval: 30s
retries: 5
timeout: 5s
volumes:
- /dockerData/authentik/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: #! Change This
POSTGRES_USER: ${PG_USER:-authentik}
POSTGRES_DB: ${PG_DB:-authentik}
authentik_redis:
image: docker.io/library/redis:alpine
command: --save 60 1 --loglevel warning
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
start_period: 20s
interval: 30s
retries: 5
timeout: 3s
volumes:
- /dockerData/authentik/redis:/data
authentik_server:
2023-10-28 21:16:42 +00:00
image: ghcr.io/goauthentik/server:latest
2023-10-06 15:09:02 +00:00
restart: unless-stopped
command: server
environment:
AUTHENTIK_REDIS__HOST: authentik_redis
AUTHENTIK_POSTGRESQL__HOST: authentik_postgresql
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: #! Change This
AUTHENTIK_EMAIL__HOST: mail.chse.dev
AUTHENTIK_EMAIL__PORT: 465
AUTHENTIK_EMAIL__USERNAME: ch@chasehall.net
AUTHENTIK_EMAIL__PASSWORD: #! Change This
AUTHENTIK_EMAIL__USE_TLS: true
AUTHENTIK_EMAIL__USE_SSL: false
AUTHENTIK_EMAIL__TIMEOUT: 10
AUTHENTIK_EMAIL__FROM: ch@chasehall.net
volumes:
- /dockerData/authentik/media:/media
- /dockerData/authentik/custom-templates:/templates
ports:
- "2028:9000"
depends_on:
- authentik_postgresql
- authentik_redis
authentik_worker:
2023-10-28 21:16:42 +00:00
image: ghcr.io/goauthentik/server:latest
2023-10-06 15:09:02 +00:00
restart: unless-stopped
command: worker
environment:
AUTHENTIK_REDIS__HOST: authentik_redis
AUTHENTIK_POSTGRESQL__HOST: authentik_postgresql
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: #! Change This
AUTHENTIK_EMAIL__HOST: mail.chse.dev
AUTHENTIK_EMAIL__PORT: 465
AUTHENTIK_EMAIL__USERNAME: ch@chasehall.net
AUTHENTIK_EMAIL__PASSWORD: #! Change This
AUTHENTIK_EMAIL__USE_TLS: true
AUTHENTIK_EMAIL__USE_SSL: false
AUTHENTIK_EMAIL__TIMEOUT: 10
AUTHENTIK_EMAIL__FROM: ch@chasehall.net
user: root
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dockerData/authentik/media:/media
- /dockerData/authentik/certs:/certs
- /dockerData/authentik/custom-templates:/templates
depends_on:
- authentik_postgresql
- authentik_redis
2023-11-29 05:06:08 +00:00
cobalt-api:
image: ghcr.io/wukko/cobalt:latest
restart: unless-stopped
container_name: cobalt-api
init: true
ports:
- 2033:2033/tcp
environment:
- apiPort=2033
- apiURL=https://cobalt-api.chse.dev/
- apiName=us-central
cobalt-web:
image: ghcr.io/wukko/cobalt:latest
restart: unless-stopped
container_name: cobalt-web
init: true
ports:
- 2034:2034/tcp
environment:
- webPort=2034
- webURL=https://cobalt.chse.dev/
- apiURL=https://cobalt-api.chse.dev/
2023-12-28 16:08:06 +00:00
monkeytype:
image: themythologist/monkeytype:frontend-latest
restart: unless-stopped
container_name: monkeytype
ports:
- 2035:5000/tcp
2024-01-10 05:38:40 +00:00
phpbb:
image: docker.io/bitnami/phpbb
ports:
- '2036:8080'
environment:
- PHPBB_DATABASE_HOST=192.168.86.2
- PHPBB_DATABASE_PORT_NUMBER=3306
- PHPBB_DATABASE_USER=phpbb
- PHPBB_DATABASE_NAME=phpbb
- PHPBB_DATABASE_PASSWORD=password #! Change This
volumes:
- '/dockerData/phpbb:/bitnami/phpbb'
2024-01-14 12:36:24 +00:00
keiradawn.net:
image: 'webdevops/php-nginx:8.2'
volumes:
- '/dockerData/keiradawn.net:/app'
ports:
- '2037:80'
restart: unless-stopped
container_name: keiradawn.net