> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tinycloud.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Self-Hosting Overview

> Run your own TinyCloud node

Run this node when you want to host TinyCloud yourself instead of using a managed node.

## What the node does

* Serves the HTTP API
* Verifies authentication and delegations
* Stores KV, SQL, and block data
* Exposes health and metrics endpoints
* Supports local filesystem, SQLite, PostgreSQL, MySQL, and S3-compatible storage backends

## Default ports

| Port   | Purpose                                      |
| ------ | -------------------------------------------- |
| `8000` | Main HTTP API                                |
| `8001` | Prometheus metrics when telemetry is enabled |

<Note>
  `relay.port` currently defaults to `8081` in configuration, but the node server
  does not start a relay listener from that setting. Do not publish `8081` for the
  minimal node unless a deployment-specific relay process requires it.
</Note>

## Start here

1. Choose [Docker](/hosting/docker) or your own process supervisor and launch the node
2. Verify `http://localhost:8000/healthz` returns a successful response
3. Read [Configuration](/hosting/configuration), then choose production database and block-storage backends
4. Enable monitoring after the node starts cleanly with persistent storage

<CardGroup cols={2}>
  <Card title="Configuration" icon="settings" href="/hosting/configuration">
    Canonical config keys, env vars, and defaults.
  </Card>

  <Card title="Docker" icon="container" href="/hosting/docker">
    Minimal container setup and volume layout.
  </Card>

  <Card title="Databases" icon="database" href="/hosting/databases">
    SQLite, PostgreSQL, and MySQL connection strings.
  </Card>

  <Card title="Monitoring" icon="activity" href="/hosting/monitoring">
    Health checks, metrics, and tracing.
  </Card>
</CardGroup>
