Files
AlphaPulse/deploy/docker-compose.yml
T
eezd 80d266dba7 Add three-stage cross-domain news research and reading briefings
Group original news into tagged fact packages, review each package with evidence and read-only research, and build complete 72-hour reading lists with independent model selections.

Add paused RSS/Atom subscriptions, news-scoped Skills, versioned analysis records, and locked deployment support for SearXNG. Preserve original news and keep live migration and legacy AI cleanup separately authorized.

Validate with 604 backend tests, 49 frontend tests, 19 CI control tests, lint, type checks, production build, and disposable PostgreSQL migration and three-stage smoke checks.
2026-10-31 22:08:59 +08:00

76 lines
2.1 KiB
YAML

# Run through scripts/deploy.py so every deployment shares the instance lock.
name: alphapulse-dev
x-backend: &backend
image: ${ALPHAPULSE_BACKEND_IMAGE:?Set a verified backend digest}
env_file: .env
restart: unless-stopped
stop_grace_period: 60s
networks: [dev_default]
services:
searxng:
image: docker.io/searxng/searxng@sha256:f4aa660c54d062dedb268be84e821ea24e39f48c7a496af8dd02cc9eedb93847
restart: unless-stopped
volumes: [./searxng.yml:/etc/searxng/settings.yml:ro]
networks: [dev_default]
api:
<<: *backend
container_name: AlphaPulse-dev-api
command: [uvicorn, alphapulse.api.main:app, --host, 0.0.0.0, --port, "8000", --proxy-headers, --forwarded-allow-ips, "172.18.0.0/16"]
healthcheck:
test: [CMD, python, -c, "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/health', timeout=3)"]
interval: 5s
timeout: 4s
retries: 12
crawler:
<<: *backend
container_name: AlphaPulse-dev-crawler
command: [python, -m, alphapulse.crawler.manager]
market:
<<: *backend
container_name: AlphaPulse-dev-market
command: [python, -m, alphapulse.market.worker]
trader:
<<: *backend
container_name: AlphaPulse-dev-trader
command: [python, -m, alphapulse.trading.engine]
news-risk:
<<: *backend
container_name: AlphaPulse-dev-news-risk
command: [python, -m, alphapulse.news_risk.worker]
calendar:
<<: *backend
container_name: AlphaPulse-dev-calendar
command: [python, -m, alphapulse.calendar.worker]
jin10-calendar:
<<: *backend
container_name: AlphaPulse-dev-jin10-calendar
command: [python, -m, alphapulse.calendar.jin10_worker]
web:
image: ${ALPHAPULSE_WEB_IMAGE:?Set a verified web digest}
container_name: AlphaPulse-dev
restart: unless-stopped
depends_on:
api:
condition: service_healthy
healthcheck:
test: [CMD, wget, -q, -O, /dev/null, "http://127.0.0.1/api/health"]
interval: 5s
timeout: 4s
retries: 12
ports:
- 127.0.0.1:21005:80
networks: [dev_default]
networks:
dev_default:
external: true