Bootstrap
Start with the default local app setup.
cp .env.sample .env
bundle install
bin/rails db:prepare
bin/devThis gives you the Rails app and Tailwind watcher. Keep PostgreSQL available before running db:prepare. Redis is recommended locally because production uses it for cache and Sidekiq.
Boot paths
Choose the local startup path that matches your machine.
| Command | Best for | What it starts |
|---|---|---|
bin/dev | Normal local app work when PostgreSQL and Redis are already available. | Rails server and Tailwind watcher through Foreman. |
bin/dev-infra | Local work when you want Docker to provide Redis and ClickHouse. | Docker Redis, Docker ClickHouse, then bin/dev. |
bin/dev-infra --with-postgres | Full local stack in Docker. | Docker PostgreSQL, Redis, ClickHouse, then bin/dev. |
Background jobs
Run a worker when you want production-like background behavior.
The default local web process is enough for UI and most request work. If you are testing job behavior, Sidekiq queues, or ClickHouse event writes, run a worker in a second terminal:
bundle exec sidekiq -C config/sidekiq.ymlUse SIDEKIQ_CONCURRENCY when you need to mimic a busier production worker.
Seed data
Load development-only sample data when you want a realistic inbox.
bin/rails db:seed- Three confirmed users:
alice,bob, andcarol - Projects with shared memberships
- Active and revoked API keys
- Events across
error,metric,transaction,log, andcheck_in - Error groups in multiple states
- Check-in monitor examples for
ok,missed, anderror
[email protected] / password123
[email protected] / password123
[email protected] / password123Local services
Pick a PostgreSQL strategy, then add Docker services as needed.
The Docker Compose file can provide PostgreSQL 16, Redis 7, and ClickHouse 24.8. If you already use Postgres.app locally, keep PostgreSQL outside Docker and run only ClickHouse and Redis:
docker compose up -d clickhouse redis
bin/rails db:prepareIf you want PostgreSQL in Docker too, use:
docker compose --profile docker-db up -d
bin/rails db:prepareVerify local boot
Confirm the local stack is actually usable.
Landing page loads
You can sign in with a seeded account
Projects index renders sample projects
Redis-backed background features start without errors
A seeded event appears in a project inbox