Skip to content

Fix local dev setup: Docker mount footgun, missing prerequisites docs - #23

Open
ifuensan wants to merge 2 commits into
andotherstuff:masterfrom
ifuensan:local-dev-setup-fixes
Open

Fix local dev setup: Docker mount footgun, missing prerequisites docs#23
ifuensan wants to merge 2 commits into
andotherstuff:masterfrom
ifuensan:local-dev-setup-fixes

Conversation

@ifuensan

@ifuensan ifuensan commented Jun 5, 2026

Copy link
Copy Markdown

Changes

  • justfile: dev-up ensures data/relay-stats.db exists before docker compose up. Grafana bind-mounts this file; on a fresh clone Docker creates the missing path as a root-owned directory, which later breaks the ingester with PermissionDenied on RocksDB.
  • pensieve-local/README.md: Quick Start now uses just dev-up instead of raw docker compose up -d, so the documented path goes through the same guard.
  • README: added Prerequisites section (Rust ≥ 1.90, protoc, just, Docker). protoc is required by the pensieve-core build script but wasn't documented.
  • .gitignore: ignore segments/ (created by the Quick Start command).

Impact

A fresh clone now goes from git clone to a working local dev environment by following the README.

Verification

  • just precommit passes
  • Verified on a fresh Linux setup: dev-up → migrations → live ingestion with Grafana dashboards populated

Reviewer note: pensieve-deploy/docker-compose.yml has the same single-file bind mount for /data/relay-stats.db, and the deploy README's directory-setup section doesn't pre-create it — same latent footgun on a fresh production deploy. Left out of scope here; happy to open a separate issue.

🤖 Generated with Claude Code

ifuensan and others added 2 commits June 4, 2026 15:03
- justfile: dev-up now creates data/relay-stats.db before docker compose up,
  preventing Docker from creating it as a root-owned directory (which broke
  the ingester's RocksDB dedupe index with PermissionDenied)
- README: add Prerequisites section (Rust >= 1.90, protoc, just, Docker)
- .gitignore: ignore segments/ (default ingester output directory)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The documented Quick Start ran `docker compose up -d` directly, bypassing
the relay-stats.db pre-creation guard in `just dev-up` and leaving the
root-owned-directory footgun reachable through the documented path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant