Compare commits
1 Commits
master
...
kansaigaij
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c4cbe8615 |
25
README.md
25
README.md
@@ -29,10 +29,10 @@ docker compose up -d
|
||||
- **Lidarr** (8686) - Music management
|
||||
- **Lidarr Importer API** (5110) - API of Maloja DB for Lidarr Import
|
||||
- **Maloja** (42010) - Music Statistics
|
||||
- **MBID-Poller** - Polls Lidar API with Scrobbled artists then auto adds once found.
|
||||
- **Multi-Scrobbler** (9078) - Music Scrobbling
|
||||
- **Maloja to Lidarr Importer** - Scrobble Artist List for Custom Import
|
||||
- **Pinchflat** (8945) - Youtube Content Downloader
|
||||
- **Soulseek** (5030) - P2P Filesharer
|
||||
- **Soularr** - Intermediary between Lidarr and Soulseek
|
||||
|
||||
### 📄 Document Management
|
||||
- **Gotenberg** - Document Conversion
|
||||
@@ -48,7 +48,7 @@ docker compose up -d
|
||||
- **AdventureLog Frontend** (8015) - Adventure tracking interface
|
||||
- **AdventureLog Backend** (8016) - Adventure tracking API
|
||||
- **AdventureLog Database** - PostgreSQL database
|
||||
- **Gramps** (5511 & 5512) - Genealogy management
|
||||
- **Gramps** (5511) - Genealogy management
|
||||
- **Gramps Celery** - Background task processing
|
||||
- **Gramps Redis** - Task queue
|
||||
- **KitchenOwl** - (8081) Recipe and Grocery Manager
|
||||
@@ -59,7 +59,6 @@ docker compose up -d
|
||||
- **Syncthing** (8384) - File synchronization
|
||||
|
||||
### 🛠️ System Utilities
|
||||
- **Bytestash** (5661) - Private Pastebin
|
||||
- **Docker Proxy** (2375) - Docker API proxy
|
||||
- **FileBrowser** (6633) - Web file manager
|
||||
- **FoundryVTT Watcher** (30000) - FoundryVTT player login watcher
|
||||
@@ -68,25 +67,11 @@ docker compose up -d
|
||||
- **iPerf3 Server** (5201) - LAN Network Speedtest server
|
||||
- **RustDesk (hbbr)** - Remote desktop relay
|
||||
- **RustDesk (hbbs)** - Remote desktop signaling
|
||||
- **Newt** - Notification service
|
||||
- **Newt** - Tunneloing service to offaite reverse proxy
|
||||
- **RackNerd API Converter** (5000) - VPS monitoring API
|
||||
- **Speedtest Database** - MariaDB for speedtest
|
||||
- **Speedtest Tracker** (8180) - Network monitoring
|
||||
- **Watchtower** - Container updates
|
||||
- **Whisper** - Speech Recognition System
|
||||
|
||||
### 💻 Proxmox Host
|
||||
The core of this environment is a Proxmox host that orchestrates multiple services using both VMs and LXCs for resource isolation and management. The services currently running include:
|
||||
|
||||
- **AdGuard** - Network-wide ad and tracker blocking service.
|
||||
- **Vaultwarden** - Self-hosted Bitwarden server for secure password management.
|
||||
- **Immich** - Self-hosted, open-source photo and video backup solution.
|
||||
- **n8n** - Workflow automation tool for connecting apps and services.
|
||||
- **HAOS (Home Assistant)** - VM dedicated to home automation.
|
||||
- **Wordpress** - Content management system for website hosting.
|
||||
- **FoundryVTT** - Self-hosted virtual tabletop for role-playing games.
|
||||
- **Crafty Controller** - Server manager for Minecraft.
|
||||
- **Nextcloud OS** - Platform for private file hosting and collaboration.
|
||||
|
||||
## 🏗️ Architecture
|
||||
|
||||
@@ -97,7 +82,7 @@ The stack is organized into logical service groups:
|
||||
├── docker-compose.yml # Main orchestration for ephemeral services
|
||||
├── .env # Environment variables
|
||||
├── .env.template # Template for new deployments
|
||||
├── services/
|
||||
├── Services/
|
||||
│ ├── filebrowser/
|
||||
│ ├── homepage/
|
||||
│ └── ... # Other stateless services
|
||||
|
||||
@@ -9,7 +9,7 @@ services:
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- /docker-local/Arrs/Bazarr/config:/config
|
||||
- /data/media:/data/media
|
||||
- /data/:/data/
|
||||
ports:
|
||||
- 6767:6767
|
||||
networks:
|
||||
@@ -51,8 +51,6 @@ services:
|
||||
image: fallenbagel/jellyseerr:latest
|
||||
container_name: jellyseerr
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- LOG_LEVEL=debug
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
@@ -64,23 +62,23 @@ services:
|
||||
arr_network:
|
||||
ipv4_address: 172.20.0.14
|
||||
restart: unless-stopped
|
||||
|
||||
lidarr-plugins:
|
||||
image: ghcr.io/hotio/lidarr:pr-plugins
|
||||
container_name: lidarr-plugins
|
||||
|
||||
lidarr:
|
||||
image: lscr.io/linuxserver/lidarr:latest
|
||||
container_name: lidarr
|
||||
environment:
|
||||
- PUID:1000
|
||||
- PGID:1000
|
||||
- TZ:${TZ}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- /docker-local/Arrs/Lidarr-Plugins/config:/config
|
||||
- /data/torrents:/data/torrents
|
||||
- /data/music:/data/music
|
||||
- /docker-local/Arrs/Lidarr/config:/config
|
||||
- /data/:/data/
|
||||
- /data/torrents/:/downloads
|
||||
ports:
|
||||
- 8687:8686
|
||||
- 8686:8686
|
||||
networks:
|
||||
arr_network:
|
||||
ipv4_address: 172.20.0.17
|
||||
arr_network:
|
||||
ipv4_address: 172.20.0.7
|
||||
restart: unless-stopped
|
||||
|
||||
prowlarr:
|
||||
@@ -109,7 +107,7 @@ services:
|
||||
- WEBUI_PORT=8080
|
||||
volumes:
|
||||
- ./services/qBittorrent/config:/config
|
||||
- /data/torrents:/data/torrents
|
||||
- /data/torrents:/downloads
|
||||
ports:
|
||||
- 7070:8080
|
||||
- 56881:6881
|
||||
@@ -128,7 +126,8 @@ services:
|
||||
- PGID=1000
|
||||
volumes:
|
||||
- /docker-local/Arrs/Radarr/config:/config
|
||||
- /data:/data
|
||||
- /data/:/data/
|
||||
- /data/torrents/:/downloads
|
||||
ports:
|
||||
- 7878:7878
|
||||
networks:
|
||||
@@ -146,6 +145,7 @@ services:
|
||||
volumes:
|
||||
- /docker-local/Arrs/Sonarr/config:/config
|
||||
- /data:/data
|
||||
- /data/torrents:/downloads
|
||||
ports:
|
||||
- 8989:8989
|
||||
networks:
|
||||
@@ -154,6 +154,21 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
# Music & Scrobbling
|
||||
beets:
|
||||
image: lscr.io/linuxserver/beets:latest
|
||||
container_name: beets
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- /docker-local/beets/config:/config
|
||||
- /data/music:/music
|
||||
- /data/downloads:/downloads
|
||||
ports:
|
||||
- 8337:8337
|
||||
restart: unless-stopped
|
||||
|
||||
maloja:
|
||||
image: "krateng/maloja:latest"
|
||||
container_name: maloja
|
||||
@@ -199,18 +214,30 @@ services:
|
||||
image: gitea.kansaigaijin.com/kansaigaijin/majola-lidarr-importer:latest
|
||||
container_name: maloja-lidarr-importer-api
|
||||
volumes:
|
||||
- ./services/maloja_lidarr_api/logs:/app/logs
|
||||
- ./logs:/app/logs
|
||||
ports:
|
||||
- "5110:5000"
|
||||
environment:
|
||||
- SOURCE_API_URL=${SOURCE_API_URL}
|
||||
- SOURCE_API_KEY=${SOURCE_API_KEY}
|
||||
restart: "unless-stopped"
|
||||
|
||||
pinchflat:
|
||||
image: ghcr.io/kieraneglin/pinchflat:latest
|
||||
container_name: pinchflat
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
ports:
|
||||
- '8945:8945'
|
||||
volumes:
|
||||
- /docker-local/pinchflat/config:/config
|
||||
- /data/torrents/:/downloads
|
||||
|
||||
slskd:
|
||||
image: slskd/slskd
|
||||
container_name: slskd
|
||||
hostname: slskd
|
||||
# user: 1000:1000
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- SLSKD_REMOTE_CONFIGURATION=true
|
||||
@@ -223,12 +250,22 @@ services:
|
||||
volumes:
|
||||
- /docker-local/slskd:/app
|
||||
- /data:/data
|
||||
- /data/torrents/complete/SLSKD:/data/downloads
|
||||
- /data/torrents/slskd_downloads:/downloads
|
||||
- /data/torrents/incomplete:/incomplete
|
||||
networks:
|
||||
arr_network:
|
||||
ipv4_address: 172.20.0.10
|
||||
restart: unless-stopped
|
||||
|
||||
soularr:
|
||||
image: mrusse08/soularr:latest
|
||||
container_name: soularr
|
||||
hostname: soularr
|
||||
user: 1000:1000
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- SCRIPT_INTERVAL=300
|
||||
volumes:
|
||||
- /data/torrents/slskd_downloads:/downloads
|
||||
- ./Services/soularr:/data
|
||||
restart: unless-stopped
|
||||
|
||||
# Document Management
|
||||
broker:
|
||||
@@ -265,54 +302,6 @@ services:
|
||||
- "--chromium-disable-javascript=true"
|
||||
- "--chromium-allow-list=file:///tmp/.*"
|
||||
restart: unless-stopped
|
||||
|
||||
immich-server:
|
||||
container_name: immich_server
|
||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||
volumes:
|
||||
- ${UPLOAD_LOCATION}:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- '2283:2283'
|
||||
depends_on:
|
||||
- redis
|
||||
- database
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
immich-machine-learning:
|
||||
container_name: immich_machine_learning
|
||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||
volumes:
|
||||
- model-cache:/cache
|
||||
env_file:
|
||||
- .env
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_USER: ${DB_USERNAME}
|
||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||
volumes:
|
||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||
shm_size: 128mb
|
||||
restart: always
|
||||
|
||||
onlyoffice:
|
||||
image: onlyoffice/documentserver:latest
|
||||
@@ -398,10 +387,10 @@ services:
|
||||
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
|
||||
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
||||
volumes:
|
||||
- ./services/paperless/data:/usr/src/paperless/data
|
||||
- ./services/paperless/media:/usr/src/paperless/media
|
||||
- ./services/paperless/export:/usr/src/paperless/export
|
||||
- ./services/paperless/consume:/usr/src/paperless/consume
|
||||
- ./Services/paperless/data:/usr/src/paperless/data
|
||||
- ./Services/paperless/media:/usr/src/paperless/media
|
||||
- ./Services/paperless/export:/usr/src/paperless/export
|
||||
- ./Services/paperless/consume:/usr/src/paperless/consume
|
||||
ports:
|
||||
- "8100:8000"
|
||||
depends_on:
|
||||
@@ -464,52 +453,29 @@ services:
|
||||
- adventurelogserver
|
||||
restart: unless-stopped
|
||||
|
||||
grampsweb-jamie: &grampsweb
|
||||
grampsweb: &grampsweb
|
||||
image: ghcr.io/gramps-project/grampsweb:latest
|
||||
container_name: grampsweb-jamie
|
||||
container_name: Gramps
|
||||
environment:
|
||||
- GRAMPSWEB_TREE=Miller Tree
|
||||
- GRAMPSWEB_CELERY_CONFIG__broker_url=redis://grampsweb_redis:6379/0
|
||||
- GRAMPSWEB_CELERY_CONFIG__result_backend=redis://grampsweb_redis:6379/0
|
||||
- GRAMPSWEB_RATELIMIT_STORAGE_URI=redis://grampsweb_redis:6379/1
|
||||
GRAMPSWEB_TREE: "Gramps Web"
|
||||
GRAMPSWEB_CELERY_CONFIG__broker_url: "redis://grampsweb_redis:6379/0"
|
||||
GRAMPSWEB_CELERY_CONFIG__result_backend: "redis://grampsweb_redis:6379/0"
|
||||
GRAMPSWEB_RATELIMIT_STORAGE_URI: redis://grampsweb_redis:6379/1
|
||||
volumes:
|
||||
- /docker-local/gramps-jamie/gramps_users:/app/users
|
||||
- /docker-local/gramps-jamie/gramps_index:/app/indexdir
|
||||
- /docker-local/gramps-jamie/gramps_thumb_cache:/app/thumbnail_cache
|
||||
- /docker-local/gramps-jamie/gramps_cache:/app/cache
|
||||
- /docker-local/gramps-jamie/gramps_secret:/app/secret
|
||||
- /docker-local/gramps-jamie/gramps_db:/app/data/.gramps/grampsdb
|
||||
- /docker-local/gramps-jamie/gramps_media:/app/media
|
||||
- /docker-local/gramps-jamie/gramps_tmp:/tmp
|
||||
- /docker-local/gramps/gramps_users:/app/users
|
||||
- /docker-local/gramps/gramps_index:/app/indexdir
|
||||
- /docker-local/gramps/gramps_thumb_cache:/app/thumbnail_cache
|
||||
- /docker-local/gramps/gramps_cache:/app/cache
|
||||
- /docker-local/gramps/gramps_secret:/app/secret
|
||||
- /docker-local/gramps/gramps_db:/root/.gramps/grampsdb
|
||||
- /docker-local/gramps/gramps_media:/app/media
|
||||
- /docker-local/gramps/gramps_tmp:/tmp
|
||||
ports:
|
||||
- "5511:5000"
|
||||
depends_on:
|
||||
- grampsweb_redis
|
||||
restart: always
|
||||
|
||||
grampsweb-helen: &grampsweb
|
||||
image: ghcr.io/gramps-project/grampsweb:latest
|
||||
container_name: grampsweb-helen
|
||||
environment:
|
||||
- GRAMPSWEB_TREE=Heta Tree
|
||||
- GRAMPSWEB_CELERY_CONFIG__broker_url=redis://grampsweb_redis:6379/0
|
||||
- GRAMPSWEB_CELERY_CONFIG__result_backend=redis://grampsweb_redis:6379/0
|
||||
- GRAMPSWEB_RATELIMIT_STORAGE_URI=redis://grampsweb_redis:6379/1
|
||||
volumes:
|
||||
- /docker-local/gramps-helen/gramps_users:/app/users
|
||||
- /docker-local/gramps-helen/gramps_index:/app/indexdir
|
||||
- /docker-local/gramps-helen/gramps_thumb_cache:/app/thumbnail_cache
|
||||
- /docker-local/gramps-helen/gramps_cache:/app/cache
|
||||
- /docker-local/gramps-helen/gramps_secret:/app/secret
|
||||
- /docker-local/gramps-helen/gramps_db:/root/.gramps/grampsdb
|
||||
- /docker-local/gramps-helen/gramps_media:/app/media
|
||||
- /docker-local/gramps-helen/gramps_tmp:/tmp
|
||||
ports:
|
||||
- "5512:5000"
|
||||
depends_on:
|
||||
- grampsweb_redis
|
||||
restart: always
|
||||
|
||||
grampsweb_celery:
|
||||
<<: *grampsweb
|
||||
container_name: grampsweb_celery
|
||||
@@ -551,8 +517,8 @@ services:
|
||||
ports:
|
||||
- "4000:4000"
|
||||
volumes:
|
||||
- ./services/litellm/config.yaml:/app/config.yaml
|
||||
- ./services/litellm/logs:/app/logs
|
||||
- ./services/litellm/litellm-config.yaml:/app/config.yaml
|
||||
- ./services/litellm/litellm-logs:/app/logs
|
||||
environment:
|
||||
- LITELLM_CONFIG=/app/config.yaml
|
||||
- GROQ_API_KEY=${GROQ_API_KEY}
|
||||
@@ -618,23 +584,6 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
# System Utilities
|
||||
bytestash:
|
||||
image: "ghcr.io/jordan-dalby/bytestash:latest"
|
||||
container_name: bytestash
|
||||
restart: always
|
||||
volumes:
|
||||
- /docker-local/bytestash/snippets:/data/snippets
|
||||
ports:
|
||||
- "5661:5000"
|
||||
environment:
|
||||
BASE_PATH: ""
|
||||
JWT_SECRET: ${BYTE_JWT_SECRET}
|
||||
TOKEN_EXPIRY: 24h
|
||||
ALLOW_NEW_ACCOUNTS: "false"
|
||||
DEBUG: "true"
|
||||
DISABLE_ACCOUNTS: "false"
|
||||
DISABLE_INTERNAL_ACCOUNTS: "false"
|
||||
|
||||
dockerproxy:
|
||||
image: ghcr.io/tecnativa/docker-socket-proxy:latest
|
||||
container_name: dockerproxy
|
||||
@@ -667,7 +616,7 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
foundry:
|
||||
build: ./services/foundry-login
|
||||
build: ./Services/foundry-login
|
||||
container_name: foundry-login
|
||||
environment:
|
||||
- SSH_HOST=${FOUNDRY_SSH_HOST}
|
||||
@@ -765,7 +714,7 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
racknerd-api-converter:
|
||||
build: ./services/racknerd-converter
|
||||
build: ./Services/racknerd-converter
|
||||
container_name: RacknerdConverter
|
||||
environment:
|
||||
- RACKNERD_API_KEY=${RACKNERD_API_KEY}
|
||||
@@ -838,37 +787,6 @@ services:
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
whisper:
|
||||
container_name: subgen
|
||||
tty: true
|
||||
image: mccloud/subgen:latest
|
||||
environment:
|
||||
- WHISPER_MODEL=large-v3-turbo
|
||||
- WHISPER_THREADS=4
|
||||
- JELLYFINTOKEN=${JELLYFIN_APIKEY}
|
||||
- JELLYFINSERVER=${JELLYFIN_URL}
|
||||
- WEBHOOKPORT=9000
|
||||
- DEBUG=True
|
||||
- TRANSCRIBE_OR_TRANSLATE=translate
|
||||
- NAMESUBLANG=en
|
||||
- TRANSCRIBE_DEVICE=cpu
|
||||
- CLEAR_VRAM_ON_COMPLETE=True
|
||||
- PROCADDEDMEDIA=True
|
||||
- PROCMEDIAONPLAY=False
|
||||
- UPDATE=True
|
||||
- HF_HUB_DISABLE_SYMLINKS_WARNING=1
|
||||
- HF_HUB_DISABLE_SYMLINKS_SUPPORT=1
|
||||
- XDG_CACHE_HOME=/subgen/models
|
||||
volumes:
|
||||
- /data/tv:/data/tv
|
||||
- /data/movies:/data/movies
|
||||
- ./services/subgen/models:/subgen/models
|
||||
ports:
|
||||
- 9666:9000
|
||||
networks:
|
||||
arr_network:
|
||||
ipv4_address: 172.20.0.15
|
||||
|
||||
networks:
|
||||
arr_network:
|
||||
driver: bridge
|
||||
@@ -890,6 +808,3 @@ volumes:
|
||||
adventurelog_adventurelog_media:
|
||||
external: true
|
||||
onlyoffice:
|
||||
soulsync:
|
||||
driver: local
|
||||
model-cache:
|
||||
Reference in New Issue
Block a user