kimai-plugin-heatmap/.planning/phases/01-dev-environment/01-01-SUMMARY.md
Christopher Mühl 64dd0a98f3
docs(01-01): complete nix flake and dev infrastructure plan
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 11:13:40 +02:00

3.1 KiB

phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established requirements-completed duration completed
01-dev-environment 01 infra
nix
flake
process-compose
mariadb
symfony-cli
devshell
phase provides
none first plan
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)
01-02
all subsequent phases
added patterns
nix flake
process-compose
mariadb 11.4
php 8.2
symfony-cli
local dev via nix devshell
process-compose for multi-service
created modified
flake.nix
dev/process-compose.yaml
dev/setup.sh
.envrc
.gitignore
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
Dev infrastructure lives in dev/ directory
process-compose manages local services from project root
DEV-01
2min 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