Why
Bringing up OurHomii locally surfaced several devops footguns shared by every jakuta-stack venture (Rust backend + docker-compose Postgres/Redis + Makefile). Filing here so this venture's setup gets hardened the same way. Tick each item against this repo.
Checklist
1. make dev-server must name the binary
The workspace has more than one bin (server + contract-codegen), so bare cargo run fails with "could not determine which binary to run".
2. Docker Postgres port can silently fail to publish (Windows/WSL)
docker compose up can leave Postgres 5432/tcp unpublished (empty host binding) while Redis publishes fine, so the backend connects to nothing and dies with a config exit.
3. Boot failures must be visible
jakuta-rust-shared now surfaces boot-step failures on stderr before exit (Jakuta-Inc/jakuta-rust-shared#1197 — a boot reject used to log only via tracing, dropped before any subscriber, so a failed boot exited silently).
4. dev-server env + CWD
5. One make dev
Filed from the OurHomii devops hardening pass.
Why
Bringing up OurHomii locally surfaced several devops footguns shared by every jakuta-stack venture (Rust backend + docker-compose Postgres/Redis + Makefile). Filing here so this venture's setup gets hardened the same way. Tick each item against this repo.
Checklist
1.
make dev-servermust name the binaryThe workspace has more than one bin (server + contract-codegen), so bare
cargo runfails with "could not determine which binary to run".dev-server/staging-serverruncargo run --bin <server-bin>, not barecargo run.2. Docker Postgres port can silently fail to publish (Windows/WSL)
docker compose upcan leave Postgres5432/tcpunpublished (empty host binding) while Redis publishes fine, so the backend connects to nothing and dies with a config exit.make dev-infra(or amake dev) proves the DB is reachable at the configuredDATABASE_URLbefore starting the server (pg_isready/ TCP wait), failing loud with the exact URL on mismatch.DATABASE_URLderive from one value so they cannot drift.5432will not bind, remap to a high host port (e.g.15432:5432) instead of fighting it.3. Boot failures must be visible
jakuta-rust-shared now surfaces boot-step failures on stderr before exit (Jakuta-Inc/jakuta-rust-shared#1197 — a boot reject used to log only via tracing, dropped before any subscriber, so a failed boot exited silently).
jakuta-*pin to include that fix, so a failed boot prints its cause.4. dev-server env + CWD
make dev-serversources.env.development.local(creating it from the example on first run if absent) and runs the server from the crate dir it expects (relative asset/cache paths).5. One
make devmake dev: infra up on the agreed port -> wait for DB reachable -> run the right binary from the right CWD -> fail loud. One command, no ritual.Filed from the OurHomii devops hardening pass.