# POST3-004: S3 HTTP server skeleton **Status:** Done **Priority:** P0 **Blocked by:** POST3-003 ## Description Build the post3-server binary with CLI (clap), state management, notmad component lifecycle, and axum router with all S3 routes wired up. ## Acceptance Criteria - [ ] `main.rs` — dotenvy + tracing_subscriber + cli::execute() - [ ] `cli.rs` — clap App with `serve` subcommand - [ ] `cli/serve.rs` — ServeCommand with --host flag, starts notmad::Mad with S3Server - [ ] `state.rs` — State struct (PgPool + Store), runs migrations on new() - [ ] `s3/mod.rs` — S3Server implementing notmad::Component - [ ] `s3/router.rs` — all 9 routes mapped to handler functions - [ ] Server starts, binds to port, responds to requests - [ ] `cargo check -p post3-server` passes