Compare commits

..

18 Commits

Author SHA1 Message Date
55bccd376e Remove watchtower from gluetun 2026-04-20 20:23:41 +00:00
eca85225be Adding Ersatztv for custom tv streaming
Adding Pinchflat for youtube downloads
2026-04-18 04:37:55 +00:00
36274d84f3 Merge pull request 'Adding netbootxyz' (#11) from netboot into master
Reviewed-on: #11
2026-04-09 14:57:59 -07:00
c890837a79 Adding netbootxyz 2026-04-09 21:57:29 +00:00
d92fb7629d Merge pull request 'Adding scrutiny' (#10) from scrutiny into master
Reviewed-on: #10
2026-04-09 14:56:46 -07:00
d397d5506d Adding scrutiny 2026-04-09 21:55:42 +00:00
e24e04cd36 Merge pull request 'Removing unused firefox-vpn compose' (#9) from cleanup120938 into master
Reviewed-on: #9
2026-04-08 14:20:56 -07:00
c5239726d5 Removing unused firefox-vpn compose 2026-04-08 21:20:13 +00:00
ab3fcb0725 Merge pull request 'Specify 2128 is for tcp' (#8) from gitea into master
Reviewed-on: #8
2026-04-08 14:13:51 -07:00
6e38098427 Specify 2128 is for tcp
Used for gitea's ssh server
2026-04-08 21:12:48 +00:00
77e42c352f Merge pull request 'Adding dozzle' (#7) from updates_apr8 into master
Reviewed-on: #7
2026-04-08 11:41:06 -07:00
686fff045b Adding dozzle
Cleaning up all compose files:
  consistent labels
  remove exposed ports
  move synapse to wildcard cert
  remove commented out lines
Switch qbit to libtorrentv1 tag
2026-04-08 18:38:31 +00:00
7732ed22a7 Merge pull request 'Remove mam-api container' (#6) from mousehole into master
Reviewed-on: http://gitea.nearfuture/fejy/docker-compose-stack/pulls/6
2026-04-05 13:57:04 -07:00
92e399ddac Remove mam-api container
Add mousehold container
Remove unused gluetun ports
Add port forwarding to gluetun for airvpn
2026-04-05 20:54:33 +00:00
325e7c6246 Merge pull request 'Switching matrix to actually use the postgres database' (#5) from mas into master
Reviewed-on: http://gitea.nearfuture/fejy/docker-compose-stack/pulls/5
2026-04-05 13:18:27 -07:00
3856a76a75 Switching matrix to actually use the postgres database
Upgraded to postgres 14
2026-04-05 19:47:07 +00:00
bfc06e2206 Merge pull request 'Overseer switched to seer' (#4) from updates_apr4 into master
Reviewed-on: http://gitea.nearfuture/fejy/docker-compose-stack/pulls/4
2026-04-04 13:14:04 -07:00
0b61143bc9 Overseer switched to seer
Added thelounge
Added watchtower
Added authentik
Moved excalidraw behind authentik SSO
Removed unused services
2026-04-04 20:11:13 +00:00
26 changed files with 399 additions and 321 deletions

View File

@@ -6,10 +6,8 @@ services:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- APPRISE_ATTACH_SIZE=0 #optional
volumes:
- /home/fejy/docker/apprise-api/config:/config
- /home/fejy/docker/apprise-api/attachments:/attachments #optional
ports:
- 8006:8000
restart: unless-stopped
@@ -19,8 +17,8 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.apprise.rule=Host(`apprise.nearfuture`)"
- "traefik.http.routers.apprise.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:
external: true

View File

@@ -8,8 +8,6 @@ services:
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/prowlarr/data:/config
ports:
- 9696:9696
restart: unless-stopped
networks:
- proxy
@@ -17,6 +15,7 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.prowlarr.rule=Host(`prowlarr.nearfuture`)"
- "traefik.http.routers.prowlarr.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
radarr:
image: lscr.io/linuxserver/radarr:latest
@@ -29,8 +28,6 @@ services:
- /home/fejy/docker/radarr:/config
- /mnt/LUXURIA/Share:/Share
- /mnt/AVARITIA/Share:/Avaritia/Share
ports:
- 7878:7878
restart: unless-stopped
networks:
- proxy
@@ -38,6 +35,7 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.radarr.rule=Host(`radarr.nearfuture`)"
- "traefik.http.routers.radarr.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
sonarr:
image: lscr.io/linuxserver/sonarr:latest
@@ -50,8 +48,6 @@ services:
- /home/fejy/docker/sonarr:/config
- /mnt/LUXURIA/Share:/Share
- /mnt/AVARITIA/Share:/Avaritia/Share
ports:
- 8989:8989
restart: unless-stopped
networks:
- proxy
@@ -59,28 +55,7 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.sonarr.rule=Host(`sonarr.nearfuture`)"
- "traefik.http.routers.sonarr.entrypoints=web"
overseerr:
image: lscr.io/linuxserver/overseerr:latest
container_name: overseerr
environment:
- PUID=1029
- PGID=1000
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/overseerr:/config
ports:
- 5055:5055
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.overseerr.rule=Host(`overseerr.nearfuture`)"
- "traefik.http.routers.overseerr.entrypoints=web"
- "traefik.http.routers.overseerr-ssl.rule=Host(`overseerr.nearfuture`)"
- "traefik.http.routers.overseerr-ssl.entrypoints=websecure"
- "traefik.http.routers.overseerr-ssl.tls=true"
- "com.centurylinklabs.watchtower.scope=watch"
lidarr:
image: lscr.io/linuxserver/lidarr:latest
@@ -93,8 +68,6 @@ services:
- /home/fejy/docker/lidarr:/config
- /mnt/LUXURIA/Share:/Share
- /mnt/AVARITIA/Share:/Avaritia/Share
ports:
- 8686:8686
restart: unless-stopped
networks:
- proxy
@@ -102,8 +75,27 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.lidarr.rule=Host(`lidarr.nearfuture`)"
- "traefik.http.routers.lidarr.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
seerr:
image: ghcr.io/seerr-team/seerr:latest
container_name: seerr
environment:
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/overseerr:/app/config
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.overseerr.rule=Host(`overseerr.nearfuture`)"
- "traefik.http.routers.overseerr.entrypoints=web"
- "traefik.http.routers.overseerr-ssl.rule=Host(`overseerr.nearfuture`)"
- "traefik.http.routers.overseerr-ssl.entrypoints=websecure"
- "traefik.http.routers.overseerr-ssl.tls=true"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:
external: true

89
authentik/compose.yml Normal file
View File

@@ -0,0 +1,89 @@
services:
postgresql:
env_file:
- .env
environment:
POSTGRES_DB: ${PG_DB:-authentik}
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
POSTGRES_USER: ${PG_USER:-authentik}
healthcheck:
interval: 30s
retries: 5
start_period: 20s
test:
- CMD-SHELL
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
timeout: 5s
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
volumes:
- /home/fejy/docker/authentik/database:/var/lib/postgresql/data
networks:
- authentik
authentik-server:
command: server
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.2-rc2}
container_name: authentik-server
restart: unless-stopped
shm_size: 512mb
volumes:
- /home/fejy/docker/authentik/data:/data
- /home/fejy/docker/authentik/custom-templates:/templates
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.https-auth.entryPoints=websecure"
- "traefik.http.routers.https-auth.rule=Host(`auth.nearfuture.industries`) || HostRegexp(`{subdomain:[a-z0-9-]+}.nearfuture.industries`) && PathPrefix(`/outpost.goauthentik.io/`)"
- "traefik.http.routers.https-auth.tls=true"
- "traefik.http.routers.https-auth.tls.certresolver=myresolver"
- "traefik.http.routers.https-auth.priority=50"
- "traefik.http.routers.https-auth.service=https-auth"
- "traefik.http.services.https-auth.loadbalancer.server.port=9000"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
- proxy
- authentik
worker:
command: worker
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.2-rc2}
restart: unless-stopped
shm_size: 512mb
user: root
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/fejy/docker/authentik/data:/data
- /home/fejy/docker/authentik/certs:/certs
- /home/fejy/docker/authentik/custom-templates:/templates
labels:
- "com.centurylinklabs.watchtower.scope=watch"
networks:
- authentik
networks:
proxy:
external: true
authentik:

View File

@@ -3,8 +3,6 @@ services:
image: ghcr.io/cross-seed/cross-seed:6
container_name: cross-seed
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
ports:
- "2468:2468"
volumes:
- /home/fejy/docker/cross-seed:/config
- /mnt/LUXURIA/Share:/Share
@@ -16,12 +14,12 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.cross-seed.rule=Host(`cross-seed.nearfuture`)"
- "traefik.http.routers.cross-seed.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
cross-seed2:
image: ghcr.io/cross-seed/cross-seed:6
container_name: cross-seed2
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
ports:
- "2469:2468"
volumes:
- /home/fejy/docker/cross-seed2:/config
- /mnt/LUXURIA/Share:/Share
@@ -33,12 +31,12 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.cross-seed2.rule=Host(`cross-seed2.nearfuture`)"
- "traefik.http.routers.cross-seed2.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
cross-seed3:
image: ghcr.io/cross-seed/cross-seed:6
container_name: cross-seed3
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
ports:
- "2470:2468"
volumes:
- /home/fejy/docker/cross-seed3:/config
- /mnt/AVARITIA/Share:/Avaritia/Share/
@@ -50,12 +48,12 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.cross-seed3.rule=Host(`cross-seed3.nearfuture`)"
- "traefik.http.routers.cross-seed3.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
cross-seed-priv:
image: ghcr.io/cross-seed/cross-seed:6
container_name: cross-seed-priv
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
ports:
- "2471:2468"
volumes:
- /home/fejy/docker/cross-seed-priv:/config
- /mnt/LUXURIA/Private:/mnt/LUXURIA/Private
@@ -67,9 +65,8 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.cross-seed-priv.rule=Host(`cross-seed-priv.nearfuture`)"
- "traefik.http.routers.cross-seed-priv.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:
external: true

23
dozzle/compose.yml Normal file
View File

@@ -0,0 +1,23 @@
services:
dozzle:
image: amir20/dozzle:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/fejy/docker/dozzle_data:/data
environment:
- DOZZLE_ENABLE_ACTIONS=true
- DOZZLE_AUTH_PROVIDER=forward-proxy
- DOZZLE_AUTH_HEADER_USER=X-Authentik-Email
- DOZZLE_AUTH_HEADER_EMAIL=X-Authentik-Name
- DOZZLE_AUTH_HEADER_NAME=X-Authentik-Username
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.dozzle.rule=Host(`dozzle.nearfuture`)"
- "traefik.http.routers.dozzle.entrypoints=web"
- "traefik.http.routers.dozzle.middlewares=authentik@file"
networks:
proxy:
external: true

26
ersatztv/compose.yml Normal file
View File

@@ -0,0 +1,26 @@
services:
ersatztv:
image: ghcr.io/ersatztv/ersatztv
container_name: ersatztv
environment:
- TZ=America/New_York
volumes:
- /home/fejy/docker/ersatztv/config:/config
# Required: media directories - Where your media files are stored. Use :ro at the end of the path to limit container to Read-Only
- /mnt/LUXURIA/Share/Videos:/mnt/LUXURIA/Share/Videos:ro
- /mnt/AVARITIA/Share/Videos:/mnt/AVARITIA/Share/Videos:ro
# tmpfs is optional but recommended: Limits writing to SSD/disk by using RAM for transcode files. Comment out to disable
tmpfs:
- /transcode
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.tv.entrypoints=web"
- "traefik.http.routers.tv.rule=Host(`tv.nearfuture`)"
networks:
- proxy
networks:
proxy:
external: true

View File

@@ -5,8 +5,6 @@ services:
environment:
- PUID=1029
- PGID=1000
ports:
- "3030:80"
restart: on-failure
networks:
- proxy
@@ -20,8 +18,9 @@ services:
- "traefik.http.routers.ex-ssl-ext.rule=Host(`excalidraw.nearfuture.industries`)"
- "traefik.http.routers.ex-ssl-ext.entrypoints=websecure"
- "traefik.http.routers.ex-ssl-ext.tls=true"
- "traefik.http.routers.ex-ssl-ext.tls.certresolver=myresolver"
- "traefik.http.routers.ex-ssl-ext.middlewares=authentik@file"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:
external: true

View File

@@ -1,16 +0,0 @@
services:
browser:
image: lscr.io/linuxserver/firefox:latest
container_name: firefox
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- HTTP_PROXY=http://localhost:8888 # Set the HTTP proxy to Gluetun
- HTTPS_PROXY=http://localhost:8888 # Set the HTTPS proxy to Gluetun
network_mode: "container:gluetun"
shm_size: "1gb"
volumes:
- /home/fejy/docker/firefox/config:/config:rw
- /home/fejy/docker/firefox/downloads:/downloads:rw
restart: unless-stopped

View File

@@ -4,15 +4,13 @@ services:
container_name: homepage
env_file: ".env"
environment:
PUID: 1029 # optional, your user id
PGID: 994 # optional, your group id
PUID: 1029
PGID: 1000
HOMEPAGE_ALLOWED_HOSTS: home.nearfuture
ports:
- 3069:3000
volumes:
- /home/fejy/docker/homepage/config:/app/config
- /home/fejy/docker/homepage/icons:/app/public/icons
- /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
# - /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
networks:
- proxy
@@ -20,6 +18,7 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.homepage.rule=Host(`home.nearfuture`)"
- "traefik.http.routers.homepage.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:

View File

@@ -11,14 +11,11 @@ services:
volumes:
- /home/fejy/docker/matrix-bots/matrix-registration-bot/:/data/
maubot:
image: dock.mau.dev/maubot/maubot
container_name: maubot
volumes:
- /home/fejy/docker/matrix-bots/maubot/:/data:z
ports:
- 29316:29316
environment:
R34_API_KEY: ${R34_API_KEY}
R34_UID: ${R34_UID}

46
netbootxyz/compose.yml Normal file
View File

@@ -0,0 +1,46 @@
services:
netbootxyz:
image: ghcr.io/netbootxyz/netbootxyz
container_name: netbootxyz
hostname: netbootxyz
environment:
- NGINX_PORT=80
- WEB_APP_PORT=3000
volumes:
- /etc/localtime:/etc/localtime:ro
- /home/fejy/docker/netbootxyz/config:/config
- /home/fejy/docker/netbootxyz/assets:/assets
ports:
- 69:69/udp
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000"]
interval: 2s
timeout: 2s
retries: 10
start_period: 3s
networks:
- proxy
- netbootxyz
labels:
# web configuration interface
- "traefik.enable=true"
- "traefik.http.routers.netbootxyz.entrypoints=web"
- "traefik.http.routers.netbootxyz.rule=Host(`netbootxyz.nearfuture`)"
- "traefik.http.routers.netbootxyz.service=netbootxyz"
- "traefik.http.services.netbootxyz.loadbalancer.server.port=3000"
- "traefik.http.services.netbootxyz.loadbalancer.passhostheader=true"
- "traefik.docker.network=proxy"
# NGINX server for hosting assets
- "traefik.http.routers.netboot-assets.entrypoints=web"
- "traefik.http.routers.netboot-assets.rule=Host(`netboot-assets.nearfuture`)"
- "traefik.http.routers.netboot-assets.service=netboot-assets"
- "traefik.http.services.netboot-assets.loadbalancer.server.port=80"
- "traefik.http.services.netboot-assets.loadbalancer.passhostheader=true"
networks:
proxy:
name: proxy
external: true
netbootxyz:
name: netbootxyz

View File

@@ -1,27 +0,0 @@
services:
overseerr:
image: lscr.io/linuxserver/overseerr:latest
container_name: overseerr
environment:
- PUID=1029
- PGID=1000
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/overseerr:/config
ports:
- 5055:5055
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.overseerr.rule=Host(`overseerr.nearfuture`)"
- "traefik.http.routers.overseerr.entrypoints=web"
- "traefik.http.routers.overseerr-ssl.rule=Host(`overseerr.nearfuture`)"
- "traefik.http.routers.overseerr-ssl.entrypoints=websecure"
- "traefik.http.routers.overseerr-ssl.tls=true"
networks:
proxy:
external: true

19
pinchflat/compose.yml Normal file
View File

@@ -0,0 +1,19 @@
services:
pinchflat:
image: ghcr.io/kieraneglin/pinchflat:latest
container_name: pinchflat
environment:
- TZ=America/New_York
volumes:
- /home/fejy/docker/pinchflat/config:/config
- /mnt/AVARITIA/Share/Videos/:/downloads
labels:
- "traefik.enable=true"
- "traefik.http.routers.pinchflat.entrypoints=web"
- "traefik.http.routers.pinchflat.rule=Host(`pinchflat.nearfuture`)"
networks:
- proxy
networks:
proxy:
external: true

View File

@@ -2,29 +2,22 @@ services:
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
# line above must be uncommented to allow external containers to connect.
# See https://github.com/qdm12/gluetun-wiki/blob/main/setup/connect-a-container-to-gluetun.md#external-container-to-gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- 8000:8000/tcp # Gluetun's built-in HTTP control server
- 8888:8888/tcp # Gluetun's built-in HTTP proxy
- 8388:8388/tcp # Gluetun's built-in Shadowsocks server
- 8388:8388/udp # Gluetun's built-in Shadowsocks server
- 8089:8089/tcp # Qbittorrent web-ui
- 8090:8090/tcp # Qbittorrent2 web-gui
- 8091:8091/tcp # Qbittorrent3 web-gui
- 8069:8069/tcp # Qbittorrent_priv web-gui
- 3000:3000 # Firefox desktop gui
- 3001:3001 # Firefox desktop gui HTTPS
- 5010:5010/tcp # Mousehole
volumes:
- /home/fejy/docker/gluetun:/gluetun
environment:
# See https://github.com/qdm12/gluetun-wiki/tree/main/setup#setup
- VPN_SERVICE_PROVIDER=airvpn
- VPN_TYPE=wireguard
- FIREWALL_VPN_INPUT_PORTS=${qbit_portfw}
# Wireguard:
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIV_KEY}
- WIREGUARD_PRESHARED_KEY=${WIREGUARD_PSHARE_KEY}
@@ -43,6 +36,11 @@ services:
# Traefik
- "traefik.enable=true"
- "traefik.docker.network=proxy"
# Gluetun
- "traefik.http.routers.gluetun.rule=Host(`gluetun.nearfuture`)"
- "traefik.http.routers.gluetun.entrypoints=web"
- "traefik.http.routers.gluetun.service=gluetun"
- "traefik.http.services.gluetun.loadbalancer.server.port=8000"
# Qbittorrent
- "traefik.http.routers.qbit.rule=Host(`qbit.nearfuture`)"
- "traefik.http.routers.qbit.entrypoints=web"
@@ -63,9 +61,16 @@ services:
- "traefik.http.routers.qbit-priv.entrypoints=web"
- "traefik.http.routers.qbit-priv.service=qbit-priv"
- "traefik.http.services.qbit-priv.loadbalancer.server.port=8069"
# Mousehole
- "traefik.http.routers.mousehole.rule=Host(`mousehole.nearfuture`)"
- "traefik.http.routers.mousehole.entrypoints=web"
- "traefik.http.routers.mousehole.service=mousehole"
- "traefik.http.services.mousehole.loadbalancer.server.port=5010"
# Watchtower
#- "com.centurylinklabs.watchtower.scope=watch"
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
container_name: qbittorrent
environment:
- PUID=1029
@@ -75,16 +80,15 @@ services:
volumes:
- /home/fejy/docker/qbittorrent:/config
- /mnt/LUXURIA/Share:/Share
- /mnt/LUXURIA/Private:/Private
- /mnt/downloads:/downloads/
network_mode: "service:gluetun"
depends_on:
gluetun:
condition: service_healthy
#restart: unless-stopped
restart: on-failure:2
qbittorrent2:
image: lscr.io/linuxserver/qbittorrent:latest
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
container_name: qbittorrent2
environment:
- PUID=1029
@@ -94,16 +98,15 @@ services:
volumes:
- /home/fejy/docker/qbittorrent2:/config
- /mnt/LUXURIA/Share:/Share
- /mnt/LUXURIA/Private:/Private
- /mnt/downloads:/downloads/
network_mode: "service:gluetun"
depends_on:
gluetun:
condition: service_healthy
#restart: unless-stopped
restart: on-failure:2
qbittorrent3:
image: lscr.io/linuxserver/qbittorrent:latest
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
container_name: qbittorrent3
environment:
- PUID=1029
@@ -117,11 +120,10 @@ services:
depends_on:
gluetun:
condition: service_healthy
#restart: unless-stopped
restart: on-failure:2
qbittorrent_priv:
image: lscr.io/linuxserver/qbittorrent:latest
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
container_name: qbittorrent_priv
environment:
- PUID=1029
@@ -131,25 +133,22 @@ services:
volumes:
- /home/fejy/docker/qbittorrent_priv:/config
- /mnt/LUXURIA/Share:/mnt/LUXURIA/Share
- /mnt/LUXURIA/Private:/mnt/LUXURIA/Private
- /mnt/AVARITIA/Private:/mnt/LUXURIA/Private
- /mnt/downloads:/downloads/
network_mode: "service:gluetun"
depends_on:
gluetun:
condition: service_healthy
#restart: unless-stopped
restart: on-failure:2
mam-api:
image: myanonamouse/seedboxapi
container_name: mam-api
user: 1029:1000
environment:
- DEBUG=1
#- mam_id=${MAM_KEY}
- interval=1
volumes:
- /home/fejy/docker/mam-api:/config
mousehole:
image: tmmrtn/mousehole:latest
container_name: mousehole
network_mode: "service:gluetun"
environment:
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/mousehole:/srv/mousehole
depends_on:
gluetun:
condition: service_healthy

View File

@@ -2,9 +2,6 @@ services:
privatebin:
container_name: privatebin
image: privatebin/nginx-fpm-alpine:1.7.4
ports:
- 1992:8080/tcp
# read_only: true
volumes:
- /home/fejy/docker/privatebin/conf/conf.php:/srv/cfg/conf.php:ro
- /home/fejy/docker/privatebin/data:/srv/data
@@ -24,8 +21,7 @@ services:
- "traefik.http.routers.privatebin-ssl.tls=true"
- "traefik.http.routers.privatebin-ssl-ext.rule=Host(`privatebin.nearfuture.industries`)"
- "traefik.http.routers.privatebin-ssl-ext.entrypoints=websecure"
- "traefik.http.routers.privatebin-ssl-ext.tls=true"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:

View File

@@ -1,25 +0,0 @@
services:
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1029
- PGID=1000
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/prowlarr/data:/config
ports:
- 9696:9696
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.prowlarr.rule=Host(`prowlarr.nearfuture`)"
- "traefik.http.routers.prowlarr.entrypoints=web"
networks:
proxy:
external: true

View File

@@ -1,25 +0,0 @@
services:
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=1029
- PGID=1000
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/radarr:/config
- /mnt/LUXURIA/Share:/Share
ports:
- 7878:7878
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.radarr.rule=Host(`radarr.nearfuture`)"
- "traefik.http.routers.radarr.entrypoints=web"
networks:
proxy:
external: true

68
scrutiny/compose.yml Normal file
View File

@@ -0,0 +1,68 @@
services:
influxdb:
restart: unless-stopped
image: influxdb:2.8
ports:
- '8086:8086'
user: 1029:1000
volumes:
- /home/fejy/docker/scrutiny/influxdb:/var/lib/influxdb2
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8086/health"]
interval: 5s
timeout: 10s
retries: 20
networks:
- scrutiny
web:
restart: unless-stopped
image: 'ghcr.io/analogj/scrutiny:v0-web'
user: 1029:1000
volumes:
- /home/fejy/docker/scrutiny/config:/opt/scrutiny/config
environment:
SCRUTINY_WEB_INFLUXDB_HOST: 'influxdb'
depends_on:
influxdb:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"]
interval: 5s
timeout: 10s
retries: 20
start_period: 10s
networks:
- proxy
- scrutiny
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.scrutiny.entryPoints=web"
- "traefik.http.routers.scrutiny.rule=Host(`scrutiny.nearfuture`)"
collector:
restart: unless-stopped
image: 'ghcr.io/analogj/scrutiny:v0.8-collector'
cap_add:
- SYS_RAWIO
volumes:
- '/run/udev:/run/udev:ro'
environment:
COLLECTOR_API_ENDPOINT: 'http://web:8080'
COLLECTOR_HOST_ID: 'Invidia'
# If true forces the collector to run on startup (cron will be started after the collector completes)
# see: https://github.com/AnalogJ/scrutiny/blob/master/docs/TROUBLESHOOTING_DEVICE_COLLECTOR.md#collector-trigger-on-startup
COLLECTOR_RUN_STARTUP: true
depends_on:
web:
condition: service_healthy
networks:
- scrutiny
devices:
- "/dev/sda:/dev/sda"
networks:
proxy:
external: true
scrutiny:

View File

@@ -1,25 +0,0 @@
services:
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=1029
- PGID=1000
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/sonarr:/config
- /mnt/LUXURIA/Share:/Share
ports:
- 8989:8989
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.sonarr.rule=Host(`sonarr.nearfuture`)"
- "traefik.http.routers.sonarr.entrypoints=web"
networks:
proxy:
external: true

View File

@@ -1,89 +1,55 @@
# This compose file is compatible with Compose itself, it might need some
# adjustments to run properly with stack.
version: '3'
services:
synapse:
build:
context: ../..
dockerfile: docker/Dockerfile
image: docker.io/matrixdotorg/synapse:latest
# Since synapse does not retry to connect to the database, restart upon
# failure
container_name: synapse
restart: unless-stopped
# See the readme for a full documentation of the environment settings
# NOTE: You must edit homeserver.yaml to use postgres, it defaults to sqlite
environment:
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
volumes:
# You may either store all the files in a local folder
- /home/fejy/docker/synapse:/data
# .. or you may split this between different storage points
# - ./files:/data
# - /path/to/ssd:/data/uploads
# - /path/to/large_hdd:/data/media
depends_on:
- db
- synapse_db
networks:
- proxy
# In order to expose Synapse, remove one of the following, you might for
# instance expose the TLS port directly:
ports:
- 8448:8448/tcp
# ... or use a reverse proxy, here is an example for traefik:
labels:
# The following lines are valid for Traefik version 1.x:
#- traefik.enable=true
#- traefik.frontend.rule=Host:my.matrix.Host
#- traefik.port=8008
# Alternatively, for Traefik version 2.0:
- traefik.enable=true
- traefik.http.routers.http-synapse.entryPoints=web
- traefik.http.routers.http-synapse.rule=Host(`synapse.nearfuture.industries`)
- traefik.http.middlewares.https_redirect.redirectscheme.scheme=https
- traefik.http.middlewares.https_redirect.redirectscheme.permanent=true
- traefik.http.routers.http-synapse.middlewares=https_redirect
- traefik.http.routers.https-synapse.entryPoints=websecure
- traefik.http.routers.https-synapse.rule=Host(`synapse.nearfuture.industries`)
- traefik.http.routers.https-synapse.service=synapse
- traefik.http.routers.https-synapse.tls=true
- traefik.http.routers.https-synapse.tls.certresolver=myresolver
- traefik.http.services.synapse.loadbalancer.server.port=8008
- "traefik.enable=true"
- "traefik.http.routers.http-synapse.entryPoints=web"
- "traefik.http.routers.http-synapse.rule=Host(`synapse.nearfuture.industries`)"
- "traefik.http.routers.http-synapse.middlewares=https_redirect"
- "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
- "traefik.http.routers.https-synapse.entryPoints=websecure"
- "traefik.http.routers.https-synapse.rule=Host(`synapse.nearfuture.industries`)"
- "traefik.http.routers.https-synapse.service=synapse"
- "traefik.http.services.synapse.loadbalancer.server.port=8008"
db:
image: docker.io/postgres:12-alpine
# Change that password, of course!
synapse_db:
image: docker.io/postgres:14-alpine
container_name: synapse_db
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${POSTGRES_PASS}
# ensure the database gets created correctly
# https://element-hq.github.io/synapse/latest/postgres.html#set-up-database
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
networks:
- proxy
volumes:
# You may store the database tables in a local folder..
- /home/fejy/docker/synapse-db/:/var/lib/postgresql/data
# .. or store them on some high performance storage for better results
# - /path/to/ssd/storage:/var/lib/postgresql/data
nginx:
image: nginx:1.12-alpine
container_name: synapse_nginx
restart: unless-stopped
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.services.matrix.loadbalancer.server.port=80
- traefik.http.routers.matrix.rule=Host(`nearfuture.industries`)
- traefik.http.routers.matrix.entrypoints=websecure
- traefik.http.routers.matrix.service=matrix
- traefik.http.routers.matrix.tls=true
- traefik.http.routers.matrix.tls.certresolver=myresolver
- "traefik.enable=true"
- "traefik.http.services.matrix.loadbalancer.server.port=80"
- "traefik.http.routers.matrix.rule=Host(`nearfuture.industries`)"
- "traefik.http.routers.matrix.entrypoints=websecure"
volumes:
- ./nginx/matrix.conf:/etc/nginx/conf.d/matrix.conf
- ./nginx/www:/var/www/

View File

@@ -8,8 +8,6 @@ services:
- PUID=1029
- PGID=1000
- TZ=Etc/UTC
ports:
- 8181:8181
restart: unless-stopped
networks:
- proxy
@@ -17,6 +15,7 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.tautulli.rule=Host(`tautulli.nearfuture`)"
- "traefik.http.routers.tautulli.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:

23
thelounge/compose.yml Normal file
View File

@@ -0,0 +1,23 @@
services:
thelounge:
image: lscr.io/linuxserver/thelounge:latest
container_name: thelounge
environment:
- PUID=1029
- PGID=1000
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/thelounge/config:/config
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.thelounge.rule=Host(`thelounge.nearfuture`)"
- "traefik.http.routers.thelounge.entrypoints=web"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:
external: true

View File

@@ -2,11 +2,6 @@ services:
traefik:
image: traefik
container_name: traefik
# command:
#- "--api.insecure=true"
#- "--providers.docker=true"
#- "--providers.docker.exposedbydefault=false"
#- "--entrypoints.web.address=:80"
restart: unless-stopped
environment:
- NAMECHEAP_API_USER=${NAMECHEAP_USER}
@@ -14,7 +9,7 @@ services:
ports:
- "80:80"
- "443:443"
- "8080:8080"
- "2128:2128/tcp"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/fejy/docker/traefik:/etc/traefik
@@ -27,7 +22,8 @@ services:
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.rule=Host(`traefik.nearfuture`)"
- "traefik.http.routers.api.entrypoints=web"
- "traefik.http.services.api.loadbalancer.server.port=8080 # The port value doesn't matter"
- "traefik.http.services.api.loadbalancer.server.port=8080"
- "com.centurylinklabs.watchtower.scope=watch"
networks:
proxy:

View File

@@ -1,23 +0,0 @@
services:
wastebin:
image: 'quxfoo/wastebin:latest'
container_name: wastebin
environment:
- WASTEBIN_DATABASE_PATH=/data/state.db
user: "1029:1000"
ports:
- "9020:8088"
volumes:
- '/home/fejy/docker/wastebin:/data'
labels:
- "traefik.enable=true"
- "traefik.http.routers.bin.rule=Host(`bin.nearfuture`)"
- "traefik.http.routers.bin.entrypoints=web"
networks:
- proxy
networks:
proxy:
external: true

12
watchtower/compose.yml Normal file
View File

@@ -0,0 +1,12 @@
version: '3'
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
command: --cleanup=true --scope watch
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "com.centurylinklabs.watchtower.scope=watch"

View File

@@ -1,25 +0,0 @@
services:
whisparr:
image: ghcr.io/thespad/whisparr:latest
container_name: whisparr
environment:
- PUID=1029
- PGID=1000
- TZ=Etc/UTC
volumes:
- /home/fejy/docker/whisparr:/config
- /mnt/LUXURIA/Private:/Private
ports:
- 6969:6969
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.whisparr.rule=Host(`whisparr.nearfuture`)"
- "traefik.http.routers.whisparr.entrypoints=web"
networks:
proxy:
external: true