Compare commits
19 Commits
dcea8e6afe
...
updates_ap
| Author | SHA1 | Date | |
|---|---|---|---|
| 55bccd376e | |||
| eca85225be | |||
| 36274d84f3 | |||
| c890837a79 | |||
| d92fb7629d | |||
| d397d5506d | |||
| e24e04cd36 | |||
| c5239726d5 | |||
| ab3fcb0725 | |||
| 6e38098427 | |||
| 77e42c352f | |||
| 686fff045b | |||
| 7732ed22a7 | |||
| 92e399ddac | |||
| 325e7c6246 | |||
| 3856a76a75 | |||
| bfc06e2206 | |||
| 0b61143bc9 | |||
| daa0adfd4f |
@@ -6,10 +6,8 @@ services:
|
|||||||
- PUID=1000
|
- PUID=1000
|
||||||
- PGID=1000
|
- PGID=1000
|
||||||
- TZ=Etc/UTC
|
- TZ=Etc/UTC
|
||||||
- APPRISE_ATTACH_SIZE=0 #optional
|
|
||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/apprise-api/config:/config
|
- /home/fejy/docker/apprise-api/config:/config
|
||||||
- /home/fejy/docker/apprise-api/attachments:/attachments #optional
|
|
||||||
ports:
|
ports:
|
||||||
- 8006:8000
|
- 8006:8000
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -19,8 +17,8 @@ services:
|
|||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.apprise.rule=Host(`apprise.nearfuture`)"
|
- "traefik.http.routers.apprise.rule=Host(`apprise.nearfuture`)"
|
||||||
- "traefik.http.routers.apprise.entrypoints=web"
|
- "traefik.http.routers.apprise.entrypoints=web"
|
||||||
|
- "com.centurylinklabs.watchtower.scope=watch"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
|
|||||||
101
arr/compose.yml
Normal file
101
arr/compose.yml
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
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
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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
|
||||||
|
container_name: radarr
|
||||||
|
environment:
|
||||||
|
- PUID=1029
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/radarr:/config
|
||||||
|
- /mnt/LUXURIA/Share:/Share
|
||||||
|
- /mnt/AVARITIA/Share:/Avaritia/Share
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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
|
||||||
|
container_name: sonarr
|
||||||
|
environment:
|
||||||
|
- PUID=1029
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/sonarr:/config
|
||||||
|
- /mnt/LUXURIA/Share:/Share
|
||||||
|
- /mnt/AVARITIA/Share:/Avaritia/Share
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.sonarr.rule=Host(`sonarr.nearfuture`)"
|
||||||
|
- "traefik.http.routers.sonarr.entrypoints=web"
|
||||||
|
- "com.centurylinklabs.watchtower.scope=watch"
|
||||||
|
|
||||||
|
lidarr:
|
||||||
|
image: lscr.io/linuxserver/lidarr:latest
|
||||||
|
container_name: lidarr
|
||||||
|
environment:
|
||||||
|
- PUID=1029
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/lidarr:/config
|
||||||
|
- /mnt/LUXURIA/Share:/Share
|
||||||
|
- /mnt/AVARITIA/Share:/Avaritia/Share
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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
89
authentik/compose.yml
Normal 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:
|
||||||
@@ -3,8 +3,6 @@ services:
|
|||||||
image: ghcr.io/cross-seed/cross-seed:6
|
image: ghcr.io/cross-seed/cross-seed:6
|
||||||
container_name: cross-seed
|
container_name: cross-seed
|
||||||
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
|
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
|
||||||
ports:
|
|
||||||
- "2468:2468"
|
|
||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/cross-seed:/config
|
- /home/fejy/docker/cross-seed:/config
|
||||||
- /mnt/LUXURIA/Share:/Share
|
- /mnt/LUXURIA/Share:/Share
|
||||||
@@ -16,12 +14,12 @@ services:
|
|||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.cross-seed.rule=Host(`cross-seed.nearfuture`)"
|
- "traefik.http.routers.cross-seed.rule=Host(`cross-seed.nearfuture`)"
|
||||||
- "traefik.http.routers.cross-seed.entrypoints=web"
|
- "traefik.http.routers.cross-seed.entrypoints=web"
|
||||||
|
- "com.centurylinklabs.watchtower.scope=watch"
|
||||||
|
|
||||||
cross-seed2:
|
cross-seed2:
|
||||||
image: ghcr.io/cross-seed/cross-seed:6
|
image: ghcr.io/cross-seed/cross-seed:6
|
||||||
container_name: cross-seed2
|
container_name: cross-seed2
|
||||||
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
|
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
|
||||||
ports:
|
|
||||||
- "2469:2468"
|
|
||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/cross-seed2:/config
|
- /home/fejy/docker/cross-seed2:/config
|
||||||
- /mnt/LUXURIA/Share:/Share
|
- /mnt/LUXURIA/Share:/Share
|
||||||
@@ -33,9 +31,42 @@ services:
|
|||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.cross-seed2.rule=Host(`cross-seed2.nearfuture`)"
|
- "traefik.http.routers.cross-seed2.rule=Host(`cross-seed2.nearfuture`)"
|
||||||
- "traefik.http.routers.cross-seed2.entrypoints=web"
|
- "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)
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/cross-seed3:/config
|
||||||
|
- /mnt/AVARITIA/Share:/Avaritia/Share/
|
||||||
|
command: daemon
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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)
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/cross-seed-priv:/config
|
||||||
|
- /mnt/LUXURIA/Private:/mnt/LUXURIA/Private
|
||||||
|
command: daemon
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
|
|||||||
23
dozzle/compose.yml
Normal file
23
dozzle/compose.yml
Normal 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
26
ersatztv/compose.yml
Normal 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
|
||||||
|
|
||||||
@@ -5,16 +5,22 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- PUID=1029
|
- PUID=1029
|
||||||
- PGID=1000
|
- PGID=1000
|
||||||
ports:
|
|
||||||
- "3030:80"
|
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.excalidraw.rule=Host(`excalidraw.nearfuture`)"
|
- "traefik.http.routers.ex.rule=Host(`excalidraw.nearfuture`)"
|
||||||
- "traefik.http.routers.excalidraw.entrypoints=web"
|
- "traefik.http.routers.ex.entrypoints=web"
|
||||||
|
- "traefik.http.routers.ex-ssl.rule=Host(`excalidraw.nearfuture`)"
|
||||||
|
- "traefik.http.routers.ex-ssl.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.ex-ssl.tls=true"
|
||||||
|
- "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:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
external: true
|
external: true
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -4,14 +4,13 @@ services:
|
|||||||
container_name: homepage
|
container_name: homepage
|
||||||
env_file: ".env"
|
env_file: ".env"
|
||||||
environment:
|
environment:
|
||||||
PUID: 1029 # optional, your user id
|
PUID: 1029
|
||||||
PGID: 994 # optional, your group id
|
PGID: 1000
|
||||||
ports:
|
HOMEPAGE_ALLOWED_HOSTS: home.nearfuture
|
||||||
- 3069:3000
|
|
||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/homepage/config:/app/config
|
- /home/fejy/docker/homepage/config:/app/config
|
||||||
- /home/fejy/docker/homepage/icons:/app/public/icons
|
- /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
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
@@ -19,6 +18,7 @@ services:
|
|||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.homepage.rule=Host(`home.nearfuture`)"
|
- "traefik.http.routers.homepage.rule=Host(`home.nearfuture`)"
|
||||||
- "traefik.http.routers.homepage.entrypoints=web"
|
- "traefik.http.routers.homepage.entrypoints=web"
|
||||||
|
- "com.centurylinklabs.watchtower.scope=watch"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
|
|||||||
@@ -11,14 +11,14 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/matrix-bots/matrix-registration-bot/:/data/
|
- /home/fejy/docker/matrix-bots/matrix-registration-bot/:/data/
|
||||||
|
|
||||||
|
|
||||||
maubot:
|
maubot:
|
||||||
image: dock.mau.dev/maubot/maubot
|
image: dock.mau.dev/maubot/maubot
|
||||||
container_name: maubot
|
container_name: maubot
|
||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/matrix-bots/maubot/:/data:z
|
- /home/fejy/docker/matrix-bots/maubot/:/data:z
|
||||||
ports:
|
environment:
|
||||||
- 29316:29316
|
R34_API_KEY: ${R34_API_KEY}
|
||||||
|
R34_UID: ${R34_UID}
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
46
netbootxyz/compose.yml
Normal file
46
netbootxyz/compose.yml
Normal 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
|
||||||
@@ -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
19
pinchflat/compose.yml
Normal 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
|
||||||
@@ -2,34 +2,33 @@ services:
|
|||||||
gluetun:
|
gluetun:
|
||||||
image: qmcgaw/gluetun
|
image: qmcgaw/gluetun
|
||||||
container_name: 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:
|
cap_add:
|
||||||
- NET_ADMIN
|
- NET_ADMIN
|
||||||
devices:
|
devices:
|
||||||
- /dev/net/tun:/dev/net/tun
|
- /dev/net/tun:/dev/net/tun
|
||||||
ports:
|
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
|
- 8089:8089/tcp # Qbittorrent web-ui
|
||||||
- 8090:8090/tcp # Qbittorrent2 web-gui
|
- 8090:8090/tcp # Qbittorrent2 web-gui
|
||||||
|
- 8091:8091/tcp # Qbittorrent3 web-gui
|
||||||
- 8069:8069/tcp # Qbittorrent_priv web-gui
|
- 8069:8069/tcp # Qbittorrent_priv web-gui
|
||||||
- 3000:3000 # Firefox desktop gui
|
- 5010:5010/tcp # Mousehole
|
||||||
- 3001:3001 # Firefox desktop gui HTTPS
|
|
||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/gluetun:/gluetun
|
- /home/fejy/docker/gluetun:/gluetun
|
||||||
environment:
|
environment:
|
||||||
# See https://github.com/qdm12/gluetun-wiki/tree/main/setup#setup
|
- VPN_SERVICE_PROVIDER=airvpn
|
||||||
- VPN_SERVICE_PROVIDER=mullvad
|
|
||||||
- VPN_TYPE=wireguard
|
- VPN_TYPE=wireguard
|
||||||
|
- FIREWALL_VPN_INPUT_PORTS=${qbit_portfw}
|
||||||
# Wireguard:
|
# Wireguard:
|
||||||
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIV_KEY}
|
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIV_KEY}
|
||||||
|
- WIREGUARD_PRESHARED_KEY=${WIREGUARD_PSHARE_KEY}
|
||||||
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDR}
|
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDR}
|
||||||
- SERVER_CITIES=Amsterdam
|
- SERVER_CITIES=Alblasserdam
|
||||||
- HTTP_CONTROL_SERVER_ADDRESS=:8000
|
- HTTP_CONTROL_SERVER_ADDRESS=:8000
|
||||||
- HTTP_CONTROL_SERVER_LOG=ON
|
- HTTP_CONTROL_SERVER_LOG=ON
|
||||||
|
- DOT=off
|
||||||
|
- BLOCK_MALICIOUS=off
|
||||||
|
- BLOCK_SURVEILLANCE=off
|
||||||
|
- BLOCK_ADS=off
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
@@ -37,6 +36,11 @@ services:
|
|||||||
# Traefik
|
# Traefik
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.docker.network=proxy"
|
- "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
|
# Qbittorrent
|
||||||
- "traefik.http.routers.qbit.rule=Host(`qbit.nearfuture`)"
|
- "traefik.http.routers.qbit.rule=Host(`qbit.nearfuture`)"
|
||||||
- "traefik.http.routers.qbit.entrypoints=web"
|
- "traefik.http.routers.qbit.entrypoints=web"
|
||||||
@@ -47,14 +51,26 @@ services:
|
|||||||
- "traefik.http.routers.qbit2.entrypoints=web"
|
- "traefik.http.routers.qbit2.entrypoints=web"
|
||||||
- "traefik.http.routers.qbit2.service=qbit2"
|
- "traefik.http.routers.qbit2.service=qbit2"
|
||||||
- "traefik.http.services.qbit2.loadbalancer.server.port=8090"
|
- "traefik.http.services.qbit2.loadbalancer.server.port=8090"
|
||||||
|
# Qbittorrent3
|
||||||
|
- "traefik.http.routers.qbit3.rule=Host(`qbit3.nearfuture`)"
|
||||||
|
- "traefik.http.routers.qbit3.entrypoints=web"
|
||||||
|
- "traefik.http.routers.qbit3.service=qbit3"
|
||||||
|
- "traefik.http.services.qbit3.loadbalancer.server.port=8091"
|
||||||
# Qbittorrent-priv
|
# Qbittorrent-priv
|
||||||
- "traefik.http.routers.qbit-priv.rule=Host(`qbit-priv.nearfuture`)"
|
- "traefik.http.routers.qbit-priv.rule=Host(`qbit-priv.nearfuture`)"
|
||||||
- "traefik.http.routers.qbit-priv.entrypoints=web"
|
- "traefik.http.routers.qbit-priv.entrypoints=web"
|
||||||
- "traefik.http.routers.qbit-priv.service=qbit-priv"
|
- "traefik.http.routers.qbit-priv.service=qbit-priv"
|
||||||
- "traefik.http.services.qbit-priv.loadbalancer.server.port=8069"
|
- "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:
|
qbittorrent:
|
||||||
image: lscr.io/linuxserver/qbittorrent:latest
|
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
|
||||||
container_name: qbittorrent
|
container_name: qbittorrent
|
||||||
environment:
|
environment:
|
||||||
- PUID=1029
|
- PUID=1029
|
||||||
@@ -64,16 +80,15 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/qbittorrent:/config
|
- /home/fejy/docker/qbittorrent:/config
|
||||||
- /mnt/LUXURIA/Share:/Share
|
- /mnt/LUXURIA/Share:/Share
|
||||||
- /mnt/LUXURIA/Private:/Private
|
|
||||||
- /mnt/downloads:/downloads/
|
- /mnt/downloads:/downloads/
|
||||||
network_mode: "service:gluetun"
|
network_mode: "service:gluetun"
|
||||||
depends_on:
|
depends_on:
|
||||||
gluetun:
|
gluetun:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
restart: on-failure:2
|
||||||
|
|
||||||
qbittorrent2:
|
qbittorrent2:
|
||||||
image: lscr.io/linuxserver/qbittorrent:latest
|
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
|
||||||
container_name: qbittorrent2
|
container_name: qbittorrent2
|
||||||
environment:
|
environment:
|
||||||
- PUID=1029
|
- PUID=1029
|
||||||
@@ -83,16 +98,32 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/qbittorrent2:/config
|
- /home/fejy/docker/qbittorrent2:/config
|
||||||
- /mnt/LUXURIA/Share:/Share
|
- /mnt/LUXURIA/Share:/Share
|
||||||
- /mnt/LUXURIA/Private:/Private
|
|
||||||
- /mnt/downloads:/downloads/
|
- /mnt/downloads:/downloads/
|
||||||
network_mode: "service:gluetun"
|
network_mode: "service:gluetun"
|
||||||
depends_on:
|
depends_on:
|
||||||
gluetun:
|
gluetun:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
restart: on-failure:2
|
||||||
|
|
||||||
|
qbittorrent3:
|
||||||
|
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
|
||||||
|
container_name: qbittorrent3
|
||||||
|
environment:
|
||||||
|
- PUID=1029
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
- WEBUI_PORT=8091
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/qbittorrent3:/config
|
||||||
|
- /mnt/AVARITIA/Share:/Avaritia/Share
|
||||||
|
network_mode: "service:gluetun"
|
||||||
|
depends_on:
|
||||||
|
gluetun:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: on-failure:2
|
||||||
|
|
||||||
qbittorrent_priv:
|
qbittorrent_priv:
|
||||||
image: lscr.io/linuxserver/qbittorrent:latest
|
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
|
||||||
container_name: qbittorrent_priv
|
container_name: qbittorrent_priv
|
||||||
environment:
|
environment:
|
||||||
- PUID=1029
|
- PUID=1029
|
||||||
@@ -102,25 +133,22 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/qbittorrent_priv:/config
|
- /home/fejy/docker/qbittorrent_priv:/config
|
||||||
- /mnt/LUXURIA/Share:/mnt/LUXURIA/Share
|
- /mnt/LUXURIA/Share:/mnt/LUXURIA/Share
|
||||||
- /mnt/LUXURIA/Private:/mnt/LUXURIA/Private
|
- /mnt/AVARITIA/Private:/mnt/LUXURIA/Private
|
||||||
- /mnt/downloads:/downloads/
|
- /mnt/downloads:/downloads/
|
||||||
network_mode: "service:gluetun"
|
network_mode: "service:gluetun"
|
||||||
depends_on:
|
depends_on:
|
||||||
gluetun:
|
gluetun:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
restart: on-failure:2
|
||||||
|
|
||||||
mam-api:
|
mousehole:
|
||||||
image: myanonamouse/seedboxapi
|
image: tmmrtn/mousehole:latest
|
||||||
container_name: mam-api
|
container_name: mousehole
|
||||||
user: 1029:1000
|
|
||||||
environment:
|
|
||||||
- DEBUG=1
|
|
||||||
#- mam_id=${MAM_KEY}
|
|
||||||
- interval=1
|
|
||||||
volumes:
|
|
||||||
- /home/fejy/docker/mam-api:/config
|
|
||||||
network_mode: "service:gluetun"
|
network_mode: "service:gluetun"
|
||||||
|
environment:
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/mousehole:/srv/mousehole
|
||||||
depends_on:
|
depends_on:
|
||||||
gluetun:
|
gluetun:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|||||||
@@ -2,9 +2,6 @@ services:
|
|||||||
privatebin:
|
privatebin:
|
||||||
container_name: privatebin
|
container_name: privatebin
|
||||||
image: privatebin/nginx-fpm-alpine:1.7.4
|
image: privatebin/nginx-fpm-alpine:1.7.4
|
||||||
ports:
|
|
||||||
- 1992:8080/tcp
|
|
||||||
# read_only: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/privatebin/conf/conf.php:/srv/cfg/conf.php:ro
|
- /home/fejy/docker/privatebin/conf/conf.php:/srv/cfg/conf.php:ro
|
||||||
- /home/fejy/docker/privatebin/data:/srv/data
|
- /home/fejy/docker/privatebin/data:/srv/data
|
||||||
@@ -24,8 +21,7 @@ services:
|
|||||||
- "traefik.http.routers.privatebin-ssl.tls=true"
|
- "traefik.http.routers.privatebin-ssl.tls=true"
|
||||||
- "traefik.http.routers.privatebin-ssl-ext.rule=Host(`privatebin.nearfuture.industries`)"
|
- "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.entrypoints=websecure"
|
||||||
- "traefik.http.routers.privatebin-ssl-ext.tls=true"
|
- "com.centurylinklabs.watchtower.scope=watch"
|
||||||
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|
||||||
@@ -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
68
scrutiny/compose.yml
Normal 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:
|
||||||
@@ -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
|
|
||||||
|
|
||||||
@@ -1,89 +1,55 @@
|
|||||||
# This compose file is compatible with Compose itself, it might need some
|
# This compose file is compatible with Compose itself, it might need some
|
||||||
# adjustments to run properly with stack.
|
# adjustments to run properly with stack.
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
synapse:
|
synapse:
|
||||||
build:
|
|
||||||
context: ../..
|
|
||||||
dockerfile: docker/Dockerfile
|
|
||||||
image: docker.io/matrixdotorg/synapse:latest
|
image: docker.io/matrixdotorg/synapse:latest
|
||||||
# Since synapse does not retry to connect to the database, restart upon
|
container_name: synapse
|
||||||
# failure
|
|
||||||
restart: unless-stopped
|
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:
|
environment:
|
||||||
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
|
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
|
||||||
volumes:
|
volumes:
|
||||||
# You may either store all the files in a local folder
|
|
||||||
- /home/fejy/docker/synapse:/data
|
- /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:
|
depends_on:
|
||||||
- db
|
- synapse_db
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- 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:
|
labels:
|
||||||
# The following lines are valid for Traefik version 1.x:
|
- "traefik.enable=true"
|
||||||
#- traefik.enable=true
|
- "traefik.http.routers.http-synapse.entryPoints=web"
|
||||||
#- traefik.frontend.rule=Host:my.matrix.Host
|
- "traefik.http.routers.http-synapse.rule=Host(`synapse.nearfuture.industries`)"
|
||||||
#- traefik.port=8008
|
- "traefik.http.routers.http-synapse.middlewares=https_redirect"
|
||||||
# Alternatively, for Traefik version 2.0:
|
- "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
|
||||||
- traefik.enable=true
|
- "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
|
||||||
- traefik.http.routers.http-synapse.entryPoints=web
|
- "traefik.http.routers.https-synapse.entryPoints=websecure"
|
||||||
- traefik.http.routers.http-synapse.rule=Host(`synapse.nearfuture.industries`)
|
- "traefik.http.routers.https-synapse.rule=Host(`synapse.nearfuture.industries`)"
|
||||||
- traefik.http.middlewares.https_redirect.redirectscheme.scheme=https
|
- "traefik.http.routers.https-synapse.service=synapse"
|
||||||
- traefik.http.middlewares.https_redirect.redirectscheme.permanent=true
|
- "traefik.http.services.synapse.loadbalancer.server.port=8008"
|
||||||
- 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
|
|
||||||
|
|
||||||
db:
|
synapse_db:
|
||||||
image: docker.io/postgres:12-alpine
|
image: docker.io/postgres:14-alpine
|
||||||
# Change that password, of course!
|
container_name: synapse_db
|
||||||
environment:
|
environment:
|
||||||
- POSTGRES_USER=postgres
|
- POSTGRES_USER=postgres
|
||||||
- POSTGRES_PASSWORD=${POSTGRES_PASS}
|
- 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
|
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
volumes:
|
volumes:
|
||||||
# You may store the database tables in a local folder..
|
|
||||||
- /home/fejy/docker/synapse-db/:/var/lib/postgresql/data
|
- /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:
|
nginx:
|
||||||
image: nginx:1.12-alpine
|
image: nginx:1.12-alpine
|
||||||
|
container_name: synapse_nginx
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- "traefik.enable=true"
|
||||||
- traefik.http.services.matrix.loadbalancer.server.port=80
|
- "traefik.http.services.matrix.loadbalancer.server.port=80"
|
||||||
- traefik.http.routers.matrix.rule=Host(`nearfuture.industries`)
|
- "traefik.http.routers.matrix.rule=Host(`nearfuture.industries`)"
|
||||||
- traefik.http.routers.matrix.entrypoints=websecure
|
- "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
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./nginx/matrix.conf:/etc/nginx/conf.d/matrix.conf
|
- ./nginx/matrix.conf:/etc/nginx/conf.d/matrix.conf
|
||||||
- ./nginx/www:/var/www/
|
- ./nginx/www:/var/www/
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ services:
|
|||||||
- PUID=1029
|
- PUID=1029
|
||||||
- PGID=1000
|
- PGID=1000
|
||||||
- TZ=Etc/UTC
|
- TZ=Etc/UTC
|
||||||
ports:
|
|
||||||
- 8181:8181
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
@@ -17,6 +15,7 @@ services:
|
|||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.tautulli.rule=Host(`tautulli.nearfuture`)"
|
- "traefik.http.routers.tautulli.rule=Host(`tautulli.nearfuture`)"
|
||||||
- "traefik.http.routers.tautulli.entrypoints=web"
|
- "traefik.http.routers.tautulli.entrypoints=web"
|
||||||
|
- "com.centurylinklabs.watchtower.scope=watch"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
|
|||||||
23
thelounge/compose.yml
Normal file
23
thelounge/compose.yml
Normal 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
|
||||||
|
|
||||||
@@ -2,11 +2,6 @@ services:
|
|||||||
traefik:
|
traefik:
|
||||||
image: traefik
|
image: traefik
|
||||||
container_name: traefik
|
container_name: traefik
|
||||||
# command:
|
|
||||||
#- "--api.insecure=true"
|
|
||||||
#- "--providers.docker=true"
|
|
||||||
#- "--providers.docker.exposedbydefault=false"
|
|
||||||
#- "--entrypoints.web.address=:80"
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- NAMECHEAP_API_USER=${NAMECHEAP_USER}
|
- NAMECHEAP_API_USER=${NAMECHEAP_USER}
|
||||||
@@ -14,7 +9,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
- "443:443"
|
- "443:443"
|
||||||
- "8080:8080"
|
- "2128:2128/tcp"
|
||||||
volumes:
|
volumes:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- /home/fejy/docker/traefik:/etc/traefik
|
- /home/fejy/docker/traefik:/etc/traefik
|
||||||
@@ -27,7 +22,8 @@ services:
|
|||||||
- "traefik.http.routers.api.service=api@internal"
|
- "traefik.http.routers.api.service=api@internal"
|
||||||
- "traefik.http.routers.api.rule=Host(`traefik.nearfuture`)"
|
- "traefik.http.routers.api.rule=Host(`traefik.nearfuture`)"
|
||||||
- "traefik.http.routers.api.entrypoints=web"
|
- "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:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
|
|||||||
@@ -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
12
watchtower/compose.yml
Normal 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"
|
||||||
|
|
||||||
@@ -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
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user