stacks/homelab/docker-compose.yaml

430 lines
9.5 KiB
YAML
Raw Normal View History

2021-12-17 09:38:07 -07:00
version: "3.8"
services:
coredns:
image: coredns/coredns
networks:
- hostnet
configs:
- source: Corefile
target: /Corefile
2022-11-10 21:22:15 -07:00
2022-09-04 08:37:29 -06:00
caddy:
image: caddy:2-alpine
2021-12-17 09:38:07 -07:00
ports:
- target: 443
published: 443
mode: host
- target: 80
published: 80
mode: host
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv
target: /srv
2021-12-17 09:38:07 -07:00
read_only: true
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/caddy
2022-09-04 08:37:29 -06:00
target: /data/caddy
configs:
- source: Caddyfile
target: /etc/caddy/Caddyfile
2022-11-04 15:47:21 -06:00
- source: index.html
target: /www/index.html
- source: index.mjs
target: /www/index.mjs
2023-01-28 16:34:47 -07:00
- source: deergrove.png
target: /www/deergrove.png
2022-11-04 15:47:21 -06:00
- source: index.css
target: /www/index.css
2023-02-15 16:39:09 -07:00
- source: portal.json
target: /www/portal.json
2022-12-16 15:02:50 -07:00
- source: browser.html
target: /browser.html
2022-09-04 08:37:29 -06:00
extra_hosts:
- host.docker.internal:host-gateway
2023-02-08 11:43:18 -07:00
- host.lan:192.168.86.2
2023-02-06 12:14:14 -07:00
authelia:
image: authelia/authelia
2023-02-05 11:57:25 -07:00
environment:
2023-02-06 12:14:14 -07:00
AUTHELIA_JWT_SECRET_FILE: /run/secrets/jwt.secret
AUTHELIA_SESSION_SECRET_FILE: /run/secrets/session.secret
AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE: /run/secrets/storage.secret
secrets:
- jwt.secret
- session.secret
- storage.secret
- users.yaml
2023-02-06 16:30:28 -07:00
- authelia.oidc.yaml
2023-02-06 12:14:14 -07:00
configs:
- source: authelia.yaml
2023-02-06 16:30:28 -07:00
target: /authelia.yaml
command:
- authelia
- --config=/authelia.yaml
- --config=/run/secrets/authelia.oidc.yaml
2023-02-05 11:57:25 -07:00
volumes:
- type: bind
2023-02-06 12:14:14 -07:00
source: /srv/sys/authelia
target: /srv/sys/authelia
2023-02-05 11:57:25 -07:00
2023-02-15 16:39:09 -07:00
# Authelia wants this
2023-02-06 13:56:11 -07:00
redis:
image: redis:alpine
command:
- redis-server
- --save
- "60"
- "1"
volumes:
- type: bind
source: /srv/sys/redis
target: /data
2021-12-17 09:38:07 -07:00
plex:
image: ghcr.io/linuxserver/plex:1.29.2
2021-12-17 09:38:07 -07:00
networks:
- hostnet
environment:
TZ: US/Mountain
2022-08-02 20:57:44 -06:00
VERSION: public
2021-12-17 09:38:07 -07:00
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/plex
2021-12-17 09:38:07 -07:00
target: /config
- type: bind
2022-01-02 16:43:23 -07:00
source: /srv
target: /srv
read_only: true
2023-02-15 16:39:09 -07:00
pigallery2:
image: bpatrik/pigallery2:latest
volumes:
- type: bind
source: /srv/sys/pigallery2/config
target: /app/data/config
- type: bind
source: /srv/sys/pigallery2/db
target: /app/data/db
- type: bind
source: /srv/sys/pigallery2/cache
target: /app/data/cache
- type: bind
source: /srv/media/photos
target: /srv/media/photos
read_only: true
2022-11-22 20:15:37 -07:00
transmission:
image: lscr.io/linuxserver/transmission
volumes:
- type: bind
source: /srv/sys/transmission
target: /config
- type: bind
source: /srv/incoming
target: /srv/incoming
2023-02-08 11:43:18 -07:00
environment:
PEERPORT: "51413"
ports:
- 51413:51413
- 51413:51413/udp
2022-11-22 20:15:37 -07:00
2023-02-15 16:39:09 -07:00
unmanic:
image: josh5/unmanic
volumes:
- type: bind
source: /srv/media
target: /srv/media
- type: bind
source: /srv/sys/unmanic/config
target: /config
- type: bind
source: /srv/sys/unmanic/cache
target: /tmp/unmanic
2022-10-12 17:45:23 -06:00
sonarr:
image: lscr.io/linuxserver/sonarr
2022-11-12 17:08:10 -07:00
extra_hosts:
- host.docker.internal:host-gateway
2022-10-12 17:45:23 -06:00
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/sonarr
2022-10-12 17:45:23 -06:00
target: /config
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/media/tv
target: /srv/media/tv
2022-10-12 17:45:23 -06:00
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/incoming
target: /srv/incoming
2022-10-12 22:05:20 -06:00
radarr:
image: lscr.io/linuxserver/radarr
2022-11-12 17:08:10 -07:00
extra_hosts:
- host.docker.internal:host-gateway
2022-10-12 22:05:20 -06:00
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/radarr
2022-10-12 22:05:20 -06:00
target: /config
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/media/movies
target: /srv/media/movies
2022-10-12 22:05:20 -06:00
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/incoming
target: /srv/incoming
2022-10-13 14:38:46 -06:00
lidarr:
image: lscr.io/linuxserver/lidarr
2022-11-12 17:08:10 -07:00
extra_hosts:
- host.docker.internal:host-gateway
2022-10-13 14:38:46 -06:00
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/lidarr
2022-10-13 14:38:46 -06:00
target: /config
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/media/music
target: /srv/media/music
2022-10-13 14:38:46 -06:00
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/incoming
target: /srv/incoming
2022-10-12 22:05:20 -06:00
readarr:
image: lscr.io/linuxserver/readarr:develop
2022-11-12 17:08:10 -07:00
extra_hosts:
- host.docker.internal:host-gateway
2022-10-12 22:05:20 -06:00
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/readarr
2022-10-12 22:05:20 -06:00
target: /config
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/media/books
target: /srv/media/books
- type: bind
source: /srv/media/audiobooks
target: /srv/media/audiobooks
2022-10-12 22:05:20 -06:00
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/incoming
target: /srv/incoming
2022-10-13 10:22:51 -06:00
prowlarr:
2023-01-28 16:34:47 -07:00
image: lscr.io/linuxserver/prowlarr:latest
2022-11-12 17:08:10 -07:00
extra_hosts:
- host.docker.internal:host-gateway
2022-10-12 17:45:23 -06:00
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/prowlarr
2022-10-12 17:45:23 -06:00
target: /config
nzbget:
image: lscr.io/linuxserver/nzbget
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/nzbget
2022-10-12 17:45:23 -06:00
target: /config
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/incoming
target: /srv/incoming
2022-10-12 17:45:23 -06:00
2023-01-07 15:30:03 -07:00
forgejo:
image: codeberg.org/forgejo/forgejo:1.18-rootless
2023-01-07 18:59:06 -07:00
secrets:
2023-01-07 15:30:03 -07:00
- source: forgejo.ini
target: /etc/gitea/app.ini
2023-01-07 18:59:06 -07:00
uid: "1000"
gid: "1000"
mode: 0400
volumes:
- type: bind
2023-01-07 15:30:03 -07:00
source: /srv/sys/forgejo
target: /data
- type: bind
source: /etc/timezone
target: /etc/timezone
read_only: true
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
2021-12-26 12:02:07 -07:00
atlas:
2021-12-26 20:40:04 -07:00
image: ctassisf/ripe-atlas-alpine:arm64v8
2021-12-26 12:02:07 -07:00
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/atlas/etc
2021-12-26 12:02:07 -07:00
target: /var/atlas-probe/etc
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv/sys/atlas/status
2021-12-26 12:02:07 -07:00
target: /var/atlas-probe/status
2023-02-09 14:34:56 -07:00
netdata:
image: netdata/netdata
hostname: "{{.Node.Hostname}}"
2023-02-15 16:39:09 -07:00
deploy:
replicas: 0
2023-02-09 14:34:56 -07:00
environment:
NETDATA_DISABLE_CLOUD: "1"
cap_add:
- SYS_PTRACE
volumes:
- type: bind
source: /
target: /host
read_only: true
- type: bind
source: /srv/sys/netdata/lib
target: /var/lib/netdata
- type: bind
source: /srv/sys/netdata/cache
target: /var/cache/netdata
configs:
- source: netdata.conf
target: /etc/netdata/netdata.conf
2022-03-05 20:27:07 -07:00
geneweb:
image: ravermeister/geneweb
volumes:
- type: bind
2023-02-15 16:39:09 -07:00
source: /srv/sys/geneweb/
2022-03-05 20:27:07 -07:00
target: /usr/local/share/geneweb/share/data
2022-02-27 10:32:35 -07:00
samba:
image: dperson/samba
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv
target: /srv
bind:
propagation: rslave
2022-02-27 10:32:35 -07:00
environment:
NMBD: enable
RECYCLE: disable
USERID: 911
GROUPID: 911
2022-02-27 10:32:35 -07:00
# name;path;browse;readonly;guest
2022-10-30 18:20:32 -06:00
SHARE1: drive;/srv;yes;no;no
SHARE2: retropie;/srv/media/games/retropie;yes;yes;yes
2022-02-27 10:32:35 -07:00
env_file:
2022-09-04 08:37:29 -06:00
- secrets/samba-users.env
2022-02-27 10:32:35 -07:00
ports:
- published: 139
target: 139
- published: 445
target: 445
2022-08-13 08:59:35 -06:00
webdav:
image: micromata/dave
volumes:
- type: bind
2022-10-30 18:20:32 -06:00
source: /srv
2022-08-13 08:59:35 -06:00
target: /data
configs:
- source: dave.yaml
target: /config/config.yaml
user: "911:911"
2022-02-27 10:32:35 -07:00
ddns:
image: qmcgaw/ddns-updater
2022-11-22 20:15:37 -07:00
dns:
- 1.1.1.1
volumes:
- type: bind
source: /srv/sys/ddns-updater
target: /updater/data
2023-01-28 16:34:47 -07:00
tunnel:
2023-01-28 16:34:47 -07:00
deploy:
replicas: 0
image: lscr.io/linuxserver/openssh-server
user: abc
entrypoint:
- /usr/bin/ssh
- -N
- -R 172.17.0.1:5880:caddy:80 # 172.17.0.1 = docker host IP
- -R :5822:host.docker.internal:22
- -o ServerAliveInterval=30
- core@melville.woozle.org
extra_hosts:
- host.docker.internal:host-gateway
secrets:
- source: tunnel
target: /config/.ssh/id_rsa
uid: "911"
gid: "911"
mode: 0600
- source: known_hosts
target: /config/.ssh/known_hosts
uid: "911"
gid: "911"
mode: 0600
2022-02-28 18:01:25 -07:00
configs:
2022-08-13 08:59:35 -06:00
dave.yaml:
file: dave.yaml
2022-09-04 08:37:29 -06:00
name: dave.yaml-v3
Corefile:
file: Corefile
2023-02-06 12:14:14 -07:00
name: Corefile-v4
2022-09-04 08:37:29 -06:00
Caddyfile:
file: Caddyfile
2023-02-15 16:39:09 -07:00
name: Caddyfile-v133
2022-11-04 15:47:21 -06:00
index.html:
file: www/index.html
2023-02-15 16:39:09 -07:00
name: index.html-v43
2022-11-04 15:47:21 -06:00
index.mjs:
file: www/index.mjs
2023-02-15 16:39:09 -07:00
name: index.mjs-v12
2022-11-04 15:47:21 -06:00
index.css:
file: www/index.css
name: index.css-v2
2023-02-15 16:39:09 -07:00
portal.json:
file: portal.json
name: portal.json-v3
2022-12-16 15:02:50 -07:00
browser.html:
file: www/browser.html
name: browser.html-v3
2023-01-28 16:34:47 -07:00
deergrove.png:
file: www/deergrove.png
name: deergrove.png-v1
2023-02-06 12:14:14 -07:00
authelia.yaml:
file: authelia.yaml
2023-02-15 16:39:09 -07:00
name: authelia.yaml-v36
2023-02-09 14:34:56 -07:00
netdata.conf:
file: netdata.conf
name: netdata.conf-v1
2022-11-04 15:47:21 -06:00
2021-12-17 09:38:07 -07:00
secrets:
2022-09-07 21:47:37 -06:00
passwd:
file: secrets/passwd
2023-01-06 13:43:24 -07:00
name: passwd-v2
2022-09-10 17:32:15 -06:00
simpleauth.key:
file: secrets/simpleauth.key
name: simpleauth.key-v1
2022-11-10 21:22:15 -07:00
tunnel:
file: secrets/tunnel
name: tunnel-v1
known_hosts:
file: secrets/known_hosts
name: known_hosts-v1
2023-01-07 18:59:06 -07:00
forgejo.ini:
file: secrets/forgejo.ini
2023-02-06 16:30:28 -07:00
name: forgejo.ini-v4
2023-02-06 12:14:14 -07:00
jwt.secret:
file: secrets/jwt.secret
name: jwt.secret-v1
storage.secret:
file: secrets/storage.secret
name: storage.secret-v1
session.secret:
file: secrets/session.secret
name: session.secret-v1
users.yaml:
file: secrets/users.yaml
name: users.yaml-v9
2023-02-06 16:30:28 -07:00
authelia.oidc.yaml:
file: secrets/authelia.oidc.yaml
name: authelia.oidc.yaml-v2
2021-12-17 09:38:07 -07:00
networks:
hostnet:
external: true
name: host
2023-01-28 16:34:47 -07:00