mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-02 19:55:18 +02:00
feat(gateway): update WhatsApp bridge configuration and expose port 9929
This commit is contained in:
parent
bba33b5947
commit
9143cb6ad1
7 changed files with 35 additions and 7 deletions
|
|
@ -55,6 +55,9 @@ EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
|
||||||
# -- Redis exposed port (dev only; Redis is internal-only in prod) --
|
# -- Redis exposed port (dev only; Redis is internal-only in prod) --
|
||||||
# REDIS_PORT=6379
|
# REDIS_PORT=6379
|
||||||
|
|
||||||
|
# -- WhatsApp bridge exposed port (dev/hybrid only; prod keeps it Docker-internal) --
|
||||||
|
# WHATSAPP_BRIDGE_PORT=9929
|
||||||
|
|
||||||
# -- Frontend Build Args --
|
# -- Frontend Build Args --
|
||||||
# In dev, the frontend is built from source and these are passed as build args.
|
# In dev, the frontend is built from source and these are passed as build args.
|
||||||
# In prod, they are automatically derived from AUTH_TYPE, ETL_SERVICE, and the port settings above.
|
# In prod, they are automatically derived from AUTH_TYPE, ETL_SERVICE, and the port settings above.
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,7 @@ services:
|
||||||
- AUTH_TYPE=${AUTH_TYPE:-LOCAL}
|
- AUTH_TYPE=${AUTH_TYPE:-LOCAL}
|
||||||
- NEXT_FRONTEND_URL=${NEXT_FRONTEND_URL:-http://localhost:3000}
|
- NEXT_FRONTEND_URL=${NEXT_FRONTEND_URL:-http://localhost:3000}
|
||||||
- SEARXNG_DEFAULT_HOST=${SEARXNG_DEFAULT_HOST:-http://searxng:8080}
|
- SEARXNG_DEFAULT_HOST=${SEARXNG_DEFAULT_HOST:-http://searxng:8080}
|
||||||
|
- WHATSAPP_BRIDGE_URL=${WHATSAPP_BRIDGE_URL:-http://whatsapp-bridge:9929}
|
||||||
# Daytona Sandbox – uncomment and set credentials to enable cloud code execution
|
# Daytona Sandbox – uncomment and set credentials to enable cloud code execution
|
||||||
# - DAYTONA_SANDBOX_ENABLED=TRUE
|
# - DAYTONA_SANDBOX_ENABLED=TRUE
|
||||||
# - DAYTONA_API_KEY=${DAYTONA_API_KEY:-}
|
# - DAYTONA_API_KEY=${DAYTONA_API_KEY:-}
|
||||||
|
|
@ -148,6 +149,25 @@ services:
|
||||||
retries: 30
|
retries: 30
|
||||||
start_period: 200s
|
start_period: 200s
|
||||||
|
|
||||||
|
whatsapp-bridge:
|
||||||
|
build: ../surfsense_backend/scripts/whatsapp-bridge
|
||||||
|
profiles:
|
||||||
|
- whatsapp
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:${WHATSAPP_BRIDGE_PORT:-9929}:9929"
|
||||||
|
volumes:
|
||||||
|
- whatsapp_sessions:/data/sessions
|
||||||
|
environment:
|
||||||
|
- PORT=9929
|
||||||
|
- WHATSAPP_MODE=${WHATSAPP_MODE:-self-chat}
|
||||||
|
- WHATSAPP_SESSION_DIR=/data/sessions
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "wget", "-qO-", "http://localhost:9929/health"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
celery_worker:
|
celery_worker:
|
||||||
build: *backend-build
|
build: *backend-build
|
||||||
volumes:
|
volumes:
|
||||||
|
|
@ -282,3 +302,5 @@ volumes:
|
||||||
name: surfsense-dev-zero-cache
|
name: surfsense-dev-zero-cache
|
||||||
zero_init:
|
zero_init:
|
||||||
name: surfsense-dev-zero-init
|
name: surfsense-dev-zero-init
|
||||||
|
whatsapp_sessions:
|
||||||
|
name: surfsense-dev-whatsapp-sessions
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ services:
|
||||||
UNSTRUCTURED_HAS_PATCHED_LOOP: "1"
|
UNSTRUCTURED_HAS_PATCHED_LOOP: "1"
|
||||||
NEXT_FRONTEND_URL: ${NEXT_FRONTEND_URL:-http://localhost:${FRONTEND_PORT:-3929}}
|
NEXT_FRONTEND_URL: ${NEXT_FRONTEND_URL:-http://localhost:${FRONTEND_PORT:-3929}}
|
||||||
SEARXNG_DEFAULT_HOST: ${SEARXNG_DEFAULT_HOST:-http://searxng:8080}
|
SEARXNG_DEFAULT_HOST: ${SEARXNG_DEFAULT_HOST:-http://searxng:8080}
|
||||||
WHATSAPP_BRIDGE_URL: ${WHATSAPP_BRIDGE_URL:-http://whatsapp-bridge:3000}
|
WHATSAPP_BRIDGE_URL: ${WHATSAPP_BRIDGE_URL:-http://whatsapp-bridge:9929}
|
||||||
# Daytona Sandbox – uncomment and set credentials to enable cloud code execution
|
# Daytona Sandbox – uncomment and set credentials to enable cloud code execution
|
||||||
# DAYTONA_SANDBOX_ENABLED: "TRUE"
|
# DAYTONA_SANDBOX_ENABLED: "TRUE"
|
||||||
# DAYTONA_API_KEY: ${DAYTONA_API_KEY:-}
|
# DAYTONA_API_KEY: ${DAYTONA_API_KEY:-}
|
||||||
|
|
@ -148,15 +148,18 @@ services:
|
||||||
build: ../surfsense_backend/scripts/whatsapp-bridge
|
build: ../surfsense_backend/scripts/whatsapp-bridge
|
||||||
profiles:
|
profiles:
|
||||||
- whatsapp
|
- whatsapp
|
||||||
|
expose:
|
||||||
|
- "9929"
|
||||||
volumes:
|
volumes:
|
||||||
- whatsapp_sessions:/data/sessions
|
- whatsapp_sessions:/data/sessions
|
||||||
environment:
|
environment:
|
||||||
|
PORT: 9929
|
||||||
WHATSAPP_MODE: ${WHATSAPP_MODE:-self-chat}
|
WHATSAPP_MODE: ${WHATSAPP_MODE:-self-chat}
|
||||||
WHATSAPP_SESSION_DIR: /data/sessions
|
WHATSAPP_SESSION_DIR: /data/sessions
|
||||||
mem_limit: 512m
|
mem_limit: 512m
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "wget", "-qO-", "http://localhost:3000/health"]
|
test: ["CMD", "wget", "-qO-", "http://localhost:9929/health"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ WHATSAPP_SHARED_WABA_ID=
|
||||||
WHATSAPP_GRAPH_API_VERSION=v25.0
|
WHATSAPP_GRAPH_API_VERSION=v25.0
|
||||||
WHATSAPP_WEBHOOK_VERIFY_TOKEN=
|
WHATSAPP_WEBHOOK_VERIFY_TOKEN=
|
||||||
WHATSAPP_WEBHOOK_APP_SECRET=
|
WHATSAPP_WEBHOOK_APP_SECRET=
|
||||||
WHATSAPP_BRIDGE_URL=http://whatsapp-bridge:3000
|
WHATSAPP_BRIDGE_URL=http://whatsapp-bridge:9929
|
||||||
|
|
||||||
# Platform Web Search (SearXNG)
|
# Platform Web Search (SearXNG)
|
||||||
# Set this to enable built-in web search. Docker Compose sets it automatically.
|
# Set this to enable built-in web search. Docker Compose sets it automatically.
|
||||||
|
|
|
||||||
|
|
@ -562,7 +562,7 @@ class Config:
|
||||||
WHATSAPP_GRAPH_API_VERSION = os.getenv("WHATSAPP_GRAPH_API_VERSION", "v25.0")
|
WHATSAPP_GRAPH_API_VERSION = os.getenv("WHATSAPP_GRAPH_API_VERSION", "v25.0")
|
||||||
WHATSAPP_WEBHOOK_VERIFY_TOKEN = os.getenv("WHATSAPP_WEBHOOK_VERIFY_TOKEN")
|
WHATSAPP_WEBHOOK_VERIFY_TOKEN = os.getenv("WHATSAPP_WEBHOOK_VERIFY_TOKEN")
|
||||||
WHATSAPP_WEBHOOK_APP_SECRET = os.getenv("WHATSAPP_WEBHOOK_APP_SECRET")
|
WHATSAPP_WEBHOOK_APP_SECRET = os.getenv("WHATSAPP_WEBHOOK_APP_SECRET")
|
||||||
WHATSAPP_BRIDGE_URL = os.getenv("WHATSAPP_BRIDGE_URL", "http://whatsapp-bridge:3000")
|
WHATSAPP_BRIDGE_URL = os.getenv("WHATSAPP_BRIDGE_URL", "http://whatsapp-bridge:9929")
|
||||||
GATEWAY_WHATSAPP_INTAKE_MODE = os.getenv(
|
GATEWAY_WHATSAPP_INTAKE_MODE = os.getenv(
|
||||||
"GATEWAY_WHATSAPP_INTAKE_MODE", "disabled"
|
"GATEWAY_WHATSAPP_INTAKE_MODE", "disabled"
|
||||||
).lower()
|
).lower()
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ RUN npm ci --silent
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
ENV WHATSAPP_SESSION_DIR=/data/sessions
|
ENV WHATSAPP_SESSION_DIR=/data/sessions
|
||||||
EXPOSE 3000
|
EXPOSE 9929
|
||||||
|
|
||||||
HEALTHCHECK --interval=30s --timeout=5s CMD wget -qO- http://127.0.0.1:3000/health || exit 1
|
HEALTHCHECK --interval=30s --timeout=5s CMD wget -qO- http://127.0.0.1:9929/health || exit 1
|
||||||
|
|
||||||
CMD ["node", "bridge.js"]
|
CMD ["node", "bridge.js"]
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import path from "node:path";
|
||||||
import pino from "pino";
|
import pino from "pino";
|
||||||
import qrcode from "qrcode-terminal";
|
import qrcode from "qrcode-terminal";
|
||||||
|
|
||||||
const PORT = Number(process.env.PORT || "3000");
|
const PORT = Number(process.env.PORT || "9929");
|
||||||
const SESSION_DIR = process.env.WHATSAPP_SESSION_DIR || "/data/sessions";
|
const SESSION_DIR = process.env.WHATSAPP_SESSION_DIR || "/data/sessions";
|
||||||
const SEND_TIMEOUT_MS = Number(process.env.WHATSAPP_SEND_TIMEOUT_MS || "60000");
|
const SEND_TIMEOUT_MS = Number(process.env.WHATSAPP_SEND_TIMEOUT_MS || "60000");
|
||||||
const MAX_QUEUE_SIZE = Number(process.env.WHATSAPP_MAX_QUEUE_SIZE || "100");
|
const MAX_QUEUE_SIZE = Number(process.env.WHATSAPP_MAX_QUEUE_SIZE || "100");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue