feat(01-01): nix flake devshell with PHP 8.2, MariaDB, Node 22

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Christopher Mühl 2026-04-08 11:11:56 +02:00
parent 5bdb8bf3f5
commit cc5a25ed59
No known key found for this signature in database
GPG key ID: 925AC7D69955293F
4 changed files with 75 additions and 0 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

11
.gitignore vendored Normal file
View file

@ -0,0 +1,11 @@
dev/kimai/
dev/.mariadb-data/
dev/.mariadb.sock
dev/.mariadb.sock.lock
dev/.mariadb.pid
node_modules/
vendor/
.direnv/
result
*.js.map
dist/

27
flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1775579569,
"narHash": "sha256-/m3yyS/EnXqoPGBJYVy4jTOsirdgsEZ3JdN2gGkBr14=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dfd9566f82a6e1d55c30f861879186440614696e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

36
flake.nix Normal file
View file

@ -0,0 +1,36 @@
{
description = "Kimai Heatmap Plugin dev environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
php = pkgs.php82.buildEnv {
extensions = { enabled, all }: enabled ++ (with all; [ xsl pdo_mysql ]);
};
in
{
devShells.${system}.default = pkgs.mkShell {
buildInputs = [
php
pkgs.php82Packages.composer
pkgs.nodejs_22
pkgs.mariadb
pkgs.symfony-cli
pkgs.process-compose
];
shellHook = ''
echo ""
echo "Kimai Heatmap Plugin - Dev Environment"
echo " First-time setup: bash dev/setup.sh"
echo " Start dev stack: process-compose -f dev/process-compose.yaml up"
echo ""
'';
};
};
}