-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrender.yaml
More file actions
35 lines (35 loc) · 1.78 KB
/
Copy pathrender.yaml
File metadata and controls
35 lines (35 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Render deployment for the SLAB indexer.
#
# Only the indexer is hosted here. It must be a long-lived process — it holds the rebuilt book
# state in memory and polls the chain head — so it cannot run on a serverless platform. The web
# app goes to Vercel (see vercel.json); the contracts are already on-chain; the maker is a script
# you run locally during a demo, not a service.
services:
- type: web
name: slab-indexer
runtime: node
# `free` is a valid Blueprint plan value; `starter` is not in Render's accepted list at all.
# Free web services SPIN DOWN after 15 minutes without inbound traffic, and this service keeps
# the rebuilt order book in memory — so a spin-down means a full re-sync on the next request,
# visible as a blank wall for ~60s. Fine for development; for a live demo either upgrade to a
# paid instance or keep it warm by pinging /ping every ~10 minutes (cheap: does no state work).
plan: free
rootDir: indexer
buildCommand: npm ci
startCommand: npx tsx src/index.ts
healthCheckPath: /ping
envVars:
# Fast endpoint for reads and tip-following.
- key: MONAD_TESTNET_RPC
sync: false # set in the Render dashboard; may contain an API key
# SEPARATE endpoint for historical backfill, and this split is deliberate:
# the public RPC allows a 100-block eth_getLogs range where Alchemy's free tier allows 10,
# so backfill is ~6x faster on the public one despite its higher per-request latency.
- key: LOGS_RPC
value: https://testnet-rpc.monad.xyz
- key: PORT
value: "8080"
# Skip pre-deployment history. This is the block the current OrderBook was deployed in;
# update it whenever you redeploy the contracts.
- key: START_BLOCK
value: "57867851"