diff --git a/.gitignore b/.gitignore index 629b351..1689399 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,10 @@ storage/test.db error.log src/cache/rate_limit/ +# Nix +.direnv/ +result + # OS files .DS_Store Thumbs.db diff --git a/TODO.md b/TODO.md index 516e5c3..ceec361 100644 --- a/TODO.md +++ b/TODO.md @@ -35,6 +35,7 @@ ## Pending +- [x] Add flake.nix for Nix-based PHP dev environment - [x] Add favicon (`` → admin_favicon.svg) to all pages; nginx 204 for /favicon.ico - [ ] Add pagination to répertoire student index (currently capped at 100) - [ ] Thumbnail generation / cover image support for home grid cards diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..ad1d2fa --- /dev/null +++ b/flake.nix @@ -0,0 +1,49 @@ +{ + description = "Post-ERG development environment"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + + php = pkgs.php84.buildEnv { + extensions = ({ enabled, all }: enabled ++ (with all; [ + curl + mbstring + pdo + pdo_sqlite + sqlite3 + ])); + extraConfig = '' + error_reporting = E_ALL + display_errors = On + log_errors = On + ''; + }; + in + { + devShells.default = pkgs.mkShell { + name = "posterg"; + + packages = [ + php + pkgs.sqlite + pkgs.just + pkgs.git + ]; + + shellHook = '' + echo "🛠 Post-ERG dev shell" + echo " php $(php --version | head -1)" + echo " just $(just --version)" + echo "" + echo "Run 'just serve' to start the dev server." + ''; + }; + }); +}