Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 02799b4aa0 | |||
| 209da35c96 | |||
| bcb9a51b7b | |||
| 6c655d113b | |||
| c5ea2abc66 | |||
| 9ccefc8ed3 | |||
| e232b7099a | |||
| 0f696de680 | |||
| fe6a9e12bd | |||
| ffe0ad3304 | |||
| 7f682dc66a | |||
| 3631009eba | |||
| 966323fa9e | |||
| 25a0e65267 | |||
| b28a609f77 | |||
| a8c47eb96d | |||
| a8cb2974be | |||
| d1c3c51f9a | |||
| b91696275d | |||
| bb4f386989 | |||
| 11043246cb | |||
| 7a259b340d | |||
| 32ccef63cf | |||
| 20f40464c7 | |||
| abfd320791 | |||
| 0efcf40812 | |||
| a27d66eab9 | |||
| a639afe90b | |||
| 69ee20aa75 | |||
| 16f94987a9 | |||
| 9d672044cc | |||
| 9dc0495132 | |||
| e26d009253 | |||
| 374dda540e | |||
| c5da9593de | |||
| fde3a018b2 | |||
| a260c1f1ca | |||
| 0d0cc5d1c3 | |||
| 94d26e2af1 | |||
| d74284eb65 | |||
| 692eef096b | |||
| cada184738 | |||
| c804bb6dab | |||
| 9d45ee9e88 |
@@ -56,14 +56,16 @@ jobs:
|
||||
gotify_app_token: '${{ secrets.RINOA_RUNNER_GOTIFY_TOKEN }}'
|
||||
notification_title: 'GITEA: PR Check'
|
||||
notification_message: 'PR Created 🎟️'
|
||||
docker-compose-ansible-lints:
|
||||
name: Docker Compose & Ansible Lints
|
||||
docker-compose-dry-run:
|
||||
name: Docker Compose Dry Run
|
||||
needs: [check-and-create-pr]
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
|
||||
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
VAULT_NAMESPACE: ""
|
||||
outputs:
|
||||
svc_deploy_list: ${{ steps.modded_svcs.outputs.rinoa_svcs }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@@ -122,13 +124,16 @@ jobs:
|
||||
echo ${mod_svcs}
|
||||
vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)='\''\(.[$k])'\''"' > .env
|
||||
echo "rinoa_svcs=${mod_svcs}" >> "$GITHUB_OUTPUT"
|
||||
- name: Testing service list output
|
||||
run: |
|
||||
echo ${{ steps.modded_svcs.outputs.rinoa_svcs }}
|
||||
- name: Docker Compose Dry Run
|
||||
timeout-minutes: 360
|
||||
continue-on-error: true
|
||||
uses: keatonLiu/docker-compose-remote-action@v1.2
|
||||
with:
|
||||
docker_compose_file: docker-compose.yml
|
||||
docker_args: -d --remove-orphans --pull missing --no-recreate ${{ steps.modded_svcs.rinoa_svcs.output }}
|
||||
docker_args: -d --remove-orphans --pull missing ${{ steps.modded_svcs.outputs.rinoa_svcs }}
|
||||
ssh_user: gitea-deploy
|
||||
ssh_host: 192.168.1.254
|
||||
ssh_host_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }}
|
||||
@@ -282,8 +287,8 @@ jobs:
|
||||
gotify_app_token: '${{ secrets.RINOA_RUNNER_GOTIFY_TOKEN }}'
|
||||
notification_title: 'GITEA: PR Merge Successful'
|
||||
notification_message: 'PR #${{ steps.pr_merge.outputs.pr_index }} merged.'
|
||||
ansible-config-docker-compose-deploy:
|
||||
name: Ansible Configs & Docker Compose Deployment
|
||||
docker-compose-deploy:
|
||||
name: Docker Compose Deployment
|
||||
runs-on: ubuntu-latest
|
||||
needs: [pr-merge]
|
||||
env:
|
||||
@@ -310,7 +315,7 @@ jobs:
|
||||
- name: Login to Gitea Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: git.trez.wtf
|
||||
registry: https://git.trez.wtf
|
||||
username: gitea-sonarqube-bot
|
||||
password: ${{ secrets.BOT_GITEA_TOKEN }}
|
||||
- name: Gotify Notification
|
||||
@@ -329,7 +334,7 @@ jobs:
|
||||
uses: keatonLiu/docker-compose-remote-action@v1.2
|
||||
with:
|
||||
docker_compose_file: docker-compose.yml
|
||||
docker_args: -d --remove-orphans --pull missing --no-recreate
|
||||
docker_args: -d --remove-orphans --pull missing ${{ docker-compose-dry-run.outputs.svc_deploy_list }}
|
||||
ssh_user: gitea-deploy
|
||||
ssh_host: 192.168.1.254
|
||||
ssh_host_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }}
|
||||
|
||||
@@ -14,14 +14,11 @@
|
||||
| bazarr | lscr.io/linuxserver/bazarr:latest |
|
||||
| beszel | henrygd/beszel:latest |
|
||||
| beszel-agent | henrygd/beszel-agent:latest |
|
||||
| bitmagnet | ghcr.io/bitmagnet-io/bitmagnet:latest |
|
||||
| bitmagnet-pg-db | postgres:17-alpine |
|
||||
| bitwarden | vaultwarden/server:latest |
|
||||
| bluesky-pds | code.modernleft.org/gravityfargo/bluesky-pds:v0.4.98 |
|
||||
| browserless | ghcr.io/browserless/chromium:latest |
|
||||
| bytestash | ghcr.io/jordan-dalby/bytestash:latest |
|
||||
| castopod | castopod/castopod:latest |
|
||||
| cloudflared | cloudflare/cloudflared:latest |
|
||||
| cloudflareddns | ghcr.io/hotio/cloudflareddns:latest |
|
||||
| convertx | ghcr.io/c4illin/convertx |
|
||||
| cronicle | elestio/cronicle:latest |
|
||||
@@ -33,7 +30,6 @@
|
||||
| dawarich-pg-db | postgis/postgis:17-3.5-alpine |
|
||||
| dawarich-sidekiq | freikin/dawarich:latest |
|
||||
| dead-man-hand | ghcr.io/bkupidura/dead-man-hand:latest |
|
||||
| delugevpn | ghcr.io/binhex/arch-delugevpn:latest |
|
||||
| docker-socket-proxy | ghcr.io/tecnativa/docker-socket-proxy:latest |
|
||||
| duplicati | lscr.io/linuxserver/duplicati:latest |
|
||||
| excalidraw | excalidraw/excalidraw:latest |
|
||||
@@ -114,6 +110,7 @@
|
||||
| postal-web | ghcr.io/postalserver/postal:latest |
|
||||
| postal-worker | ghcr.io/postalserver/postal:latest |
|
||||
| prowlarr | lscr.io/linuxserver/prowlarr:latest |
|
||||
| qbittorrentvpn | ghcr.io/binhex/arch-qbittorrentvpn:latest |
|
||||
| radarec | thewicklowwolf/radarec:latest |
|
||||
| radarr | lscr.io/linuxserver/radarr:latest |
|
||||
| reactive-resume | amruthpillai/reactive-resume:latest |
|
||||
@@ -122,6 +119,7 @@
|
||||
| redis | redis:alpine |
|
||||
| redlib | quay.io/redlib/redlib:latest |
|
||||
| rocketchat | registry.rocket.chat/rocketchat/rocket.chat:latest |
|
||||
| romm | rommapp/romm:latest |
|
||||
| sabnzbdvpn | ghcr.io/binhex/arch-sabnzbdvpn:latest |
|
||||
| scraperr | jpyles0524/scraperr:latest |
|
||||
| scraperr-api | jpyles0524/scraperr_api:latest |
|
||||
|
||||
@@ -53,4 +53,4 @@ layout:
|
||||
columns: 2
|
||||
Media Library:
|
||||
style: row
|
||||
columns: 4
|
||||
columns: 3
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# This is a generic example of a configuration file
|
||||
# Rename this file to `config.yml`, copy it to a `config` folder, and mount that folder as per the docker-compose.example.yml
|
||||
# Only uncomment the lines you want to use/modify, or add new ones where needed
|
||||
|
||||
exclude:
|
||||
# Exclude platforms to be scanned
|
||||
platforms: [] # ['my_excluded_platform_1', 'my_excluded_platform_2']
|
||||
|
||||
# Exclude roms or parts of roms to be scanned
|
||||
roms:
|
||||
# Single file games section.
|
||||
# Will not apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.)
|
||||
single_file:
|
||||
# Exclude all files with certain extensions to be scanned
|
||||
extensions: [] # ['xml', 'txt']
|
||||
|
||||
# Exclude matched file names to be scanned.
|
||||
# Supports unix filename pattern matching
|
||||
# Can also exclude files by extension
|
||||
names: [] # ['info.txt', '._*', '*.nfo']
|
||||
|
||||
# Multi files games section
|
||||
# Will apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.)
|
||||
multi_file:
|
||||
# Exclude matched 'folder' names to be scanned (RomM identifies folders as multi file games)
|
||||
names: [] # ['my_multi_file_game', 'DLC']
|
||||
|
||||
# Exclude files within sub-folders.
|
||||
parts:
|
||||
# Exclude matched file names to be scanned from multi file roms
|
||||
# Keep in mind that RomM doesn't scan folders inside multi files games,
|
||||
# so there is no need to exclude folders from inside of multi files games.
|
||||
names: [] # ['data.xml', '._*'] # Supports unix filename pattern matching
|
||||
|
||||
# Exclude all files with certain extensions to be scanned from multi file roms
|
||||
extensions: [] # ['xml', 'txt']
|
||||
|
||||
system:
|
||||
# Asociate different platform names to your current file system platform names
|
||||
# [your custom platform folder name]: [RomM platform name]
|
||||
# In this example if you have a 'gc' folder, RomM will treat it like the 'ngc' folder and if you have a 'psx' folder, RomM will treat it like the 'ps' folder
|
||||
platforms: {} # { gc: 'ngc', psx: 'ps' }
|
||||
|
||||
# Asociate one platform to it's main version
|
||||
versions: {} # { naomi: 'arcade' }
|
||||
|
||||
# The folder name where your roms are located
|
||||
filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is /home/user/library/roms_folder
|
||||
+253
-164
@@ -423,80 +423,6 @@ services:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- /rinoa-storage:/extra-filesystems/rinoa-storage:ro
|
||||
- /dev/nvme0n1:/extra-filesystems/nvme0n1:ro
|
||||
bitmagnet:
|
||||
command:
|
||||
- worker
|
||||
- run
|
||||
- --keys=http_server
|
||||
- --keys=queue_server
|
||||
- --keys=dht_crawler
|
||||
container_name: bitmagnet
|
||||
depends_on:
|
||||
bitmagnet-pg-db:
|
||||
condition: service_healthy
|
||||
required: true
|
||||
gluetun:
|
||||
condition: service_started
|
||||
required: true
|
||||
restart: true
|
||||
environment:
|
||||
LOG_FILE_ROTATION_ENABLED: true
|
||||
POSTGRES_HOST: bitmagnet-pg-db
|
||||
POSTGRES_PASSWORD: ${BITMAGNET_POSTGRESQL_PASSWORD}
|
||||
POSTGRES_USER: bitmagnet
|
||||
image: ghcr.io/bitmagnet-io/bitmagnet:latest
|
||||
labels:
|
||||
homepage.group: Downloaders
|
||||
homepage.name: Bitmagnet
|
||||
homepage.href: https://btmag.${MY_TLD}
|
||||
homepage.icon: sh-bitmagnet.png
|
||||
homepage.description: Torrent indexer, DHT crawler, search engine, & content classifier
|
||||
homepage.widget.type: gluetun
|
||||
homepage.widget.url: http://gluetun:8000
|
||||
swag: enable
|
||||
swag_proto: http
|
||||
swag_address: gluetun
|
||||
swag_auth: authelia
|
||||
swag_auth_bypass: /v1
|
||||
swag_port: 3333
|
||||
swag_url: btmag.${MY_TLD}
|
||||
swag_server_custom_directive: |
|
||||
access_log /config/log/$$host_access.log ;
|
||||
error_log /config/log/$$host_error.log ;
|
||||
network_mode: service:gluetun
|
||||
restart: always
|
||||
volumes:
|
||||
- source: ${DOCKER_VOLUME_CONFIG}/bitmagnet
|
||||
target: /root/.local/share/bitmagnet
|
||||
type: bind
|
||||
bind:
|
||||
create_host_path: true
|
||||
bitmagnet-pg-db:
|
||||
container_name: bitmagnet-pg-db
|
||||
environment:
|
||||
POSTGRES_DB: bitmagnet
|
||||
POSTGRES_PASSWORD: ${BITMAGNET_POSTGRESQL_PASSWORD}
|
||||
POSTGRES_USER: bitmagnet
|
||||
expose:
|
||||
- 5432
|
||||
healthcheck:
|
||||
interval: 10s
|
||||
start_period: 20s
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- pg_isready
|
||||
image: postgres:17-alpine
|
||||
networks:
|
||||
bitmagnet:
|
||||
ipv4_address: 192.168.55.8
|
||||
default: null
|
||||
restart: unless-stopped
|
||||
shm_size: 1g
|
||||
volumes:
|
||||
- source: bitmagnet-pg-db
|
||||
target: /var/lib/postgresql/data
|
||||
type: volume
|
||||
volume: {}
|
||||
bitwarden:
|
||||
container_name: bitwarden
|
||||
environment:
|
||||
@@ -694,15 +620,6 @@ services:
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
cloudflared:
|
||||
command: ['tunnel', '--no-autoupdate', 'run', '--token', '${CLOUDFLARED_TUNNEL_TOKEN}']
|
||||
container_name: cloudflared
|
||||
environment:
|
||||
CLOUDFLARED_TUNNEL_KEY: ${CLOUDFLARED_TUNNEL_TOKEN}
|
||||
image: 'cloudflare/cloudflared:latest'
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${DOCKER_VOLUME_CONFIG}/cloudflared:/etc/cloudflared
|
||||
cloudflareddns:
|
||||
container_name: cloudflareddns
|
||||
environment:
|
||||
@@ -1088,83 +1005,29 @@ services:
|
||||
- ${DOCKER_VOLUME_CONFIG}/dawarich/sidekiq-entrypoint.sh:/usr/local/bin/sidekiq-entrypoint.sh
|
||||
dead-man-hand:
|
||||
container_name: dead-man-hand
|
||||
image: ghcr.io/bkupidura/dead-man-hand:latest
|
||||
environment:
|
||||
DMH_CONFIG_FILE: /data/config.yaml
|
||||
image: 'ghcr.io/bkupidura/dead-man-hand:latest'
|
||||
ports:
|
||||
- '8080:8080'
|
||||
volumes:
|
||||
- ${DOCKER_VOLUME_CONFIG}/dead-man-hand/data:/data
|
||||
delugevpn:
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
container_name: delugevpn
|
||||
environment:
|
||||
ENABLE_PRIVOXY: "no"
|
||||
LAN_NETWORK: 192.168.1.0/24
|
||||
NAME_SERVERS: 192.168.1.254,1.1.1.1
|
||||
PGID: "1000"
|
||||
PUID: "1000"
|
||||
TZ: America/New_York
|
||||
VPN_CLIENT: openvpn
|
||||
VPN_ENABLED: "yes"
|
||||
VPN_INPUT_PORTS: ""
|
||||
VPN_OPTIONS: ""
|
||||
VPN_OUTPUT_PORTS: ""
|
||||
VPN_PASS: ${DELUGEVPN_ENVIRONMENT_VPN_PASS}
|
||||
VPN_PROV: pia
|
||||
VPN_USER: ${DELUGEVPN_ENVIRONMENT_VPN_USER}
|
||||
hostname: Rinoa
|
||||
image: ghcr.io/binhex/arch-delugevpn:latest
|
||||
labels:
|
||||
homepage.group: Downloaders
|
||||
homepage.name: DelugeVPN
|
||||
homepage.href: https://deluge.${MY_TLD}
|
||||
homepage.icon: deluge.png
|
||||
homepage.description: Torrent over VPN
|
||||
homepage.widget.type: deluge
|
||||
homepage.widget.url: http://delugevpn:8112
|
||||
homepage.widget.password: ${DELUGEVPN_PASSWORD}
|
||||
# homepage.group: Personal/Professional Services
|
||||
# homepage.name: Dawarich
|
||||
# homepage.href: https://loc.${MY_TLD}
|
||||
# homepage.icon: dawarich.svg
|
||||
# homepage.description: Self-hosted alternative to Google Location History
|
||||
swag: enable
|
||||
swag_port: 8112
|
||||
swag_port: 8080
|
||||
swag_proto: http
|
||||
swag_url: deluge.${MY_TLD}
|
||||
swag_url: dms.${MY_TLD}
|
||||
swag_server_custom_directive: |
|
||||
access_log /config/log/$$host_access.log ;
|
||||
error_log /config/log/$$host_error.log ;
|
||||
swag.uptime-kuma.enabled: true
|
||||
swag.uptime-kuma.monitor.url: https://deluge.${MY_TLD}
|
||||
swag.uptime-kuma.monitor.url: https://dms.${MY_TLD}
|
||||
swag.uptime-kuma.monitor.interval: 300
|
||||
networks:
|
||||
default: null
|
||||
ports:
|
||||
- 58846:58846
|
||||
- 58946:58946
|
||||
- 6881:6881
|
||||
- 8112:8112
|
||||
- 8118:8118
|
||||
privileged: true
|
||||
restart: unless-stopped
|
||||
sysctls:
|
||||
net.ipv4.conf.all.src_valid_mark: "1"
|
||||
- 25807:8080
|
||||
volumes:
|
||||
- bind:
|
||||
create_host_path: true
|
||||
read_only: true
|
||||
source: /etc/localtime
|
||||
target: /etc/localtime
|
||||
type: bind
|
||||
- bind:
|
||||
create_host_path: true
|
||||
source: ${DOCKER_VOLUME_CONFIG}/delugevpn
|
||||
target: /config
|
||||
type: bind
|
||||
- bind:
|
||||
create_host_path: true
|
||||
source: /rinoa-storage
|
||||
target: /storage
|
||||
type: bind
|
||||
- ${DOCKER_VOLUME_CONFIG}/dead-man-hand:/data
|
||||
docker-socket-proxy:
|
||||
container_name: dockerproxy
|
||||
environment:
|
||||
@@ -1279,7 +1142,7 @@ services:
|
||||
explo:
|
||||
container_name: explo
|
||||
environment:
|
||||
CRON_SCHEDULE: 15 00 * * 2 # Runs weekly, every Tuesday 15 minutes past midnight (UTC time)
|
||||
CRON_SCHEDULE: 0 8 * * 2 # Runs weekly, every Tuesday 15 minutes past midnight (UTC time)
|
||||
# Music system you use (emby, jellyfin, mpd, plex or subsonic)
|
||||
EXPLO_SYSTEM: subsonic
|
||||
SYSTEM_URL: http://navidrome:4533
|
||||
@@ -1300,9 +1163,9 @@ services:
|
||||
# 'playlist' to get tracks from Weekly Exploration playlist, anything else gets it from API (not the best recommendations). 'test' will download 1 song
|
||||
LISTENBRAINZ_DISCOVERY: playlist
|
||||
# Time to sleep (in minutes) between scanning and querying tracks from your system (If using Subsonic, Jellyfin)
|
||||
# SLEEP=2
|
||||
SLEEP: 5
|
||||
# Whether to provide additional info for debugging
|
||||
# DEBUG=false
|
||||
DEBUG: true
|
||||
SINGLE_ARTIST: true
|
||||
image: ghcr.io/lumepart/explo:latest
|
||||
restart: unless-stopped
|
||||
@@ -3905,12 +3768,12 @@ services:
|
||||
access_log /config/log/$$host_access.log ;
|
||||
error_log /config/log/$$host_error.log ;
|
||||
swag.uptime-kuma.enabled: true
|
||||
swag.uptime-kuma.monitor.url: https://portall.${MY_TLD}
|
||||
swag.uptime-kuma.monitor.url: https://ports.${MY_TLD}
|
||||
swag.uptime-kuma.monitor.interval: 300
|
||||
homepage.group: System Administration
|
||||
homepage.name: PortNote
|
||||
homepage.href: https://portall.${MY_TLD}
|
||||
homepage.icon: /icons/portnote.png
|
||||
homepage.href: https://ports.${MY_TLD}
|
||||
homepage.icon: port-note.png
|
||||
homepage.description: Management for container ports
|
||||
ports:
|
||||
- 23186:3000
|
||||
@@ -4048,6 +3911,64 @@ services:
|
||||
source: /rinoa-storage
|
||||
target: /storage
|
||||
type: bind
|
||||
qbittorrentvpn:
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
container_name: qbittorrentvpn
|
||||
environment:
|
||||
ENABLE_PRIVOXY: yes
|
||||
ENABLE_SOCKS: yes
|
||||
LAN_NETWORK: 192.168.1.0/24
|
||||
NAME_SERVERS: 192.168.1.254,1.1.1.1
|
||||
PGID: ${PGID}
|
||||
PUID: ${PUID}
|
||||
SOCKS_USER: admin
|
||||
SOCKS_PASS: socks
|
||||
TZ: ${TZ}
|
||||
VPN_CLIENT: openvpn
|
||||
VPN_ENABLED: "yes"
|
||||
VPN_INPUT_PORTS: ""
|
||||
VPN_OPTIONS: ""
|
||||
VPN_OUTPUT_PORTS: ""
|
||||
VPN_PASS: ${DELUGEVPN_ENVIRONMENT_VPN_PASS}
|
||||
VPN_PROV: pia
|
||||
VPN_USER: ${DELUGEVPN_ENVIRONMENT_VPN_USER}
|
||||
WEBUI_PORT: 8080
|
||||
image: ghcr.io/binhex/arch-qbittorrentvpn:latest
|
||||
labels:
|
||||
homepage.group: Downloaders
|
||||
homepage.name: qBittorrent
|
||||
homepage.href: https://qbit.${MY_TLD}
|
||||
homepage.icon: qBittorrent.svg
|
||||
homepage.description: qbittorrentvpn over VPN
|
||||
homepage.widget.type: qbittorrent
|
||||
homepage.widget.url: http://qbittorrentvpn:8080
|
||||
homepage.widget.user: admin
|
||||
homepage.widget.password: ${DELUGEVPN_PASSWORD}
|
||||
swag: enable
|
||||
swag_port: 8080
|
||||
swag_proto: http
|
||||
swag_url: qbit.${MY_TLD}
|
||||
swag_server_custom_directive: |
|
||||
access_log /config/log/$$host_access.log ;
|
||||
error_log /config/log/$$host_error.log ;
|
||||
swag.uptime-kuma.enabled: true
|
||||
swag.uptime-kuma.monitor.url: https://qbit.${MY_TLD}
|
||||
swag.uptime-kuma.monitor.interval: 300
|
||||
ports:
|
||||
- 58846:58846
|
||||
- 58946:58946/udp
|
||||
- 8118:8118
|
||||
- 9118:9118
|
||||
- 38927:8080
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${DOCKER_VOLUME_CONFIG}/.openvpn:/config/openvpn
|
||||
- ${DOCKER_VOLUME_CONFIG}/qbittorrent/:/config
|
||||
- ${DOCKER_VOLUME_CONFIG}/qbittorrent/data:/data
|
||||
- ${DOCKER_VOLUME_STORAGE}/downloads:/downloads
|
||||
radarec:
|
||||
container_name: radarec
|
||||
environment:
|
||||
@@ -4382,6 +4303,75 @@ services:
|
||||
swag.uptime-kuma.monitor.url: https://chat.${MY_TLD}
|
||||
swag.uptime-kuma.monitor.interval: 300
|
||||
restart: always
|
||||
romm:
|
||||
container_name: romm
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_started
|
||||
restart: true
|
||||
image: rommapp/romm:latest
|
||||
environment:
|
||||
ROMM_DB_DRIVER: mariadb # mariadb | sqlite (default: sqlite)
|
||||
ROMM_HOST: https://localhost:3000 # [Optional] your host ip or domain name (including http(s)://, subdomain and port if needed). Being used only for webRcade feed for now.
|
||||
# [Optional] Only required if using MariaDB as the database
|
||||
DB_HOST: mariadb
|
||||
DB_PORT: 3306
|
||||
DB_USER: romm
|
||||
DB_NAME: romm # Should match the MYSQL_DATABASE value in the mariadb container
|
||||
DB_PASSWD: ${ROMM_MARIADB_PASSWORD}
|
||||
# [Optional WIP] Use SteamGridDB as a source for covers
|
||||
# STEAMGRIDDB_API_KEY: <SteamGridDB api key>
|
||||
# [Optional] Will enable user management and require authentication to access the interface (disabled by default)
|
||||
ROMM_AUTH_ENABLED: true # default: false
|
||||
ROMM_AUTH_SECRET_KEY: ${ROMM_AUTH_SECRET_KEY} # Generate a key with `openssl rand -hex 32`
|
||||
ROMM_AUTH_USERNAME: admin # default: admin
|
||||
ROMM_AUTH_PASSWORD: ${ROMM_AUTH_PASSWORD} # default: admin
|
||||
# [Optional] Only required if authentication is enabled
|
||||
ENABLE_EXPERIMENTAL_REDIS: false # default: false
|
||||
# REDIS_HOST: redis # default: localhost
|
||||
# REDIS_PORT: 6379 # default: 6379
|
||||
# REDIS_PASSWORD: # [Optional] Support for secured redis
|
||||
# [Optional] Will enable asynchronous tasks (all disabled by default)
|
||||
# Important: Do NOT wrap the cron expression in quotes
|
||||
ENABLE_RESCAN_ON_FILESYSTEM_CHANGE: true # Runs a quick scan on the library when a file is added or removed
|
||||
RESCAN_ON_FILESYSTEM_CHANGE_DELAY: 5 # Delay in seconds before running the quick scan (default: 5)
|
||||
ENABLE_SCHEDULED_RESCAN: true # Runs a quick scan on the library at a given time
|
||||
SCHEDULED_RESCAN_CRON: 0 3 * * * # Cron expression for the scheduled scan (default: 0 3 * * * At 3:00 AM every day)
|
||||
ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB: true # Updates the Switch TitleDB database at a given time
|
||||
SCHEDULED_UPDATE_SWITCH_TITLEDB_CRON: 0 4 * * * # Cron expression for the scheduled update (default: 0 4 * * * At 4:00 AM every day)
|
||||
ENABLE_SCHEDULED_UPDATE_MAME_XML: true # Updates the MAME XML database at a given time
|
||||
SCHEDULED_UPDATE_MAME_XML_CRON: 0 5 * * * # Cron expression for the scheduled update (default: 0 5 * * * At 5:00 AM every day)
|
||||
IGDB_CLIENT_ID: ${ROMM_IGDB_CLIENT_ID} # Generate an ID and SECRET in IGDB
|
||||
IGDB_CLIENT_SECRET: ${ROMM_IGDB_CLIENT_SECRET} # https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#igdb
|
||||
MOBYGAMES_API_KEY: # https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#mobygames
|
||||
STEAMGRIDDB_API_KEY: ${ROMM_STEAMGRIDDB_API_KEY} # https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#steamgriddb
|
||||
SCREENSCRAPER_USER: ${ROMM_SCREENSCRAPER_USERNAME} # Use your ScreenScraper username and password
|
||||
SCREENSCRAPER_PASSWORD: ${ROMM_SCREENSCRAPER_PASSWORD} # https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#screenscraper
|
||||
labels:
|
||||
homepage.group: Media Library
|
||||
homepage.name: RomM
|
||||
homepage.href: https://romm.${MY_TLD}
|
||||
homepage.icon: romm.svg
|
||||
homepage.description: Beautiful, powerful, self-hosted ROM manager
|
||||
homepage.widget.type: romm
|
||||
homepage.widget.url: http://romm:8080
|
||||
swag: enable
|
||||
swag_proto: http
|
||||
swag_url: romm.${MY_TLD}
|
||||
swag_server_custom_directive: |
|
||||
access_log /config/log/$$host_access.log ;
|
||||
error_log /config/log/$$host_error.log ;
|
||||
swag.uptime-kuma.enabled: true
|
||||
swag.uptime-kuma.monitor.url: https://romm.${MY_TLD}
|
||||
swag.uptime-kuma.monitor.interval: 300
|
||||
ports:
|
||||
- 30229:8080
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- romm_resources:/romm/resources # Resources fetched from IGDB (covers, screenshots, etc.)
|
||||
- ${DOCKER_VOLUME_STORAGE}/roms:/romm/library # Your game library. Check https://github.com/rommapp/romm?tab=readme-ov-file#folder-structure for more details.
|
||||
- ${DOCKER_VOLUME_STORAGE}/roms/assets:/romm/assets # Uploaded saves, states, etc.
|
||||
- ${DOCKER_VOLUME_CONFIG}/romm:/romm/config # Path where config.yml is stored
|
||||
sabnzbdvpn:
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
@@ -4451,6 +4441,33 @@ services:
|
||||
source: /rinoa-storage
|
||||
target: /storage
|
||||
type: bind
|
||||
sablier:
|
||||
container_name: sablier
|
||||
depends_on:
|
||||
swag:
|
||||
condition: service_started
|
||||
required: true
|
||||
environment:
|
||||
PROVIDER_NAME: docker
|
||||
SERVER_PORT: 10000
|
||||
SERVER_BASE_PATH: /
|
||||
STORAGE_FILE: /opt/sablier/state
|
||||
SESSIONS_DEFAULT_DURATION: 5m
|
||||
SESSIONS_EXPIRATION_INTERVAL: 20s
|
||||
LOGGING_LEVEL: trace
|
||||
STRATEGY_DYNAMIC_CUSTOM_THEMES_PATH: /opt/sablier/custom_themes
|
||||
STRATEGY_DYNAMIC_SHOW_DETAILS_BY_DEFAULT: false
|
||||
STRATEGY_DYNAMIC_DEFAULT_THEME: hacker-terminal
|
||||
STRATEGY_DYNAMIC_DEFAULT_REFRESH_FREQUENCY: 5s
|
||||
STRATEGY_BLOCKING_DEFAULT_TIMEOUT: 1m
|
||||
image: sablierapp/sablier:latest
|
||||
ports:
|
||||
- 19311:10000
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${DOCKER_VOLUME_CONFIG}/sablier/state:/opt/sablier/state
|
||||
- ${DOCKER_VOLUME_CONFIG}/sablier/custom_themes:/opt/sablier/custom_themes
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
scraperr:
|
||||
command:
|
||||
- npm
|
||||
@@ -4490,6 +4507,7 @@ services:
|
||||
OLLAMA_URL: http://ollama:11434
|
||||
OLLAMA_MODEL: phi3
|
||||
MONGODB_URI: mongodb://scraperr:${SCRAPERR_MONGODB_PASSWORD}@mongodb:27017/scraperr?replicaSet=rinoa
|
||||
REGISTRATION_ENABLED: true
|
||||
SECRET_KEY: ${SCRAPERR_SECRET_KEY}
|
||||
ALGORITHM: HS256
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES: 600
|
||||
@@ -4847,6 +4865,7 @@ services:
|
||||
homepage.icon: /icons/stable-diffusion.png
|
||||
swag: enable
|
||||
swag_port: 7860
|
||||
swag_auth: authelia
|
||||
swag_proto: http
|
||||
swag_url: sd.${MY_TLD}
|
||||
swag_server_custom_directive: |
|
||||
@@ -5336,9 +5355,82 @@ services:
|
||||
container_name: whodb
|
||||
image: clidey/whodb
|
||||
environment:
|
||||
WHODB_POSTGRES_1: '[{"host":"authelia-pg","user":"authelia","password":"${AUTHELIA_STORAGE_POSTGRES_PASSWORD}","database":"authelia"},{"host":"bitmagnet-pg-db","user":"bitmagnet","password":"${BITMAGNET_POSTGRESQL_PASSWORD}","database":"bitmagnet"},{"host":"dawarich-pg-db","user":"dawarich","password":"${DAWARICH_PG_PASSWORD}","database":"dawarich"},{"host":"gitea-db","user":"gitea","password":"${GITEA_PG_DB_PASSWORD}","database":"gitea"},{"host":"immich-pg-db","user":"immich","password":"${IMMICH_DB_PASSWORD}","database":"immich"},{"host":"invidious-db","user":"kemal","password":"${INVID_PG_DB_PASSWORD}","database":"invidious"},{"host":"librechat-vectordb","user":"librechat","password":"${LIBRECHAT_PG_DB_PASSWD}","database":"librechat"},{"host":"mastodon-pg-db","user":"mastodon","password":"${MASTODON_PG_DB_PASSWORD}","database":"mastodon"},{"host":"reactive-resume-pg","user":"reactiveresume","password":"${REACTIVE_RESUME_PGSQL_PASSWORD}","database":"reactiveresume"},{"host":"sonarqube-pg-db","user":"sonar","password":"${SONARQUBE_POSTGRES_PASSWORD}","database":"sonar"},{"host":"tandoor-pg","user":"tandoor","password":"${TANDOOR_POSTGRES_PASSWORD}","database":"tandoor"},{"host":"zammad-postgresql","user":"zammad","password":"${ZAMMAD_POSTGRES_PASS}","database":"zammad_production"}]'
|
||||
WHODB_MARIADB_1: '[{"host":"mariadb","user":"root","password":"${MARIADB_ENVIRONMENT_MYSQL_ROOT_PASSWORD}","database":"mysql"}]'
|
||||
WHODB_MONGODB_1: '{"host":"mongodb:27017/admin?replicaSet=rinoa","user":"root","password":"${MONGO_INITDB_ROOT_PASSWORD}"}'
|
||||
WHODB_POSTGRES_1: '{
|
||||
"host": "authelia-pg",
|
||||
"user": "authelia",
|
||||
"password": "${AUTHELIA_STORAGE_POSTGRES_PASSWORD}",
|
||||
"database": "authelia"
|
||||
}'
|
||||
WHODB_POSTGRES_2: '{
|
||||
"host": "dawarich-pg-db",
|
||||
"user": "dawarich",
|
||||
"password": "${DAWARICH_PG_PASSWORD}",
|
||||
"database": "authelia"
|
||||
}'
|
||||
WHODB_POSTGRES_3: '{
|
||||
"host": "gitea-db",
|
||||
"user": "gitea",
|
||||
"password": "${GITEA_PG_DB_PASSWORD}",
|
||||
"database": "gitea"
|
||||
}'
|
||||
WHODB_POSTGRES_4: '{
|
||||
"host": "immich-pg-db",
|
||||
"user": "immich",
|
||||
"password": "${IMMICH_DB_PASSWORD}",
|
||||
"database": "immich"
|
||||
}'
|
||||
WHODB_POSTGRES_5: '{
|
||||
"host": "invidious-db",
|
||||
"user": "kemal",
|
||||
"password": "${INVID_PG_DB_PASSWORD}",
|
||||
"database": "invidious"
|
||||
}'
|
||||
WHODB_POSTGRES_6: '{
|
||||
"host": "librechat-vectordb",
|
||||
"user": "librechat",
|
||||
"password": "${LIBRECHAT_PG_DB_PASSWD}",
|
||||
"database": "librechat"
|
||||
}'
|
||||
WHODB_POSTGRES_7: '{
|
||||
"host": "mastodon-pg-db",
|
||||
"user": "mastodon",
|
||||
"password": "${MASTODON_PG_DB_PASSWORD}",
|
||||
"database": "mastodon"
|
||||
}'
|
||||
WHODB_POSTGRES_8: '{
|
||||
"host": "reactive-resume-pg",
|
||||
"user": "reactiveresume",
|
||||
"password": "${REACTIVE_RESUME_PGSQL_PASSWORD}",
|
||||
"database": "reactiveresume"
|
||||
}'
|
||||
WHODB_POSTGRES_9: '{
|
||||
"host": "sonarqube-pg-db",
|
||||
"user": "sonar",
|
||||
"password": "${SONARQUBE_POSTGRES_PASSWORD}",
|
||||
"database": "sonar"
|
||||
}'
|
||||
WHODB_POSTGRES_10: '{
|
||||
"host": "tandoor-pg",
|
||||
"user": "tandoor",
|
||||
"password": "${TANDOOR_POSTGRES_PASSWORD}",
|
||||
"database": "tandoor"
|
||||
}'
|
||||
WHODB_POSTGRES_11: '{
|
||||
"host": "zammad-postgresql",
|
||||
"user": "zammad",
|
||||
"password": "${ZAMMAD_POSTGRES_PASS}",
|
||||
"database": "zammad_production"
|
||||
}'
|
||||
WHODB_MARIADB_1: '{
|
||||
"host": "mariadb",
|
||||
"user": "root",
|
||||
"password": "${MARIADB_ENVIRONMENT_MYSQL_ROOT_PASSWORD}"
|
||||
}'
|
||||
WHODB_MONGODB_1: '{
|
||||
"host": "mongodb:27017/admin?replicaSet=rinoa",
|
||||
"user": "root",
|
||||
"password": "${MONGO_INITDB_ROOT_PASSWORD}"
|
||||
}'
|
||||
WHODB_OLLAMA_HOST: ollama
|
||||
WHODB_OLLAMA_PORT: 11434
|
||||
WHODB_ANTHROPIC_API_KEY: ${LIBRECHAT_ANTHROPIC_API_KEY}
|
||||
@@ -5350,8 +5442,9 @@ services:
|
||||
homepage.name: WhoDB
|
||||
homepage.href: https://dbs.${MY_TLD}
|
||||
homepage.icon: whodb.png
|
||||
homepage.description: Database-as-Code CI/CD
|
||||
homepage.description: Lightweight next-gen database explorer
|
||||
swag: enable
|
||||
swag_auth: authelia
|
||||
swag_port: 8080
|
||||
swag_proto: http
|
||||
swag_url: dbs.${MY_TLD}
|
||||
@@ -5502,10 +5595,6 @@ services:
|
||||
volumes:
|
||||
authelia-pg-db:
|
||||
name: authelia-pg-db
|
||||
bitmagnet-pg-db:
|
||||
name: bitmagnet-pg-db
|
||||
bunkerweb-storage:
|
||||
name: bunkerweb-storage
|
||||
castopod-media:
|
||||
name: castopod-media
|
||||
crowdsec-config:
|
||||
@@ -5520,8 +5609,6 @@ volumes:
|
||||
name: dawarich_public
|
||||
dawarich_watched:
|
||||
name: dawarich_watched
|
||||
docker-volume-bkup-data:
|
||||
name: docker-volume-bkup-data
|
||||
fastenhealth-cache:
|
||||
name: fastenhealth-cache
|
||||
fastenhealth-db:
|
||||
@@ -5608,6 +5695,8 @@ volumes:
|
||||
name: portnote-db-data
|
||||
reactive-resume-pg:
|
||||
name: reactive-resume-pg
|
||||
romm_resources:
|
||||
name: romm_resources
|
||||
semaphore_config:
|
||||
name: semaphore_config
|
||||
semaphore_data:
|
||||
|
||||
Reference in New Issue
Block a user