Something went wrong. Try again.
A lexicon-driven AppView for ATProto.
Something went wrong. Try again.
1.7 kB
Local Development from Source #
This guide runs HappyView directly with cargo run, with you managing Postgres, AIP, and Tap separately. If you'd rather use Docker Compose to run everything together, see Local Development with Docker.
Prerequisites #
- Rust (stable)
- PostgreSQL 17+
- A running AIP instance (handles OAuth). See the AIP documentation for setup.
- A running Tap instance (delivers real-time records and handles backfill). See the Tap documentation for setup.
1. Clone and configure #
git clone https://github.com/graze-social/happyview.git
cd happyview
cp .env.example .env
Edit .env to point at your running services:
DATABASE_URL=postgres://happyview:happyview@localhost/happyview
AIP_URL=http://localhost:8080
TAP_URL=http://localhost:2480
TAP_ADMIN_PASSWORD=your-secret-here
See Configuration for all available variables.
2. Create the database #
createdb happyview
Or if using a Postgres user with a password:
psql -c "CREATE DATABASE happyview;" -U postgres
HappyView runs migrations automatically on startup, so no manual migration step is needed.
3. Start HappyView #
cargo run
HappyView starts on port 3000 (configurable via the PORT environment variable).
Next steps #
Your HappyView instance is running. Follow the Statusphere tutorial to upload lexicons, add custom query logic, and start indexing records from the network.