Skip to content

Commit 70585e4

Browse files
authored
Merge branch 'main' into rae/fix-naming
2 parents 527d3a0 + b8f945d commit 70585e4

File tree

20 files changed

+204
-211
lines changed

20 files changed

+204
-211
lines changed

concepts/relays.mdx

Lines changed: 52 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,74 +2,77 @@
22
title: "Relays"
33
---
44

5-
Relays are servers that temporarily route encrypted traffic until a direct, P2P connection is
6-
feasible. Once this direct path is set up, the relay server steps back, and the
7-
data flows directly between devices. This approach allows Iroh to maintain a
8-
secure, low-latency connection, even in challenging network situations.
5+
Relays are servers that temporarily route encrypted traffic until a direct, P2P connection is feasible. Once this direct path is set up, the relay server steps back, and the data flows directly between devices. This approach allows Iroh to maintain a secure, low-latency connection, even in challenging network situations.
6+
There are situations where a direct connection can’t be established, and in those cases traffic falls back to running through the relay. Relay servers do not have access to the data being transmitted, as it’s encrypted end-to-end.
97

10-
There are situations where a direct connection _can't_ be established, and in
11-
those cases traffic falls back to running through the relay. Relay servers **do
12-
not** have access to the data being transmitted, as it's encrypted end-to-end.
8+
Relays serve two roles in iroh:
139

14-
We're working on formally collecting the direct connection rate from production
15-
iroh networks. Anecdotal evidence points to roughly 9 out of 10 networking conditions we see in practice allowing a direct connection to be established. Our NAT traversal implementation is deterministic - if it works between two devices once, it should continue to work as long as their networking setup remains stable.
10+
1. **NAT Traversal.** When two endpoints first connect, they exchange network information through the relay to attempt a direct P2P connection.
11+
2. **Encrypted traffic fallback.** If a direct connection can't be established (due to strict NATs, firewalls, or other network conditions), traffic flows through the relay instead.
1612

17-
## Public relays
13+
Once a direct path is established, the relay steps back and data flows peer-to-peer. Relay servers **cannot read** any of the traffic they handle — it's encrypted end-to-end.
1814

19-
iroh is configured with a set of public relays provided by [n0.computer](https://n0.computer) that are free to use. The public relays rate-limit
20-
traffic that flows through the relay. This is to prevent abuse, and ensure the
21-
relays are available to everyone. There are no guarantees around uptime or
22-
performance when using the public relays.
15+
In practice, roughly 9 out of 10 networking conditions allow a direct connection. iroh's holepunching implementation is deterministic: if it works between two devices once, it will continue to work as long as their networking setup stays stable.
2316

24-
We recommend using the public relays for development and testing, as they are
25-
free to use and require no setup. However, for production systems, we recommend
26-
using dedicated relays instead.
17+
## Deploy your own relay
18+
19+
<Card
20+
title="Deploy a dedicated relay"
21+
icon="server"
22+
href="https://services.iroh.computer?utm_source=docs&utm_content=concepts-relays"
23+
>
24+
Sign up for Iroh Services and spin up a managed relay for your project in minutes.
25+
</Card>
2726

28-
## Dedicated relays
2927

30-
For production use, we recommend using dedicated relays. Dedicated relays are relay
31-
servers that are either self-hosted or provided as a managed service. Dedicated
32-
relays provide better performance, security, and uptime guarantees compared to
33-
the public relays.
28+
## Why relays are better
3429

35-
## Why this architecture is powerful
30+
Unlike traditional servers, relay servers are **stateless**. They don't store your application data — they just facilitate connections.
3631

37-
This approach makes uptime management significantly easier compared to
38-
traditional client-server architectures:
32+
- **No database synchronization.** Nothing to replicate across relay instances.
33+
- **No state migration.** When a relay goes down, clients reconnect to another with no data loss.
34+
- **Simple scaling.** Spin relay instances up or down like any lightweight service.
35+
- **Automatic failover.** Iroh can attempt to connect to multiple relays automatically; as long as one is reachable, your peers find each other.
3936

40-
**Stateless servers, stateful clients**
41-
Unlike traditional servers that store your application's data and state, relay
42-
servers are just connection facilitators. All your business logic and data lives
43-
in your clients. This means:
37+
This inverts the traditional model: relays are disposable connection facilitators, while your clients own all the application state and logic.
4438

45-
- **No database synchronization** - You don't need to worry about keeping multiple server databases in sync or handling data replication
46-
- **No state migration** - When a relay goes down, clients simply reconnect to another relay without any data loss or state transfer
47-
- **Simple server management** - Relay servers are lightweight and easy to spin up or down. No complex deployment procedures or data migration steps
39+
## Public relays
4840

49-
**Automatic failover**
50-
iroh clients automatically try multiple relays when connecting. If one relay is unavailable, clients seamlessly fall back to another relay in your list without application-level retry logic. Your peers will find each other as long as at least one relay is reachable.
41+
Iroh hardcodes a set of public relays provided by
42+
[n0.computer](https://n0.computer), free to use.
5143

52-
**Multi-cloud resilience**
53-
For even better guarantees, you can distribute relays across multiple cloud providers. If one provider experiences an outage, your application keeps running on relays hosted elsewhere. Since relays don't store state, you can freely mix providers without worrying about cross-cloud data consistency.
44+
Public relays:
5445

55-
**Cost-effective scaling**
56-
Adding capacity means spinning up more lightweight relay instances, not provisioning databases or managing complex stateful server infrastructure. You can easily scale up for peak usage and scale down during quiet periods.
46+
- Rate-limit traffic to prevent abuse
47+
- Carry no uptime or performance guarantees
48+
- Are shared across all iroh developers worldwide
5749

58-
This architecture inverts the traditional model: instead of treating servers as precious stateful resources and clients as disposable, relay-based architectures treat relays as disposable connection facilitators while clients own the application state and logic.
50+
**Public relays are suitable for development and testing.** For production, use dedicated relays.
5951

60-
## Connection Changes
52+
## Dedicated relays
6153

62-
During the lifespan of a connection, networking conditions can change, for
63-
example when a user switched from 5G to WiFi, plugs in an ethernet cable, or a
64-
sysadmin modifies router configurations. The connection may change from direct
65-
to relayed, or even a mixed combination of the two. Iroh will automatically
66-
switch between direct and relayed connections as needed, without any action
67-
required from the application.
54+
Dedicated relays are relay servers provisioned exclusively for your project — either managed through Iroh Services or self-hosted.
6855

69-
## Read more
56+
They offer:
57+
58+
- **Isolation** — no noisy neighbors; your traffic is yours alone
59+
- **Uptime guarantees** — SLAs available via [Iroh Services](/iroh-services/relays)
60+
- **Version locking** — stay on a specific iroh version or run blue/green deployments
61+
- **Multi-region & multi-cloud** — deploy relays across regions and providers for resilience
62+
63+
## Deploy your own relay
64+
65+
<Card
66+
title="Deploy a dedicated relay"
67+
icon="server"
68+
href="https://services.iroh.computer?utm_source=docs&utm_content=concepts-relays"
69+
>
70+
Sign up for Iroh Services and spin up a managed relay for your project in minutes.
71+
</Card>
72+
73+
Or self-host using the open-source relay binary:
7074

71-
- [Dedicated infrastructure guide](/deployment/dedicated-infrastructure)
7275
- [Relay source code](https://github.com/n0-computer/iroh/tree/main/iroh-relay)
7376
- [Relay binary releases](https://github.com/n0-computer/iroh/releases)
74-
- [Managed relay service](/iroh-services/relays)
77+
- [Dedicated infrastructure guide](/deployment/dedicated-infrastructure)
7578

deployment/dedicated-infrastructure.mdx

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
title: "Dedicated Infrastructure"
33
---
44

5+
import RelayEndpointConfig from '/snippets/relay-endpoint-config.mdx';
6+
57
By default, iroh will use public shared infrastructure to facilitate connections over
68
address lookup and end-to-end encryption over relays. This infrastructure comprises:
79

@@ -17,14 +19,30 @@ We recommend using the public relays for development and testing, as they are
1719
free to use and require no setup. However, for production systems, we recommend
1820
using dedicated relays instead.
1921

22+
<Card
23+
title="Deploy a dedicated relay"
24+
icon="server"
25+
href="https://services.iroh.computer?utm_source=docs&utm_content=concepts-relays"
26+
>
27+
Sign up for Iroh Services and spin up a managed relay for your project in minutes.
28+
</Card>
29+
30+
31+
<Card
32+
title="Self-host a relay"
33+
icon="wrench"
34+
href="https://github.com/n0-computer/iroh/tree/main/iroh-relay"
35+
>
36+
Learn how to self-host a relay for your project.
37+
</Card>
38+
2039
## Using dedicated relays
2140

22-
To use dedicated relays with your iroh endpoint, you need to configure the
23-
endpoint to use your relay's URL.
41+
To use dedicated relays with your iroh endpoint, configure it with your relay URLs:
42+
43+
<RelayEndpointConfig />
2444

25-
For detailed information on configuring custom relays, including code examples
26-
and API documentation, see the [iroh relay configuration
27-
guide](/iroh-services/relays/managed).
45+
For full deployment steps, see the [managed relay guide](/iroh-services/relays/managed).
2846

2947
## Why use dedicated relays in production?
3048

@@ -33,21 +51,13 @@ enhanced security, better uptime guarantees, and greater control over your netwo
3351
using your own servers, you can optimize connection speeds and reduce
3452
latency for your specific use case.
3553

36-
If you require more control over your relay infrastructure, you can choose to
37-
[self-host your own
38-
relay](https://github.com/n0-computer/iroh/tree/main/iroh-relay) or [upgrade to
39-
a managed relay service](/iroh-services/relays). This managed relay
40-
service is monitored by [n0.computer](https://n0.computer) who maintain the iroh project, and
41-
offers SLAs around uptime and performance.
42-
43-
[Sign up for a free account](https://n0des.iroh.computer?utm_source=docs&utm_content=dedicated-infrastructure) to get started.
4454

4555
## Recommended setup
4656

4757
We recommend setting up at least two relays for redundancy in different regions.
4858
For example, you could set up one relay in North America and another in Europe.
4959

50-
### Why this architecture is powerful
60+
## Why this architecture is powerful
5161

5262
This approach makes uptime management significantly easier compared to
5363
traditional client-server architectures:

docs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@
140140
"primary": {
141141
"type": "button",
142142
"label": "Login",
143-
"href": "https://n0des.iroh.computer?utm_source=docs&utm_content=nav-login"
143+
"href": "https://services.iroh.computer?utm_source=docs&utm_content=nav-login"
144144
}
145145
},
146146
"contextual": {

images/add-relay.png

46.6 KB
Loading

images/create-project.png

99.9 KB
Loading

images/region-relay.png

50.8 KB
Loading

iroh-services/access.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ To authorize endpoints to push metrics to your project, Iroh Services uses API K
3636

3737
```rust
3838
use iroh::Endpoint;
39-
use iroh_n0des::Client;
39+
use iroh_services::Client;
4040

4141
#[tokio::main]
4242
async fn main() -> anyhow::Result<()> {

iroh-services/billing/faq.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ details.
3939
## Where can I see my invoices?
4040

4141
Invoices are available in the **Settings** > **Billing** section of your
42-
[project dashboard](https://n0des.iroh.computer).
42+
[project dashboard](https://services.iroh.computer).
4343

4444
## Are taxes included in the prices?
4545

iroh-services/billing/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Iroh Services offers plans to fit your needs, from free tiers for experimentatio
1414
| **Net Diagnostics** | Community support | Priority support tickets | Guaranteed SLA response times |
1515
| **Support** | Discord | Email & Discord | Dedicated support & professional services |
1616

17-
For full plan details and pricing, visit the [pricing page](https://n0des.iroh.computer/pricing).
17+
For full plan details and pricing, visit the [pricing page](https://services.iroh.computer/pricing).
1818

1919
## How billing works
2020

@@ -23,7 +23,7 @@ Iroh Services billing is usage-based, calculated monthly. Your bill is determine
2323
- **Your plan tier** — each plan includes a base set of features and resource allocations.
2424
- **Resource usage** — additional charges may apply for usage beyond what's included in your plan, such as metrics volume or relay bandwidth.
2525

26-
Billing is managed through the [Iroh Services dashboard](https://n0des.iroh.computer). You can view your current plan, usage, and invoices at any time.
26+
Billing is managed through the [Iroh Services dashboard](https://services.iroh.computer). You can view your current plan, usage, and invoices at any time.
2727

2828
## Next steps
2929

iroh-services/billing/manage-subscription.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "Manage Your Subscription"
33
description: "Upgrade, downgrade, or cancel your Iroh Services subscription"
44
---
55

6-
Manage your subscription from the [Iroh Services dashboard](https://n0des.iroh.computer).
6+
Manage your subscription from the [Iroh Services dashboard](https://services.iroh.computer).
77

88
## Upgrade your plan
99

0 commit comments

Comments
 (0)