# Full stack. If you already run signal-cli-rest-api (and/or llama.cpp) # elsewhere, delete those services and point the bridge's SIGNAL_API / # LLAMA_API at the existing hosts instead. services: # signal-cli-rest-api: # image: bbernhard/signal-cli-rest-api:latest # environment: # - MODE=json-rpc # required for websocket receive; bridge falls back to polling without it # ports: # - "8080:8080" # volumes: # - ./signal-cli-config:/home/.local/share/signal-cli # restart: unless-stopped # llama: # image: ghcr.io/ggml-org/llama.cpp:server # command: -m /models/model.gguf -c 8192 --host 0.0.0.0 --port 8081 # ports: # - "8081:8081" # volumes: # - ./models:/models # restart: unless-stopped bridge: build: . environment: - SIGNAL_API=http://signal-cli-rest-api:8080 - SIGNAL_NUMBER=${SIGNAL_NUMBER} - LLM_API=http://llama:8081 - GROUP_TRIGGER=!ai # Open WebUI backend instead: # - LLM_API=http://openwebui:3000 # - CHAT_PATH=/api/chat/completions # - LLM_API_KEY=sk-... # - MODEL=signal-assistant # - SYSTEM_PROMPT=You are ... # - HISTORY_TURNS=20 # - MAX_TOKENS=1024 # - TEMPERATURE=0.7 # - RECEIVE_MODE=auto # auto | websocket | poll # depends_on: # - signal-cli-rest-api # - llama restart: unless-stopped