feat: sync latest ARR implementation
This commit is contained in:
80
compose.yaml
80
compose.yaml
@@ -1,10 +1,10 @@
|
||||
name: wyndham-arr
|
||||
name: wyndham-arr2
|
||||
|
||||
services:
|
||||
web:
|
||||
build:
|
||||
context: .
|
||||
image: "${ARR_IMAGE_NAME:-wyndham-arr}:${ARR_IMAGE_TAG:-latest}"
|
||||
image: "${ARR_IMAGE_NAME:-wyndham-arr2}:${ARR_IMAGE_TAG:-latest}"
|
||||
restart: unless-stopped
|
||||
init: true
|
||||
command:
|
||||
@@ -18,6 +18,8 @@ services:
|
||||
- --enable-processing
|
||||
- --secure-cookies
|
||||
environment:
|
||||
ARR_WEB_USERNAME: "${ARR_WEB_USERNAME:?set ARR_WEB_USERNAME in deploy/.env.production}"
|
||||
ARR_WEB_PASSWORD: "${ARR_WEB_PASSWORD:?set ARR_WEB_PASSWORD in deploy/.env.production}"
|
||||
ARR_DATABASE_URL: "${ARR_DATABASE_URL:?set ARR_DATABASE_URL in deploy/.env.production}"
|
||||
ARR_OBJECT_PREFIX: "${ARR_OBJECT_PREFIX:-arr}"
|
||||
ARR_OSS_REGION: "${ARR_OSS_REGION:?set ARR_OSS_REGION}"
|
||||
@@ -26,22 +28,12 @@ services:
|
||||
OSS_ACCESS_KEY_ID: "${OSS_ACCESS_KEY_ID:?set OSS_ACCESS_KEY_ID or adapt Compose for a RAM role}"
|
||||
OSS_ACCESS_KEY_SECRET: "${OSS_ACCESS_KEY_SECRET:?set OSS_ACCESS_KEY_SECRET or adapt Compose for a RAM role}"
|
||||
OSS_SESSION_TOKEN: "${OSS_SESSION_TOKEN:-}"
|
||||
DEERFLOW_BASE_URL: "${DEERFLOW_BASE_URL:?set DEERFLOW_BASE_URL}"
|
||||
DEERFLOW_OPEN_API_KEY: "${DEERFLOW_OPEN_API_KEY:?set DEERFLOW_OPEN_API_KEY}"
|
||||
DEERFLOW_AUTH_MODE: "${DEERFLOW_AUTH_MODE:-bearer}"
|
||||
DEERFLOW_TIMEOUT_SECONDS: "${DEERFLOW_TIMEOUT_SECONDS:-60}"
|
||||
DEERFLOW_CONNECT_TIMEOUT_SECONDS: "${DEERFLOW_CONNECT_TIMEOUT_SECONDS:-10}"
|
||||
DEERFLOW_SESSION_DB: /app/runtime/agent_sessions.sqlite3
|
||||
ARR_AGENT_RESULT_HMAC_KEY_ID: "${ARR_AGENT_RESULT_HMAC_KEY_ID:?set ARR_AGENT_RESULT_HMAC_KEY_ID}"
|
||||
ARR_AGENT_RESULT_HMAC_KEY_B64: "${ARR_AGENT_RESULT_HMAC_KEY_B64:?set ARR_AGENT_RESULT_HMAC_KEY_B64}"
|
||||
ARR_AGENT_RESULT_MAX_AGE_SECONDS: "${ARR_AGENT_RESULT_MAX_AGE_SECONDS:-600}"
|
||||
expose:
|
||||
- "8765"
|
||||
volumes:
|
||||
- arr_runtime:/app/runtime
|
||||
- arr_outputs:/app/outputs
|
||||
tmpfs:
|
||||
- /tmp:size=64m,mode=1777
|
||||
- /tmp:size=256m,mode=1777
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
cap_drop:
|
||||
@@ -52,59 +44,9 @@ services:
|
||||
- python
|
||||
- -c
|
||||
- >-
|
||||
import json,sys,urllib.request;
|
||||
data=json.load(urllib.request.urlopen('http://127.0.0.1:8765/api/health',timeout=5))['data'];
|
||||
sys.exit(0 if data.get('database_ready') and data.get('processing_ready') else 1)
|
||||
interval: 15s
|
||||
timeout: 6s
|
||||
retries: 12
|
||||
start_period: 20s
|
||||
|
||||
mcp:
|
||||
image: "${ARR_IMAGE_NAME:-wyndham-arr}:${ARR_IMAGE_TAG:-latest}"
|
||||
restart: unless-stopped
|
||||
init: true
|
||||
command:
|
||||
- python
|
||||
- -m
|
||||
- arr_mcp.run
|
||||
- --host
|
||||
- 0.0.0.0
|
||||
- --port
|
||||
- "8890"
|
||||
- --max-concurrency
|
||||
- "${ARR_MCP_MAX_CONCURRENCY:-2}"
|
||||
- --allowed-host
|
||||
- "${MCP_PUBLIC_HOST:?set MCP_PUBLIC_HOST}"
|
||||
- --allowed-host
|
||||
- "${MCP_PUBLIC_HOST}:*"
|
||||
environment:
|
||||
ARR_DATABASE_URL: "${ARR_DATABASE_URL:?set ARR_DATABASE_URL in deploy/.env.production}"
|
||||
ARR_OBJECT_PREFIX: "${ARR_OBJECT_PREFIX:-arr}"
|
||||
ARR_OSS_REGION: "${ARR_OSS_REGION:?set ARR_OSS_REGION}"
|
||||
ARR_OSS_ENDPOINT: "${ARR_OSS_ENDPOINT:-}"
|
||||
ARR_OSS_BUCKET: "${ARR_OSS_BUCKET:?set ARR_OSS_BUCKET}"
|
||||
OSS_ACCESS_KEY_ID: "${OSS_ACCESS_KEY_ID:?set OSS_ACCESS_KEY_ID or adapt Compose for a RAM role}"
|
||||
OSS_ACCESS_KEY_SECRET: "${OSS_ACCESS_KEY_SECRET:?set OSS_ACCESS_KEY_SECRET or adapt Compose for a RAM role}"
|
||||
OSS_SESSION_TOKEN: "${OSS_SESSION_TOKEN:-}"
|
||||
ARR_MCP_BEARER_TOKEN: "${ARR_MCP_BEARER_TOKEN:?set ARR_MCP_BEARER_TOKEN}"
|
||||
expose:
|
||||
- "8890"
|
||||
tmpfs:
|
||||
- /tmp:size=64m,mode=1777
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
cap_drop:
|
||||
- ALL
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- python
|
||||
- -c
|
||||
- >-
|
||||
import socket;
|
||||
connection=socket.create_connection(('127.0.0.1',8890),5);
|
||||
connection.close()
|
||||
import sys,urllib.request;
|
||||
urllib.request.urlopen('http://127.0.0.1:8765/healthz',timeout=5).read();
|
||||
sys.exit(0)
|
||||
interval: 15s
|
||||
timeout: 6s
|
||||
retries: 12
|
||||
@@ -116,14 +58,9 @@ services:
|
||||
depends_on:
|
||||
web:
|
||||
condition: service_healthy
|
||||
mcp:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
WEB_PUBLIC_HOST: "${WEB_PUBLIC_HOST:?set WEB_PUBLIC_HOST}"
|
||||
MCP_PUBLIC_HOST: "${MCP_PUBLIC_HOST:?set MCP_PUBLIC_HOST}"
|
||||
ACME_EMAIL: "${ACME_EMAIL:?set ACME_EMAIL}"
|
||||
WEB_BASIC_AUTH_USER: "${WEB_BASIC_AUTH_USER:?set WEB_BASIC_AUTH_USER}"
|
||||
WEB_BASIC_AUTH_PASSWORD_HASH: "${WEB_BASIC_AUTH_PASSWORD_HASH:?set WEB_BASIC_AUTH_PASSWORD_HASH}"
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
@@ -136,7 +73,6 @@ services:
|
||||
- no-new-privileges:true
|
||||
|
||||
volumes:
|
||||
arr_runtime:
|
||||
arr_outputs:
|
||||
caddy_data:
|
||||
caddy_config:
|
||||
|
||||
Reference in New Issue
Block a user