Regions and outbound internet
6 min
Where your code runs changes what it can reach. Lunax makes that an explicit choice rather than a surprise at 2am.
The two classes
IR_DOMESTIC — inside Iran. Fast for Iranian visitors, and subject to Iranian network conditions: a number of foreign services are not reachable outbound.
GLOBAL_UNRESTRICTED — outside Iran, with unrestricted outbound internet.
Declare what you need
If your code calls the Telegram API, Stripe, OpenAI, or any service that is not reachable from inside Iran, set "requiresEgress": "GLOBAL_UNRESTRICTED" in lunax.json. Deployment then either finds a region that satisfies it, or refuses by name with REGION_UNAVAILABLE.
It never quietly falls back to the default region. Silently placing an unrestricted workload in the exact region it declared it could not run in is worse than not deploying it: your bot would deploy green and then fail every outbound call in production.
A region offering GLOBAL_UNRESTRICTED satisfies a request for IR_DOMESTIC; the reverse is never true.