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

# Self-Hosted Floe Operations

> Day-to-day operations for a self-hosted Floe instance: upgrading containers, viewing logs, monitoring transfers, backing up stats, and rotating TURN keys.

## Common commands

```bash theme={null}
docker compose logs -f                  # tail logs for all services
docker compose ps                       # check container status and health
docker compose down                     # stop and remove the stack
docker compose restart server           # restart only the signaling server
```

## Update to the latest code

```bash theme={null}
docker compose pull
docker compose up -d
```

That pulls the newest [published images](/docs/self-hosting/images) and restarts. Nothing is built locally, so there is no repository to keep in sync.

<Note>
  Changing `NEXT_PUBLIC_SOCKET_URL` needs only `docker compose up -d`; the client reads it at runtime. See [How the Client Finds the Signaling Server](/docs/self-hosting/build-time-url). `NEXT_PUBLIC_SITE_URL` is the exception: it is written into the page at build time, so the published image omits those tags entirely rather than pointing them at somebody else's domain. See [Container Images](/docs/self-hosting/images) if you want your own.
</Note>

## Health endpoints

The signaling server exposes two health endpoints you can use in load balancers or uptime monitors:

| Endpoint      | Purpose              | Response                                       |
| ------------- | -------------------- | ---------------------------------------------- |
| `GET /health` | Liveness check       | `{ "status": "healthy", "uptime": <seconds> }` |
| `GET /`       | Status and timestamp | `{ "status": "ok", "timestamp": "..." }`       |
