Skip to content

Commit 0eec474

Browse files
authored
Merge pull request #608 from tembo/feature/aws-docs
updating for self hosted
2 parents eddb249 + 7afb918 commit 0eec474

10 files changed

Lines changed: 699 additions & 403 deletions

File tree

docs.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,15 @@
6666
"pages": [
6767
"features/self-hosted/deploy/aws",
6868
"features/self-hosted/deploy/gcp",
69-
"features/self-hosted/deploy/azure"
69+
"features/self-hosted/deploy/azure",
70+
"features/self-hosted/deploy/kubernetes"
71+
]
72+
},
73+
{
74+
"group": "Integrations",
75+
"pages": [
76+
"features/self-hosted/integrations/github",
77+
"features/self-hosted/integrations/slack"
7078
]
7179
},
7280
"features/self-hosted/changelog"

features/self-hosted/deploy/aws.mdx

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ The Tembo self-hosted stack runs as a single NixOS machine. All services sit beh
99

1010
| Service | Path | Port (internal) |
1111
|---|---|---|
12-
| tembo-web (Next.js frontend) | `/` | 3000 |
13-
| tembo-ts-api (REST API) | `/api/*` | 3001 |
12+
| Web UI | `/` | 3000 |
13+
| API | `/api/*` | 3001 |
1414
| Admin UI | `/admin/` | 3002 |
1515
| Installer / setup wizard | `/installer/` | 3999 |
1616
| PostgreSQL 16 || 5432 |
@@ -55,9 +55,9 @@ Tembo will share the AMI with your account. You will receive an AMI ID (e.g. `am
5555
| Disk | 128 GB | 256 GB |
5656

5757
<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.
6161
</Note>
6262

6363

@@ -66,11 +66,11 @@ Tembo will share the AMI with your account. You will receive an AMI ID (e.g. `am
6666

6767
1. Go to **EC2 > Instances > Launch instances**
6868
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)
7070
4. Under **Key pair**, select an existing key pair or create a new one — you will need this to SSH in
7171
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
7474
8. Launch the instance
7575

7676
### Via the AWS CLI
@@ -89,7 +89,7 @@ aws ec2 run-instances \
8989
Replace `CoreCount` with the number of physical cores for your instance type. For `c5.metal` this is `48`.
9090

9191
<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.
9393
</Note>
9494

9595
---
@@ -100,13 +100,11 @@ By default, EC2 instances block all inbound traffic. Add inbound rules to allow
100100

101101
| Type | Protocol | Port | Source | Purpose |
102102
|---|---|---|---|---|
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 |
104104
| Custom TCP | TCP | 3999 | Your IP | Installer / setup wizard |
105105
| Custom TCP | TCP | 8888 | Your IP | VS Code server (config editing) |
106106
| SSH | TCP | 22 | Your IP | SSH access |
107107

108-
Ports 3999 and 8888 are only needed during initial setup. You can remove those rules after configuration is complete.
109-
110108
### Via the AWS Console
111109

112110
1. Go to **EC2 > Security Groups**
@@ -177,18 +175,16 @@ Ensure these keys are present and correct:
177175
```json
178176
{
179177
"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>"
182180
}
183181
```
184182

185183
| Key | Notes |
186184
|---|---|
187185
| `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. |
192188

193189
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:
194190

@@ -209,7 +205,7 @@ The config seed runs before `tembo-ts-api`, `tembo-ts-cron`, and agent workers o
209205
Open a browser and navigate to:
210206

211207
```
212-
http://<instance-public-ip>
208+
http://<instance-ip>
213209
```
214210

215211
You should see the Tembo sign-up or sign-in screen.
@@ -286,7 +282,6 @@ cat /var/lib/tembo/config.json
286282

287283
- Confirm the instance is in a **Running** state in the EC2 console
288284
- Verify the security group has an inbound rule for port 80 (and port 22 for SSH)
289-
- If using a VPC, confirm the instance is in a **public subnet** with an **Internet Gateway** attached, or that you have a route to reach it
290285
- If using an Elastic IP, ensure it is associated with the instance
291286

292287
---

0 commit comments

Comments
 (0)