A lexicon-driven AppView for ATProto.

Local Development with Docker #

This guide runs the full HappyView stack locally using Docker Compose: Tap, HappyView, and the web dashboard.

Prerequisites #

1. Clone and configure #

git clone https://github.com/graze-social/happyview.git
cd happyview
cp .env.example .env

Set TAP_ADMIN_PASSWORD in your .env. This shared secret is used by both Tap and HappyView:

TAP_ADMIN_PASSWORD=your-secret-here

The docker-compose.yml configures everything else (service connections) automatically. See the database setup guide if you want to use Postgres instead.

2. Start the stack #

docker compose up

This starts:

Service Port Description
tap 2480 Firehose consumer, backfill worker
happyview 3000 HappyView API server
web 3001 Next.js dashboard

HappyView runs migrations automatically on startup. The first build will take a few minutes while Rust compiles.

:::tip To use Postgres instead of SQLite, uncomment the postgres service in docker-compose.yml and update DATABASE_URL in .env. See the database setup guide. :::

Next steps #

Your HappyView stack is running. Follow the Statusphere tutorial to upload lexicons, add custom query logic, and start indexing records from the network.