--- phase: 01-dev-environment plan: 01 subsystem: infra tags: [nix, flake, process-compose, mariadb, symfony-cli, devshell] requires: - phase: none provides: first plan provides: - Nix devshell with PHP 8.2, Composer, Node 22, MariaDB 11.4, symfony-cli, process-compose - process-compose config for MariaDB + Kimai dev server - One-command bootstrap script (dev/setup.sh) affects: [01-02, all subsequent phases] tech-stack: added: [nix flake, process-compose, mariadb 11.4, php 8.2, symfony-cli] patterns: [local dev via nix devshell, process-compose for multi-service] key-files: created: - flake.nix - dev/process-compose.yaml - dev/setup.sh - .envrc - .gitignore modified: [] key-decisions: - "x86_64-linux only (no flake-utils eachDefaultSystem) since this is NixOS-only" - "MariaDB 11.4.9 with skip-grant-tables for zero-friction local dev" - "Port 3307 for MariaDB, 8010 for Kimai to avoid conflicts" - "Kimai 2.52.0 pinned via shallow git clone" patterns-established: - "Dev infrastructure lives in dev/ directory" - "process-compose manages local services from project root" requirements-completed: [DEV-01] duration: 2min completed: 2026-04-08 --- # Plan 01-01: Nix Flake and Dev Infrastructure Summary **Nix devshell with PHP 8.2, MariaDB 11.4, Node 22, process-compose orchestration, and Kimai bootstrap script** ## Performance - **Duration:** 2 min - **Started:** 2026-04-08T09:10:30Z - **Completed:** 2026-04-08T09:12:45Z - **Tasks:** 2 - **Files modified:** 5 ## Accomplishments - Nix flake providing PHP 8.2.30, Composer 2.9.5, Node 22.22.2, MariaDB 11.4.9, symfony-cli 5.16.1, process-compose 1.94.0 - process-compose config with MariaDB health checks and Kimai server dependency ordering - Idempotent setup script that clones Kimai 2.52.0, installs deps, seeds data, and symlinks the plugin ## Task Commits 1. **Task 1: Create Nix flake with devshell** - `cc5a25e` (feat) 2. **Task 2: Create process-compose config and setup script** - `b20e61e` (feat) ## Files Created/Modified - `flake.nix` - Nix devshell with all required packages and PHP extensions - `flake.lock` - Pinned nixpkgs input - `.envrc` - direnv integration (use flake) - `.gitignore` - Excludes dev artifacts, node_modules, vendor, .direnv - `dev/process-compose.yaml` - MariaDB + Kimai process definitions with health checks - `dev/setup.sh` - One-time Kimai bootstrap (clone, install, seed, symlink) ## Decisions Made - Used x86_64-linux only instead of eachDefaultSystem -- this is a NixOS-only project - MariaDB binds to 127.0.0.1:3307 with skip-grant-tables for frictionless local dev - Kimai dev server on port 8010 to avoid conflicts - ServerVersion in DATABASE_URL set to 11.4.9-MariaDB matching actual installed version ## Deviations from Plan None - plan executed exactly as written. ## Issues Encountered None. ## User Setup Required None - no external service configuration required. ## Next Phase Readiness - Dev tooling is ready; Plan 01-02 can proceed to run setup.sh and verify plugin scaffold - All tools verified working via `nix develop` --- *Phase: 01-dev-environment* *Completed: 2026-04-08*