# Python Streamlit support dashboard

A support dashboard helps coworkers track open tickets, response time, queue history, category backlog, and notes for the next shift. Tokay runs the Streamlit app as one private Web Service without adding sign in code to the project.

This is a good fit for an internal tool built quickly from Python data components. Streamlit stays focused on the dashboard, PostgreSQL keeps shared state, and Tokay decides who may reach it.

## Facts

- Runtime: Python
- Framework: Streamlit
- Service types: Web Service
- Resources: PostgreSQL
- Required secrets: None

## What it does

The top row shows how many tickets are open now, how many opened or resolved in the selected range, and the median first response time.

Change **Date range** to update the queue history chart. **Current backlog** compares open work by category, and **Newest open tickets** gives the team a compact working list.

Under **Team annotations**, edit the context attached to a recent date and press **Save annotations**. The next coworker sees the same note.

## Deploy it

Bring this folder to Tokay any way you like. Paste or upload it in the dashboard, push it with git, or hand it to your AI agent along with [our agent instructions](https://app.tokay.io/llms.txt). Tokay figures out the rest.

Working in Claude, ChatGPT, VS Code, or another MCP client? Connect the [Tokay MCP server](https://tokay.io/docs/platform-mcp) and ask your agent to deploy this example. It signs in through your browser, so there is no token to paste.

New to Tokay? The [getting started guide](https://tokay.io/getting-started) walks you through your first deploy.

## Finish setup in Tokay

The dashboard needs PostgreSQL to keep the ticket history and team notes. Open **Environment** and find `DATABASE_URL` under **From your infrastructure**. Choose **Confirm database**, keep the suggested `app` name, then choose **Confirm**.

Continue through the deployment tracker after `DATABASE_URL` reaches **Good to go**. Choose **Go Live** if it appears. Before sharing the finished Service URL, use the steps below to make the dashboard private.

## Make the dashboard private

1. Choose **App audience** from the Project.
2. Set **Audience** to **Specific people**. Leave **Project members** selected so your teammates can sign in.
3. Choose **Save audience**. Review **Restrict who can visit**, then choose **Save**.
4. To invite someone else, choose **Add visitor**, enter the coworker's email, and choose **Add**. They will receive a magic link when they first visit.

Open the live URL in a signed out browser. Tokay starts the sign in flow before Streamlit appears.

## Try it

1. Narrow **Date range** and note how the queue chart and metrics change.
2. Edit one team annotation and press **Save annotations**.
3. Deploy the dashboard again. Your note and the 90 day ticket history remain in PostgreSQL.

## How it works

You can build the whole interface with ordinary Streamlit components. Pandas supplies the chart data, while SQLAlchemy reads and updates the same PostgreSQL database for every coworker.

The Alembic migration stays beside the app, and Tokay tests it against a copy before applying it. Fictional ticket history appears only when the tables are empty.

Audience settings stop unapproved visitors before Streamlit handles their request. You can add Project members, approved email domains, or specific people without changing Python code.

## Secrets

You do not need an application secret. Tokay supplies `DATABASE_URL`, and the Project audience controls coworker access.

## Grow from here

Try [visitor registration](/examples/node-internal-visitor-registration) when one path in a private app needs to remain public.

## Source files

- [alembic.ini](https://tokay.io/examples/src/python-streamlit-support-dashboard/alembic.ini)
- [app.py](https://tokay.io/examples/src/python-streamlit-support-dashboard/app.py)
- [migrations/env.py](https://tokay.io/examples/src/python-streamlit-support-dashboard/migrations/env.py)
- [migrations/versions/0001\_support\_dashboard.py](https://tokay.io/examples/src/python-streamlit-support-dashboard/migrations/versions/0001_support_dashboard.py)
- [requirements.txt](https://tokay.io/examples/src/python-streamlit-support-dashboard/requirements.txt)

## Download and source

- [Download the complete project](https://tokay.io/examples/downloads/python-streamlit-support-dashboard.zip)
- Last updated: 2026-07-31
- Example revision: `52c7b7f`
- [View this revision on GitHub](https://github.com/tokayio/tokay-examples/tree/52c7b7ffd52e157375b08f1f11ff4fbe6c498642/python-streamlit-support-dashboard)
- [Host an internal tool your coworkers can sign into](https://tokay.io/use-cases/host-internal-tool)
