Compare commits

..

3 Commits

Author SHA1 Message Date
20c81207f1 Updates Mar 28 2026
Adding new cross-seed instance
Adding external access to excalidraw
Updated matrix-bots to include R34 API info (in .env file)
Prevent qbittorrent clients from auto-restarting
Adding homepage url environment variable
2026-03-28 19:34:30 +00:00
69da8704ee Adding qbit3
Updating gluetun to use airvpn
moving *arr services to a single stack
2026-03-28 19:34:30 +00:00
8054869921 Cleaned up some missing services by removing sensitive data into .env files 2026-03-28 19:34:30 +00:00
11 changed files with 349 additions and 8 deletions

109
arr/compose.yml Normal file
View File

@@ -0,0 +1,109 @@
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"
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
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"
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
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"
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"
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
ports:
- 8686:8686
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.lidarr.rule=Host(`lidarr.nearfuture`)"
- "traefik.http.routers.lidarr.entrypoints=web"
networks:
proxy:
external: true

View File

@@ -33,6 +33,40 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.cross-seed2.rule=Host(`cross-seed2.nearfuture`)"
- "traefik.http.routers.cross-seed2.entrypoints=web"
cross-seed3:
image: ghcr.io/cross-seed/cross-seed:6
container_name: cross-seed3
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
ports:
- "2470:2468"
volumes:
- /home/fejy/docker/cross-seed3:/config
- /mnt/AVARITIA/Share:/Avaritia/Share/
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"
cross-seed-priv:
image: ghcr.io/cross-seed/cross-seed:6
container_name: cross-seed-priv
user: 1029:1000 # this must match your torrent client (cross-seed does not support using PGID and PUID)
ports:
- "2471:2468"
volumes:
- /home/fejy/docker/cross-seed-priv:/config
- /mnt/LUXURIA/Private:/mnt/LUXURIA/Private
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"
networks:

View File

@@ -12,8 +12,15 @@ services:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.excalidraw.rule=Host(`excalidraw.nearfuture`)"
- "traefik.http.routers.excalidraw.entrypoints=web"
- "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"
networks:
proxy:

View File

@@ -6,6 +6,7 @@ services:
environment:
PUID: 1029 # optional, your user id
PGID: 994 # optional, your group id
HOMEPAGE_ALLOWED_HOSTS: home.nearfuture
ports:
- 3069:3000
volumes:

36
matrix-bots/compose.yml Normal file
View File

@@ -0,0 +1,36 @@
services:
matrix-registration-bot:
image: moanos/matrix-registration-bot:latest
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
ports:
- 29316:29316
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

View File

@@ -15,6 +15,7 @@ services:
- 8388:8388/udp # Gluetun's built-in Shadowsocks server
- 8089:8089/tcp # Qbittorrent web-ui
- 8090:8090/tcp # Qbittorrent2 web-gui
- 8091:8091/tcp # Qbittorrent3 web-gui
- 8069:8069/tcp # Qbittorrent_priv web-gui
- 3000:3000 # Firefox desktop gui
- 3001:3001 # Firefox desktop gui HTTPS
@@ -22,14 +23,19 @@ services:
- /home/fejy/docker/gluetun:/gluetun
environment:
# See https://github.com/qdm12/gluetun-wiki/tree/main/setup#setup
- VPN_SERVICE_PROVIDER=mullvad
- VPN_SERVICE_PROVIDER=airvpn
- VPN_TYPE=wireguard
# Wireguard:
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIV_KEY}
- WIREGUARD_PRESHARED_KEY=${WIREGUARD_PSHARE_KEY}
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDR}
- SERVER_CITIES=Amsterdam
- SERVER_CITIES=Alblasserdam
- HTTP_CONTROL_SERVER_ADDRESS=:8000
- HTTP_CONTROL_SERVER_LOG=ON
- DOT=off
- BLOCK_MALICIOUS=off
- BLOCK_SURVEILLANCE=off
- BLOCK_ADS=off
restart: unless-stopped
networks:
- proxy
@@ -47,6 +53,11 @@ services:
- "traefik.http.routers.qbit2.entrypoints=web"
- "traefik.http.routers.qbit2.service=qbit2"
- "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
- "traefik.http.routers.qbit-priv.rule=Host(`qbit-priv.nearfuture`)"
- "traefik.http.routers.qbit-priv.entrypoints=web"
@@ -70,7 +81,7 @@ services:
depends_on:
gluetun:
condition: service_healthy
restart: unless-stopped
#restart: unless-stopped
qbittorrent2:
image: lscr.io/linuxserver/qbittorrent:latest
@@ -89,7 +100,25 @@ services:
depends_on:
gluetun:
condition: service_healthy
restart: unless-stopped
#restart: unless-stopped
qbittorrent3:
image: lscr.io/linuxserver/qbittorrent:latest
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: unless-stopped
qbittorrent_priv:
image: lscr.io/linuxserver/qbittorrent:latest
@@ -108,7 +137,7 @@ services:
depends_on:
gluetun:
condition: service_healthy
restart: unless-stopped
#restart: unless-stopped
mam-api:
image: myanonamouse/seedboxapi
@@ -116,7 +145,7 @@ services:
user: 1029:1000
environment:
- DEBUG=1
#- mam_id=<Grab from security settings>
#- mam_id=${MAM_KEY}
- interval=1
volumes:
- /home/fejy/docker/mam-api:/config

94
synapse/compose.yml Normal file
View File

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

View File

@@ -0,0 +1,6 @@
{
"m.homeserver": {
"base_url": "https://nearfuture.industries"
}
}

View File

@@ -0,0 +1,4 @@
{
"m.server": "synapse.nearfuture.industries:443"
}

View File

@@ -8,6 +8,9 @@ services:
#- "--providers.docker.exposedbydefault=false"
#- "--entrypoints.web.address=:80"
restart: unless-stopped
environment:
- NAMECHEAP_API_USER=${NAMECHEAP_USER}
- NAMECHEAP_API_KEY=${NAMECHEAP_KEY}
ports:
- "80:80"
- "443:443"
@@ -16,6 +19,7 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
- /home/fejy/docker/traefik:/etc/traefik
- /home/fejy/docker/traefik-ssl:/ssl
- /home/fejy/docker/traefik-acme/acme.json:/acme.json
networks:
- proxy
labels: