---
title: "Dashboard"
description: "Every app's deploys, logs, tasks, data, access and settings in one place."
canonical_url: "https://wervt.app/guides/dashboard"
---
# Dashboard

> Every app's deploys, logs, tasks, data, access and settings in one place.

The dashboard (`dashboard.<domain>`) is itself a wervt app, private to the admins. Like Vercel's,
its sidebar shows either the whole platform or one app. Switch with the picker at the top left;
switching apps keeps the section you're on.

## Platform

<table>
<thead>
  <tr>
    <th>
      Page
    </th>
    
    <th>
      
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Apps
      </strong>
    </td>
    
    <td>
      Every app with its icon, URL, access, database and active release
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Deployments
      </strong>
    </td>
    
    <td>
      Releases of all apps, newest first, with commit, branch and who deployed
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Logs
      </strong>
    </td>
    
    <td>
      All apps' logs: LogsQL search, level filters, a histogram, live tail
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Databases
      </strong>
    </td>
    
    <td>
      Every app's schema with its size and number of tables
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        CLI
      </strong>
    </td>
    
    <td>
      Approve a <code>
        wervt login
      </code>
      
       code; signed-in machines, each can be signed out
    </td>
  </tr>
</tbody>
</table>

## One app

<table>
<thead>
  <tr>
    <th>
      Page
    </th>
    
    <th>
      
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Overview
      </strong>
    </td>
    
    <td>
      URL, status, active release and the latest deploys
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Deployments
      </strong>
    </td>
    
    <td>
      Releases with commit links and the CI run; activate any kept release or roll back. <strong>
        Deploy tokens
      </strong>
      
       for CI
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Logs
      </strong>
    </td>
    
    <td>
      The app's logs, the same explorer as above
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Tasks
      </strong>
    </td>
    
    <td>
      Tasks, their schedules and next runs, the last result, <strong>
        Run now
      </strong>
      
      , and recent runs
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Database
      </strong>
    </td>
    
    <td>
      Tables, rows (paged, sortable), structure, and read-only SQL as the app's own role. Long values are cut in the grid; opening a row shows it in full
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Access
      </strong>
    </td>
    
    <td>
      Public or private, and who may sign in
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Environment Variables
      </strong>
    </td>
    
    <td>
      Set and remove secrets. Values are write-only, and changes apply from the next request
    </td>
  </tr>
</tbody>
</table>

App icons come from the active release's `public/` (`favicon.svg`, `favicon.png`,
`apple-touch-icon.png`, `favicon.ico`, …). Apps without one show their initial.

Everything here works from the CLI too: `wervt apps`, `releases`, `rollback`, `logs`, `tasks`,
`access`, `env`, `tokens`.

## Safety

- The dashboard holds the admin token on its server only. The browser talks to the dashboard's
API, which answers only the emails in `DASHBOARD_ADMIN_EMAILS`.
- Database queries run in a read-only transaction with a 10 second timeout, as the app's role, so
they see exactly what the app sees.
- Activating a release only switches if the active release is still the one you saw; otherwise the
page reloads instead of overwriting someone else's change.


## Sitemap

See the full [sitemap](https://wervt.app/sitemap.md) for all pages.
