diff --git a/.gitignore b/.gitignore index 6d81922..c52bee4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /.reference/ /backend/.phpunit.cache/ /.postgres/ +/result +/result-* diff --git a/flake.nix b/flake.nix index 63c2445..866671b 100644 --- a/flake.nix +++ b/flake.nix @@ -18,8 +18,12 @@ system: let pkgs = nixpkgs.legacyPackages.${system}; - devPhp = pkgs.php; - packages = import ./nix/packages { inherit pkgs; }; + devPhp = pkgs.php.buildEnv { + extraConfig = uploadLimits.phpOptions; + }; + packages = import ./nix/packages { + inherit pkgs uploadLimits; + }; in { inherit packages; diff --git a/nix/nixos-module.nix b/nix/nixos-module.nix index e7c3995..8bfb03a 100644 --- a/nix/nixos-module.nix +++ b/nix/nixos-module.nix @@ -13,6 +13,7 @@ let appDir = "${backendPackage}/share/php/rabbi-gerzi-backend"; phpPackage = backendPackage.passthru.php; poolName = "rabbi-gerzi"; + uploadLimits = import ./upload-limits.nix; storagePath = "${cfg.stateDir}/storage"; cachePath = "${cfg.cacheDir}/bootstrap-cache"; setupService = "rabbi-gerzi-setup"; @@ -239,6 +240,7 @@ in services.phpfpm.pools.${poolName} = { inherit (cfg) user group; inherit phpPackage; + phpOptions = uploadLimits.phpOptions; settings = { "catch_workers_output" = true; "clear_env" = "no"; @@ -316,6 +318,9 @@ in cfg.backend.nginx { root = "${appDir}/public"; + extraConfig = '' + client_max_body_size ${uploadLimits.nginxClientMaxBodySize}; + ''; locations = { "/" = { index = "index.php"; diff --git a/nix/packages/backend.nix b/nix/packages/backend.nix index e9eac6f..02e732b 100644 --- a/nix/packages/backend.nix +++ b/nix/packages/backend.nix @@ -2,16 +2,19 @@ lib, makeWrapper, php, + uploadLimits ? import ../upload-limits.nix, }: let - phpPackage = php.withExtensions ( - { enabled, all }: - enabled - ++ [ - all.pdo_pgsql - ] - ); + phpPackage = php.buildEnv { + extensions = + { enabled, all }: + enabled + ++ [ + all.pdo_pgsql + ]; + extraConfig = uploadLimits.phpOptions; + }; in phpPackage.buildComposerProject2 (finalAttrs: { pname = "rabbi-gerzi-backend"; diff --git a/nix/packages/default.nix b/nix/packages/default.nix index 45b1d04..bbd3482 100644 --- a/nix/packages/default.nix +++ b/nix/packages/default.nix @@ -1,7 +1,12 @@ -{ pkgs }: +{ + pkgs, + uploadLimits ? import ../upload-limits.nix, +}: rec { - backend = pkgs.callPackage ./backend.nix { }; + backend = pkgs.callPackage ./backend.nix { + inherit uploadLimits; + }; frontend = pkgs.callPackage ./frontend.nix { }; default = frontend; } diff --git a/nix/upload-limits.nix b/nix/upload-limits.nix index 513945a..6699d3b 100644 --- a/nix/upload-limits.nix +++ b/nix/upload-limits.nix @@ -1,4 +1,8 @@ { nginxClientMaxBodySize = "6m"; phpUploadLimit = "6M"; + phpOptions = '' + upload_max_filesize = 6M + post_max_size = 6M + ''; }