You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

126 lines
3.7 KiB

services:
jumble:
container_name: imwald-jumble
build:
context: .
dockerfile: Dockerfile
args:
VITE_PROXY_SERVER: ${JUMBLE_PROXY_SERVER_URL:-http://localhost:8090}
ports:
- "8089:80"
restart: unless-stopped
networks:
- jumble
# Link / OG preview — silberengel/wikistr (override: OG_PROXY_IMAGE).
og-proxy:
image: ${OG_PROXY_IMAGE:-silberengel/wikistr:latest-og-proxy}
container_name: jumble-og-proxy
# Docker’s resolver sometimes returns EAI_AGAIN → Node "fetch failed" and noisy retries in proxy logs.
dns:
- 1.1.1.1
- 8.8.8.8
ports:
- '127.0.0.1:8090:8090'
environment:
PROXY_PORT: '8090'
PROXY_ALLOW_ORIGIN: ${OG_PROXY_ALLOW_ORIGIN:-http://localhost:5173}
PROXY_TIMEOUT_MS: '30000'
PROXY_MAX_BODY_BYTES: '5242880'
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: 'true'
PUPPETEER_EXECUTABLE_PATH: /usr/bin/chromium-browser
networks:
- jumble
restart: unless-stopped
nostr-relay:
image: scsibug/nostr-rs-relay:latest
container_name: jumble-nostr-relay
ports:
- "7000:8080"
environment:
- RUST_LOG=warn,nostr_rs_relay=info
volumes:
- relay-data:/usr/src/app/db
networks:
- jumble
restart: unless-stopped
# Advanced Event Lab: grammar (LanguageTool) + machine translate (LibreTranslate).
# Matches vite.config.ts → 127.0.0.1:8010 / :5000. Start with:
# docker compose -f docker-compose.dev.yml --profile editor-tools up -d languagetool libretranslate
languagetool:
image: silviof/docker-languagetool:latest
profiles: ['editor-tools']
container_name: jumble-languagetool
ports:
- '8010:8010'
networks:
- jumble
restart: unless-stopped
libretranslate:
image: libretranslate/libretranslate:latest
profiles: ['editor-tools']
container_name: jumble-libretranslate
ports:
- '5000:5000'
# Without LT_LOAD_ONLY the image downloads many GB of models before binding :5000 — Vite then gets ECONNRESET on /translate.
tty: true
env_file:
- ./scripts/libretranslate-lt.default.env
environment:
# Install missing packs when `LT_LOAD_ONLY` grows (persisted volume otherwise keeps old en/de-only index).
LT_UPDATE_MODELS: ${LT_UPDATE_MODELS:-true}
volumes:
- ./.local-libretranslate:/home/libretranslate/.local
networks:
- jumble
restart: unless-stopped
# Wyoming Piper + HTTP bridge (read-aloud). Profile local-tts — matches vite /api/piper-tts → :9876, Wyoming :10200.
# Mount voices under ./.local-piper-data (flat .onnx + .onnx.json). Extra voices: scripts/download-piper-extra-voices.sh
piper-wyoming:
image: ${WYOMING_PIPER_IMAGE:-silberengel/wyoming-piper:latest}
profiles: ['local-tts']
container_name: jumble-piper-wyoming
command:
- --voice
- en_US-lessac-medium
- --uri
- tcp://0.0.0.0:10200
- --data-dir
- /data
volumes:
- ./.local-piper-data:/data
expose:
- '10200'
networks:
- jumble
restart: unless-stopped
# No Hub image required — built from this repo. (Avoid silberengel/imwald-piper-tts-proxy:latest here until it exists on Docker Hub.)
piper-tts-proxy:
profiles: ['local-tts']
container_name: jumble-piper-tts-proxy
build:
context: .
dockerfile: services/piper-tts-proxy/Dockerfile
environment:
NODE_ENV: production
PORT: '9876'
PIPER_TTS_HOST: piper-wyoming
PIPER_TTS_PORT: '10200'
ports:
- '127.0.0.1:9876:9876'
depends_on:
- piper-wyoming
networks:
- jumble
restart: unless-stopped
volumes:
relay-data:
networks:
jumble: