Compare commits
24 Commits
36ca607c74
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| a9234426f3 | |||
| 7605047dbd | |||
| eca85225be | |||
| 36274d84f3 | |||
| c890837a79 | |||
| d92fb7629d | |||
| d397d5506d | |||
| e24e04cd36 | |||
| c5239726d5 | |||
| ab3fcb0725 | |||
| 6e38098427 | |||
| 77e42c352f | |||
| 686fff045b | |||
| 7732ed22a7 | |||
| 92e399ddac | |||
| 325e7c6246 | |||
| 3856a76a75 | |||
| bfc06e2206 | |||
| 0b61143bc9 | |||
| daa0adfd4f | |||
| dcea8e6afe | |||
| 5e87919766 | |||
| abaf169941 | |||
| cd92f9be2e |
24
apprise-api/compose.yml
Normal file
24
apprise-api/compose.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
services:
|
||||||
|
apprise-api:
|
||||||
|
image: lscr.io/linuxserver/apprise-api:latest
|
||||||
|
container_name: apprise-api
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/apprise-api/config:/config
|
||||||
|
ports:
|
||||||
|
- 8006:8000
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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
|
||||||
105
arr/compose.yml
Normal file
105
arr/compose.yml
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
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
|
||||||
|
ports:
|
||||||
|
- "7878:7878"
|
||||||
|
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
|
||||||
|
ports:
|
||||||
|
- "8989:8989"
|
||||||
|
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:
|
||||||
72
cross-seed/compose.yml
Normal file
72
cross-seed/compose.yml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
services:
|
||||||
|
cross-seed:
|
||||||
|
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)
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/cross-seed:/config
|
||||||
|
- /mnt/LUXURIA/Share:/Share
|
||||||
|
command: daemon
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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)
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/cross-seed2:/config
|
||||||
|
- /mnt/LUXURIA/Share:/Share
|
||||||
|
command: daemon
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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)
|
||||||
|
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:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
24
dozzle/compose.yml
Normal file
24
dozzle/compose.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
services:
|
||||||
|
dozzle:
|
||||||
|
image: amir20/dozzle:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
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
|
||||||
28
ersatztv/compose.yml
Normal file
28
ersatztv/compose.yml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
services:
|
||||||
|
ersatztv:
|
||||||
|
image: ghcr.io/ersatztv/ersatztv
|
||||||
|
container_name: ersatztv
|
||||||
|
ports:
|
||||||
|
- "8409:8409"
|
||||||
|
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
|
||||||
|
|
||||||
27
excalidraw/compose.yml
Normal file
27
excalidraw/compose.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
services:
|
||||||
|
excalidraw:
|
||||||
|
container_name: excalidraw
|
||||||
|
image: excalidraw/excalidraw:latest
|
||||||
|
environment:
|
||||||
|
- PUID=1029
|
||||||
|
- PGID=1000
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.ex.rule=Host(`excalidraw.nearfuture`)"
|
||||||
|
- "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:
|
||||||
|
proxy:
|
||||||
|
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
|
|
||||||
@@ -2,14 +2,15 @@ services:
|
|||||||
homepage:
|
homepage:
|
||||||
image: ghcr.io/gethomepage/homepage:latest
|
image: ghcr.io/gethomepage/homepage:latest
|
||||||
container_name: homepage
|
container_name: homepage
|
||||||
|
env_file: ".env"
|
||||||
environment:
|
environment:
|
||||||
PUID: 1029 # optional, your user id
|
PUID: 1029
|
||||||
PGID: 1000 # optional, your group id
|
PGID: 988
|
||||||
ports:
|
HOMEPAGE_ALLOWED_HOSTS: home.nearfuture
|
||||||
- 3069:3000
|
|
||||||
volumes:
|
volumes:
|
||||||
- /home/fejy/docker/homepage:/app/config # Make sure your local config directory exists
|
- /home/fejy/docker/homepage/config:/app/config
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
|
- /home/fejy/docker/homepage/icons:/app/public/icons
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
@@ -17,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:
|
||||||
|
|||||||
34
matrix-bots/compose.yml
Normal file
34
matrix-bots/compose.yml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
services:
|
||||||
|
matrix-registration-bot:
|
||||||
|
image: moanos/matrix-registration-bot:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
LOGGING_LEVEL: DEBUG
|
||||||
|
BOT_SERVER: "https://nearfuture.industries"
|
||||||
|
BOT_USERNAME: "registration-bot"
|
||||||
|
BOT_PASSWORD: ${BOT_PW}
|
||||||
|
API_BASE_URL: 'https://synapse.nearfuture.industries'
|
||||||
|
API_TOKEN: ${API_TOK}
|
||||||
|
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
|
||||||
|
environment:
|
||||||
|
R34_API_KEY: ${R34_API_KEY}
|
||||||
|
R34_UID: ${R34_UID}
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.maubot.rule=Host(`maubot.nearfuture`)"
|
||||||
|
- "traefik.http.routers.maubot.entrypoints=web"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
20
pinchflat/compose.yml
Normal file
20
pinchflat/compose.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
services:
|
||||||
|
pinchflat:
|
||||||
|
image: ghcr.io/kieraneglin/pinchflat:latest
|
||||||
|
container_name: pinchflat
|
||||||
|
restart: unless-stopped
|
||||||
|
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=<Grab from security settings>
|
|
||||||
- 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
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
services:
|
|
||||||
portainer:
|
|
||||||
image: portainer/portainer-ce:latest
|
|
||||||
container_name: portainer
|
|
||||||
ports:
|
|
||||||
- 9000:9000
|
|
||||||
volumes:
|
|
||||||
- portainer_data:/data
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- proxy
|
|
||||||
labels:
|
|
||||||
- "traefik.enable=true"
|
|
||||||
- "traefik.http.routers.portainer.rule=Host(`portainer.nearfuture`)"
|
|
||||||
- "traefik.http.routers.portainer.entrypoints=web"
|
|
||||||
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
|
||||||
|
|
||||||
|
|
||||||
networks:
|
|
||||||
proxy:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
portainer_data:
|
|
||||||
30
privatebin/compose.yml
Normal file
30
privatebin/compose.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
services:
|
||||||
|
privatebin:
|
||||||
|
container_name: privatebin
|
||||||
|
image: privatebin/nginx-fpm-alpine:1.7.4
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/privatebin/conf/conf.php:/srv/cfg/conf.php:ro
|
||||||
|
- /home/fejy/docker/privatebin/data:/srv/data
|
||||||
|
user: 1029:1000
|
||||||
|
environment:
|
||||||
|
- PUID=1029
|
||||||
|
- PGID=1000
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.privatebin.rule=Host(`privatebin.nearfuture`)"
|
||||||
|
- "traefik.http.routers.privatebin.entrypoints=web"
|
||||||
|
- "traefik.http.routers.privatebin-ssl.rule=Host(`privatebin.nearfuture`)"
|
||||||
|
- "traefik.http.routers.privatebin-ssl.entrypoints=websecure"
|
||||||
|
- "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"
|
||||||
|
- "com.centurylinklabs.watchtower.scope=watch"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
|
||||||
|
|
||||||
47
scrutiny/compose.yml
Normal file
47
scrutiny/compose.yml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
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`)"
|
||||||
|
|
||||||
|
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
|
|
||||||
|
|
||||||
60
synapse/compose.yml
Normal file
60
synapse/compose.yml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# This compose file is compatible with Compose itself, it might need some
|
||||||
|
# adjustments to run properly with stack.
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
synapse:
|
||||||
|
image: docker.io/matrixdotorg/synapse:latest
|
||||||
|
container_name: synapse
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/synapse:/data
|
||||||
|
depends_on:
|
||||||
|
- synapse_db
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "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"
|
||||||
|
|
||||||
|
synapse_db:
|
||||||
|
image: docker.io/postgres:14-alpine
|
||||||
|
container_name: synapse_db
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=postgres
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASS}
|
||||||
|
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/synapse-db/:/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"
|
||||||
|
volumes:
|
||||||
|
- ./nginx/matrix.conf:/etc/nginx/conf.d/matrix.conf
|
||||||
|
- ./nginx/www:/var/www/
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
|
|
||||||
17
synapse/nginx/matrix.conf
Normal file
17
synapse/nginx/matrix.conf
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
server_name nearfuture.industries;
|
||||||
|
|
||||||
|
# Traefik -> nginx -> synapse
|
||||||
|
location /_matrix {
|
||||||
|
proxy_pass http://synapse:8008;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
client_max_body_size 128m;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /.well-known/matrix/ {
|
||||||
|
root /var/www/;
|
||||||
|
default_type application/json;
|
||||||
|
add_header Access-Control-Allow-Origin *;
|
||||||
|
}
|
||||||
|
}
|
||||||
6
synapse/nginx/www/.well-known/matrix/client
Normal file
6
synapse/nginx/www/.well-known/matrix/client
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"m.homeserver": {
|
||||||
|
"base_url": "https://nearfuture.industries"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
4
synapse/nginx/www/.well-known/matrix/server
Normal file
4
synapse/nginx/www/.well-known/matrix/server
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"m.server": "synapse.nearfuture.industries:443"
|
||||||
|
}
|
||||||
|
|
||||||
23
tautulli/compose.yml
Normal file
23
tautulli/compose.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
services:
|
||||||
|
tautulli:
|
||||||
|
image: ghcr.io/tautulli/tautulli
|
||||||
|
container_name: tautulli
|
||||||
|
volumes:
|
||||||
|
- /home/fejy/docker/tautulli:/config
|
||||||
|
environment:
|
||||||
|
- PUID=1029
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.tautulli.rule=Host(`tautulli.nearfuture`)"
|
||||||
|
- "traefik.http.routers.tautulli.entrypoints=web"
|
||||||
|
- "com.centurylinklabs.watchtower.scope=watch"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
|
|
||||||
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,20 +2,19 @@ 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:
|
||||||
|
- NAMECHEAP_API_USER=${NAMECHEAP_USER}
|
||||||
|
- NAMECHEAP_API_KEY=${NAMECHEAP_KEY}
|
||||||
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
|
||||||
- /home/fejy/docker/traefik-ssl:/ssl
|
- /home/fejy/docker/traefik-ssl:/ssl
|
||||||
|
- /home/fejy/docker/traefik-acme/acme.json:/acme.json
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
labels:
|
labels:
|
||||||
@@ -23,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
|
|
||||||
|
|
||||||
14
watchtower/compose.yml
Normal file
14
watchtower/compose.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
watchtower:
|
||||||
|
image: nickfedor/watchtower
|
||||||
|
container_name: watchtower
|
||||||
|
command: --cleanup=true --scope watch
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- DOCKER_API_VERSION="1.49"
|
||||||
|
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