97 lines
3.1 KiB
Markdown
97 lines
3.1 KiB
Markdown
---
|
|
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*
|