You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: features/self-hosted/deploy/aws.mdx
+15-20Lines changed: 15 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,8 +9,8 @@ The Tembo self-hosted stack runs as a single NixOS machine. All services sit beh
9
9
10
10
| Service | Path | Port (internal) |
11
11
|---|---|---|
12
-
|tembo-web (Next.js frontend)|`/`| 3000 |
13
-
|tembo-ts-api (REST API)|`/api/*`| 3001 |
12
+
|Web UI|`/`| 3000 |
13
+
| API |`/api/*`| 3001 |
14
14
| Admin UI |`/admin/`| 3002 |
15
15
| Installer / setup wizard |`/installer/`| 3999 |
16
16
| PostgreSQL 16 | — | 5432 |
@@ -55,9 +55,9 @@ Tembo will share the AMI with your account. You will receive an AMI ID (e.g. `am
55
55
| Disk | 128 GB | 256 GB |
56
56
57
57
<Note>
58
-
We recommend **`c5.metal`** for the best experience more than any other instance type. The other `.metal` instances are also good choices.
59
-
Instances that have 8th-gen Intel Nitro will also work (Eg. `m8i.*`), just slower than metal. We also support virtualization.
60
-
All other instance types are not fully supported.
58
+
We recommend **`c5.metal`**or another bare-metal instance for the best experience. Bare-metal instances expose `/dev/kvm` natively so sandbox VMs run with full hardware acceleration.
59
+
60
+
8th-gen Intel Nitro instances (e.g. `m8i.*`) also work but require **nested virtualization** to be enabled at launch (see step 7 below). All other instance types fall back to software emulation, which is significantly slower.
61
61
</Note>
62
62
63
63
@@ -66,11 +66,11 @@ Tembo will share the AMI with your account. You will receive an AMI ID (e.g. `am
66
66
67
67
1. Go to **EC2 > Instances > Launch instances**
68
68
2. Under **Application and OS Images**, choose **My AMIs** and select the AMI shared by Tembo
69
-
3. Choose an instance type (`c5.metal` recommended, or `m8i.xlarge` or equivalent)
69
+
3. Choose an instance type (`c5.metal` recommended, or `m8i.4xlarge` or equivalent)
70
70
4. Under **Key pair**, select an existing key pair or create a new one — you will need this to SSH in
71
71
5. Under **Network settings**, create or select a security group (you will configure inbound rules in the next step)
72
-
6. Under **Configure storage**, set the root volume to at least **128 GiB**
73
-
7.Expand **Advanced details** and enable**Nested virtualization**
72
+
6. Under **Configure storage**, set the root volume to at least **256 GiB**
73
+
7.If using a **non-bare-metal** instance (e.g. `m8i.*`): expand **Advanced details** and set**Nested virtualization** to **Enable**. Skip this step for bare-metal instances (`c5.metal`, `r7i.metal-*`) — nested virtualization is not available on bare metal and is not needed
74
74
8. Launch the instance
75
75
76
76
### Via the AWS CLI
@@ -89,7 +89,7 @@ aws ec2 run-instances \
89
89
Replace `CoreCount` with the number of physical cores for your instance type. For `c5.metal` this is `48`.
90
90
91
91
<Note>
92
-
Nested virtualization is required for Tembo's sandbox execution environment. Without it, agent task sandboxes will fail to start.
92
+
Nested virtualization is only required for non-bare-metal instances (e.g. `m8i.*`). Bare-metal instances (`c5.metal`, `r7i.metal-*`) expose KVM natively — do not enable nested virtualization on them.
93
93
</Note>
94
94
95
95
---
@@ -100,13 +100,11 @@ By default, EC2 instances block all inbound traffic. Add inbound rules to allow
100
100
101
101
| Type | Protocol | Port | Source | Purpose |
102
102
|---|---|---|---|---|
103
-
| Custom TCP | TCP | 80 |`0.0.0.0/0` (or your IP range) | Tembo web UI and API |
103
+
| Custom TCP | TCP | 80 |(Your IP range) | Tembo web UI and API |
104
104
| Custom TCP | TCP | 3999 | Your IP | Installer / setup wizard |
105
105
| Custom TCP | TCP | 8888 | Your IP | VS Code server (config editing) |
106
106
| SSH | TCP | 22 | Your IP | SSH access |
107
107
108
-
Ports 3999 and 8888 are only needed during initial setup. You can remove those rules after configuration is complete.
109
-
110
108
### Via the AWS Console
111
109
112
110
1. Go to **EC2 > Security Groups**
@@ -177,18 +175,16 @@ Ensure these keys are present and correct:
177
175
```json
178
176
{
179
177
"betterAuth.secret": "<random string, at least 32 characters>",
180
-
"api.base": "http://<instance-public-ip>/api/",
181
-
"frontend.url": "http://<instance-public-ip>"
178
+
"api.base": "http://<instance-ip>/api/",
179
+
"frontend.url": "http://<instance-ip>"
182
180
}
183
181
```
184
182
185
183
| Key | Notes |
186
184
|---|---|
187
185
|`betterAuth.secret`| Auto-generated on first boot if missing. Leave it if it is already set. |
188
-
|`api.base`| Must match the public URL of the API. **Must end with a trailing `/`**. |
189
-
|`frontend.url`| Defaults to `http://localhost:3000`, which breaks auth on a remote VM. Set this to the actual public IP or hostname. |
190
-
191
-
For the full list of available configuration keys, see [Environment Variables](/features/self-hosted/environment-variables).
186
+
|`api.base`| Must match the URL of the API. **Must end with a trailing `/`**. |
187
+
|`frontend.url`| Defaults to `http://localhost:3000`, which breaks auth on a remote VM. Set this to the actual IP or hostname. |
192
188
193
189
After saving, restart the API. There is a background service that should restart the API for you on finishing edits, but you can also do this from a terminal in the VS Code server, or via SSH:
194
190
@@ -209,7 +205,7 @@ The config seed runs before `tembo-ts-api`, `tembo-ts-cron`, and agent workers o
209
205
Open a browser and navigate to:
210
206
211
207
```
212
-
http://<instance-public-ip>
208
+
http://<instance-ip>
213
209
```
214
210
215
211
You should see the Tembo sign-up or sign-in screen.
0 commit comments