From 30efaf3e9ee0a721ade70c246a17dfbc6b0052bd Mon Sep 17 00:00:00 2001 From: 0xKurt Date: Wed, 11 Sep 2024 13:19:25 +0200 Subject: [PATCH] Add port 8081 for indexer --- README.md | 1 + fly.toml | 29 ++++++++++++++++-- src/config.ts | 85 +++++++++++++++++++++++++++++---------------------- 3 files changed, 76 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 8e8f7ad3..c86c817c 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ npm run dev -- --from-block=12345 # start indexing from the 12345th block npm run dev -- --run-once # index and exit without watching for events npm run dev -- --no-cache # disable cache npm run dev -- --log-level=trace # set log level +npm run dev -- --port=8081 # start web service on a given port ``` ## Running in production diff --git a/fly.toml b/fly.toml index 9da069b7..d00eeab0 100644 --- a/fly.toml +++ b/fly.toml @@ -24,7 +24,7 @@ kill_timeout = '5s' PASSPORT_SCORER_ID=335 [processes] - indexer = 'npm start -- --indexer --http' + indexer = 'npm start -- --indexer --http --port=8081' web = 'npm start -- --http --http-wait-for-sync=false' [[mounts]] @@ -36,7 +36,30 @@ kill_timeout = '5s' auto_extend_size_limit = "100GB" processes = ['indexer', 'web'] -[http_service] +[http_service.indexer] + internal_port = 8081 + force_https = true + auto_stop_machines = true + auto_start_machines = true + min_machines_running = 1 + processes = ['indexer'] + + [http_service.indexer.concurrency] + type = 'requests' + hard_limit = 250 + soft_limit = 200 + +[checks.indexer_http] + port = 8081 + type = 'http' + interval = '15s' + timeout = '10s' + grace_period = '30s' + method = 'get' + path = '/api/v1/status' + processes = ['indexer'] + +[http_service.web] internal_port = 8080 force_https = true auto_stop_machines = true @@ -44,7 +67,7 @@ kill_timeout = '5s' min_machines_running = 2 processes = ['web'] - [http_service.concurrency] + [http_service.web.concurrency] type = 'requests' hard_limit = 250 soft_limit = 200 diff --git a/src/config.ts b/src/config.ts index 8822b1a4..c5fc26ff 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1839,6 +1839,44 @@ export type Config = { }; export function getConfig(): Config { + const { values: args } = parseArgs({ + options: { + "to-block": { + type: "string", + }, + "from-block": { + type: "string", + }, + "drop-db": { + type: "boolean", + }, + "rm-cache": { + type: "boolean", + }, + "log-level": { + type: "string", + }, + "run-once": { + type: "boolean", + }, + "no-cache": { + type: "boolean", + }, + "http-wait-for-sync": { + type: "string", + }, + http: { + type: "boolean", + }, + indexer: { + type: "boolean", + }, + port: { + type: "string", + }, + }, + }); + const buildTag = z .union([z.string(), z.null()]) .default(null) @@ -1849,7 +1887,17 @@ export function getConfig(): Config { .transform((value) => value === "true") .parse(process.env.ENABLE_RESOURCE_MONITOR); - const apiHttpPort = z.coerce.number().parse(process.env.PORT); + const portSchema = z.number().int().nonnegative().max(65535); + + const portOverride = z + .union([portSchema, z.undefined()]) + .optional() + .parse(args["port"]); + + const apiHttpPort = + portOverride !== undefined + ? portOverride + : portSchema.parse(z.coerce.number().parse(process.env.PORT)); const pinoPretty = z .enum(["true", "false"]) @@ -1890,41 +1938,6 @@ export function getConfig(): Config { .default(path.join(storageDir, "cache")) .parse(process.env.CACHE_DIR); - const { values: args } = parseArgs({ - options: { - "to-block": { - type: "string", - }, - "from-block": { - type: "string", - }, - "drop-db": { - type: "boolean", - }, - "rm-cache": { - type: "boolean", - }, - "log-level": { - type: "string", - }, - "run-once": { - type: "boolean", - }, - "no-cache": { - type: "boolean", - }, - "http-wait-for-sync": { - type: "string", - }, - http: { - type: "boolean", - }, - indexer: { - type: "boolean", - }, - }, - }); - const chains = z .string() .or(z.literal("all"))