From 8c795a3fa2b2e65484398dbd4c96599780108e09 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 8 Jun 2026 00:26:48 -0400 Subject: [PATCH] Run API as an API-only cluster --- .env.example | 1 + docker-compose.external-db.yml | 1 + docker-compose.yml | 1 + ecosystem.config.js | 4 ++-- full-setup/docker-compose-mainnet.yml | 1 + 5 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 756a6d8..baa44c2 100644 --- a/.env.example +++ b/.env.example @@ -19,6 +19,7 @@ API_PORT=3334 # Keep API_BIND_HOST as 127.0.0.1 when a reverse proxy terminates public traffic. API_BIND_HOST=127.0.0.1 API_PUBLIC_PORT=3334 +API_WORKERS=4 # Plain TCP Stratum ports accept both SV1 JSON-RPC and SV2 Noise/binary traffic. STRATUM_PORTS=3333,3332,3331,3330 diff --git a/docker-compose.external-db.yml b/docker-compose.external-db.yml index 7a4830d..c18d728 100644 --- a/docker-compose.external-db.yml +++ b/docker-compose.external-db.yml @@ -50,6 +50,7 @@ services: REDIS_URL: ${REDIS_URL:-redis://redis:6379} API_PORT: ${API_PORT:-3334} API_SECURE: ${API_SECURE:-false} + API_WORKERS: ${API_WORKERS:-4} PM2_ENABLED: ${PM2_ENABLED:-true} STRATUM_WORKERS: ${STRATUM_WORKERS:-2} STRATUM_PORTS: ${STRATUM_PORTS:-3333,3332,3331,3330} diff --git a/docker-compose.yml b/docker-compose.yml index 79f1b89..59600ee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -79,6 +79,7 @@ services: REDIS_URL: redis://redis:6379 API_PORT: ${API_PORT:-3334} API_SECURE: ${API_SECURE:-false} + API_WORKERS: ${API_WORKERS:-4} PM2_ENABLED: ${PM2_ENABLED:-true} STRATUM_WORKERS: ${STRATUM_WORKERS:-2} STRATUM_PORTS: ${STRATUM_PORTS:-3333,3332,3331,3330} diff --git a/ecosystem.config.js b/ecosystem.config.js index 569b083..5f82293 100644 --- a/ecosystem.config.js +++ b/ecosystem.config.js @@ -4,8 +4,8 @@ module.exports = { { name: 'api', script: './dist/main.js', - instances: 1, - exec_mode: 'fork', + instances: parseInt(process.env.API_WORKERS || '4', 10), + exec_mode: 'cluster', env: { MASTER: 'false', API_ONLY: 'true', diff --git a/full-setup/docker-compose-mainnet.yml b/full-setup/docker-compose-mainnet.yml index dd461cd..2d438c0 100644 --- a/full-setup/docker-compose-mainnet.yml +++ b/full-setup/docker-compose-mainnet.yml @@ -97,6 +97,7 @@ services: DB_PASSWORD: public_pool DB_DATABASE: public_pool_mainnet REDIS_URL: redis://redis:6379 + API_WORKERS: ${API_WORKERS:-4} PM2_ENABLED: "true" STRATUM_WORKERS: ${STRATUM_WORKERS:-2}