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
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:
|
|
|