# Dashboard

Everything the CLI does, in your browser: deploy, watch builds live, read logs and metrics, roll back, scale, and manage domains, databases, variables, workers, and your team.

Sign in at your Deplane sign-in page with your passkey. The dashboard uses the same API as the CLI, so plan limits, permissions, and the activity log are the same whichever you use. Risky actions (deleting an app, creating a CI token, inviting someone) ask you to confirm it's you.

## Deploy from the browser

On **New app**, either:

- **Drop a folder or a .zip.** Deplane reads the project's manifest files (`package.json`, `requirements.txt`, `go.mod`, `Dockerfile`, …), says what it found ("Next.js 15, Node 22, port 3000"), and suggests a name. Git data, `.env` files, `node_modules` and Python virtual environments never leave your computer, and your `.gitignore` and `.dockerignore` are respected, exactly as with `deplane deploy`.
- **Start from a template**: an open-source app or a starter for a common stack (see [Templates](#templates) below).

The deployment page shows each step (Uploaded, Building, Starting, Live) and streams the build log. When the app is live you get its address.

## Templates

The New app page has a gallery of templates: self-hosted open-source apps and starters for common stacks. Search, or pick a category. Each card shows what the template needs (Postgres, a disk, memory) and whether your team can deploy it:

- **Deploy**: it fits. Pick a name and press Deploy; each step shows live (create app, create database, attach, add disk, set secrets, build, deploy), and at the end you get the address and what to do first.
- **Deploy is disabled with a reason** such as "Needs 1 GB; you have 512 MB free": your plan can hold it, but your team's free room cannot. Free some room in [Apps](/apps) and it becomes available.
- **Greyed out, with Upgrade**: your plan is too small for it at all, for example "Needs 2.5 GB memory; Beta has 1.5 GB".

If a step fails, everything made so far is kept and listed. **Retry** continues from the failed step. **Delete all of it** removes only the app, database and disk this deploy made, after you confirm with your passkey. A template's Deploy button can be linked from anywhere as `https://deplane.cloud/new?template=NAME`. See [Templates](templates.md).

## An app's page

| Tab | What it shows |
|---|---|
| Overview | A live preview, the production address, status, release, who deployed it and when, instances, size, domains, database, workers, five metric cards, recent deployments, and the live log |
| Deployments | Every release, with one-click rollback to an earlier good one (automatic rollbacks are marked Automatic), and every build with its log |
| Logs | The app's output (web instances, workers, and cron jobs), live, with pause and filter |
| Metrics | Requests, 5xx errors, p95 response time, CPU, and memory over 1 hour, 24 hours, 7 days, or 30 days (one point per day; p95 is not kept that long) |
| Workers & cron | [Workers and cron jobs](workers.md) |
| Domains | [Custom domains](domains.md), with the DNS records to copy |
| Variables | [Secrets](secrets.md), write-only |
| Settings | Instances and size, [autoscaling and sleep when idle](scaling.md), the app's [disk](disks.md), port and health check, [automatic rollback](cli.md#automatic-rollback), the [GitHub](github.md) connection with previews and preview databases, and deleting the app |

### Disk

The **Disk** card on the Settings tab adds a [disk](disks.md) to the app: type its path (`/data` unless you change it; the card checks the path as you type) and click **Add disk**. An app with a disk runs one instance; each deploy stops it for a few seconds.

Once the app has a disk, the card shows its path, its size (5 GB), the last backup, and every backup with its date, size, status and message (a failed backup says why). **Back up now** starts a backup, at most once an hour. **Restore** on a finished backup replaces all files on the disk with that backup, after you confirm and confirm it's you; the app stops while the restore runs, and the card shows the restore until it is done or, if it failed, that the disk may be empty. **Destroy disk** deletes the disk and its files, after you confirm it's you. While the app has a disk, the Scale card allows 0 or 1 instance and no autoscaling, and **Delete app** says the disk goes too.

## Databases

The Databases page lists your databases with their size, status, and the apps attached. Open one for the **Backups** card (status, the restore window, the last full copy, **Restore...**), **Switch apps to this database** after a restore, and **Recently deleted** databases you can still restore. See [Databases](databases.md#backups-and-restore).

## Redis

On **Databases**, the **Redis** card lists your team's Redis with their status, apps and last backup. Create one by name; open one to see its address, attach or detach apps, back it up now, restore a backup (passkey), or destroy it (type its name, then passkey). An app's overview shows its Redis. See [Redis](redis.md).

## Usage

**Usage** shows what your team used, over the last 24 hours, the last 7 days, the last 30 days, this month, or last month (dates are UTC). The dashboard remembers the range you picked. **Download CSV** saves the same numbers: one line per hour or day, then one line per app, database and disk.

| Number | What it means |
|---|---|
| Requests | Requests to your apps, counted at Deplane's edge. |
| Bandwidth out | Bytes your apps sent in responses, in 1000-based units (1 GB = 1,000,000,000 bytes), as the CLI shows them. |
| CPU hours | CPU time your apps used. One vCPU busy for one hour is one CPU hour. |
| Memory | **Reserved** GB-hours: the memory of every running instance's size, for as long as it ran, whether or not the app used it. **Used** is what your apps actually had in use; the card shows the average. Plan limits count reserved memory. |
| Build minutes | Build time this month, against your plan's monthly build minutes. This card always shows the current month, whatever the range. |
| Instances | How many instances run now, against your plan's limit, and the instance-hours in the range. |
| Database disk | Storage your databases held, in GB-hours. |
| App disks | Storage your apps' [disks](disks.md) held, in GB-hours (5 GB per disk). |

The charts stack requests and CPU hours by app (the six busiest, then Other); memory draws reserved as the area and used as a line; build minutes show the build time in each hour or day of the range. **By app** lists every app, database and disk (named after its app, such as "shop disk") with its totals, including apps deleted during the range, and each app's instances and size now (– for databases, disks and deleted apps). Databases and disks show their storage under Disk GB-h and – for requests, bandwidth and build minutes; disks have no CPU or memory either. Click an app to open its metrics over a matching period (30 days for the monthly ranges). Usage is kept for 400 days. The CLI shows the same numbers with `deplane usage --range month`.

## Team

**Activity** lists everything done in the team, by whom, and from where (dashboard, CLI, CI). **Members** is where owners invite people ([Team](team.md)), and **Tokens** lists CI tokens and CLI logins.
