76 lines
2.1 KiB
YAML
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 version tag}
|
|
env_file: .env
|
|
restart: unless-stopped
|
|
stop_grace_period: 60s
|
|
networks: [dev_default]
|
|
|
|
services:
|
|
searxng:
|
|
image: docker.io/searxng/searxng:2026.10.30-ffa88e3ba
|
|
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_research.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 version tag}
|
|
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
|