A privacy-preserving audience engagement tool for in-person and virtual conferences. Meerkat uses Zupass for authentication and collection of associated data.
To get started, run ./scripts/setup.sh from the root directory. It will:
- Copy
.env.exampleto.env, update the values as needed - Install dependencies.
- Run database migration.
- Seed the database.
If you wish to tear down the development environment, run
./scripts/teardown.sh from the root directory.
To start the development environment, run ./scripts/dev.sh from the root
directory. It will start the development environment with tmux and open a new
terminal window, then open https://localhost:8000 in your browser.
The following environment variables are required to run the application:
- DATABASE_URL: The connection string for the database.
- PRIVATE_KEY: The private key used to sign PODs.
- BASE_URL: The base URL of the application.
- ZUPASS_URL: The URL of the Zupass server.
- ZUPASS_ZAPP_NAME: The name of the Zupass zapp.
- SUPABASE_URL: The URL of the Supabase server.
- SUPABASE_ANON_KEY: The anon key for the Supabase server.
- VERIFIER_ENDPOINT: The URL of the verifier endpoint.
Optionally, you can set the following environment variables to enable additional features:
- POSTHOG_TOKEN: The token for the PostHog server.
- SENTRY_DSN: The DSN for the Sentry server.
To generate a 32 bytes secret, you can run openssl rand -hex 32.
After modifying the database schema in api/schema.ts, you will need to generate
a new migration using npm run generate in the db folder and apply it by
npm run migrate.