graph TB
User[User Browser]
ExtNginx[External Nginx
gabrielpenman.com
SSL/TLS]
subgraph Docker["Docker Swarm (Manager Node)"]
Swarm[Docker Swarm API
Orchestration]
subgraph Network["Overlay Network: arbitrage-network"]
Webapp[Webapp
:3005
nginx]
Pool[Pool API
:7500
FastAPI]
Registry[Registry API
:7503
FastAPI]
ConfigService[Config Service
:7504
FastAPI]
TelegramService[Telegram Service
:7505
FastAPI + Bot]
NetworkAPI[Network API
:8890
FastAPI]
Proxy[Network Proxy
:8888
HTTP Gateway]
Mongo[(MongoDB
:27017
Data Store)]
FinderBot[Finder Bot
:8080
Playwright]
EnhancerBot[Enhancer Bot
:8080
Gemini AI]
end
Volumes[("Docker Volumes
• mongo-data
• mongo-config")]
Configs[("Config Mounts
• /registry/schemas
• /network/proxies.txt
• /network/wg0.conf")]
Socket[("/var/run/docker.sock
Swarm API Access")]
end
Webshare["Webshare Proxy Pool
100 Rotating Proxies"]
subgraph Research["Research Environment (ISOLATED)"]
Playground[Research Playground
:5123
FastAPI + Uvicorn]
ResearchVenv[(Python venv
Isolated dependencies)]
Playground -.->|uses| ResearchVenv
end
User -->|HTTPS /| ExtNginx
User -->|HTTPS /dev/5123| ExtNginx
ExtNginx -->|HTTP :3005| Webapp
ExtNginx -->|HTTP :5123| Playground
Webapp -->|/api/pool/*| Pool
Webapp -->|/api/registry/*| Registry
Webapp -->|/api/config/*| ConfigService
Webapp -->|/api/telegram/*| TelegramService
Webapp -->|/api/network/*| NetworkAPI
TelegramService -->|query status| Pool
TelegramService -->|query bots| Registry
FinderBot -->|claim/release items| Pool
EnhancerBot -->|claim/release items| Pool
FinderBot -->|HTTP requests| Proxy
EnhancerBot -->|HTTP requests| Proxy
FinderBot -->|register schema on startup| Registry
EnhancerBot -->|register schema on startup| Registry
FinderBot -->|load config on startup| ConfigService
EnhancerBot -->|load config on startup| ConfigService
Pool -->|store/query data| Mongo
ConfigService -->|persist configs| Mongo
Mongo -->|persist| Volumes
Proxy -->|rotate sessions| NetworkAPI
NetworkAPI -->|upstream| Webshare
Registry -->|read schemas| Configs
Registry -->|mount socket| Socket
Socket -.->|query services| Swarm
Swarm -.->|orchestrate| FinderBot
Swarm -.->|orchestrate| EnhancerBot
Swarm -.->|scale/health| Pool
Swarm -.->|scale/health| Registry
Swarm -.->|scale/health| NetworkAPI
classDef infrastructure fill:#2d5f8d,stroke:#1a3a52,color:#fff
classDef bot fill:#5d7d2d,stroke:#3a521a,color:#fff
classDef storage fill:#7d2d5d,stroke:#521a3a,color:#fff
classDef external fill:#7d5d2d,stroke:#523a1a,color:#fff
classDef orchestration fill:#8d5d2d,stroke:#523a1a,color:#fff
classDef research fill:#6d2d8d,stroke:#3a1a52,color:#fff
class Pool,Registry,ConfigService,NetworkAPI,Proxy,Webapp infrastructure
class FinderBot,EnhancerBot bot
class Mongo,Volumes,Configs storage
class User,ExtNginx,Webshare external
class Swarm,Socket orchestration
class Playground,ResearchVenv research
| Service | Status | Container Port | Host Port | Access Path | Description |
|---|---|---|---|---|---|
| Pool API | ○ | 7500 | 7500 | /api/pool/* | Task pool management (MongoDB) |
| Registry API | ○ | 7503 | 7503 | /api/registry/* | Bot service discovery & scaling |
| Config Service | ○ | 7504 | 7504 | /api/config/* | Persistent bot configuration (MongoDB) |
| Telegram Service | ○ | 7505 | 7505 | /api/telegram/* | Messaging & notifications via Telegram |
| Network API | ○ | 8890 | 8890 | /api/network/* | Proxy pool management (Webshare) |
| Network Proxy | ○ | 8888 | 8888 | http://localhost:8888 | HTTP proxy gateway for bots |
| Webapp | ● | 3005 | 3005 | / | Dashboard UI (this page) |
| MongoDB | ○ | 27017 | - | mongodb://mongo:27017 | Database (internal only) |
| Finder Bot | ○ | 8080 | - | - | Scrapes product listings |
| Enhancer Bot | ○ | 8080 | - | - | AI enhancement with Gemini |
| ID | Status | Title | Created | Locked By | Actions | |
|---|---|---|---|---|---|---|
| Loading... | ||||||
| Bot ID | Service | State | Desired State | Node | Actions |
|---|---|---|---|---|---|
| Loading... | |||||