Compare commits
No commits in common. "eda6d8396b27b8e0443854a37aaab55d5fd40ebf" and "fd750b54aabaeca9a2895f6f44c93378ec0e263f" have entirely different histories.
eda6d8396b
...
fd750b54aa
7 changed files with 13 additions and 104 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -2,5 +2,3 @@
|
||||||
/.reference/
|
/.reference/
|
||||||
/backend/.phpunit.cache/
|
/backend/.phpunit.cache/
|
||||||
/.postgres/
|
/.postgres/
|
||||||
/result
|
|
||||||
/result-*
|
|
||||||
|
|
|
||||||
35
flake.nix
35
flake.nix
|
|
@ -12,18 +12,12 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
nixosModule = import ./nix/nixos-module.nix;
|
nixosModule = import ./nix/nixos-module.nix;
|
||||||
uploadLimits = import ./nix/upload-limits.nix;
|
|
||||||
in
|
in
|
||||||
utils.lib.eachDefaultSystem (
|
utils.lib.eachDefaultSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
devPhp = pkgs.php.buildEnv {
|
packages = import ./nix/packages { inherit pkgs; };
|
||||||
extraConfig = uploadLimits.phpOptions;
|
|
||||||
};
|
|
||||||
packages = import ./nix/packages {
|
|
||||||
inherit pkgs uploadLimits;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit packages;
|
inherit packages;
|
||||||
|
|
@ -34,37 +28,12 @@
|
||||||
inherit nixpkgs system;
|
inherit nixpkgs system;
|
||||||
module = nixosModule;
|
module = nixosModule;
|
||||||
};
|
};
|
||||||
dev-php-upload-limits =
|
|
||||||
pkgs.runCommand "rabbi-gerzi-dev-php-upload-limits"
|
|
||||||
{
|
|
||||||
preferLocalBuild = true;
|
|
||||||
}
|
|
||||||
''
|
|
||||||
actual_upload_max_filesize="$(
|
|
||||||
${devPhp}/bin/php -r 'echo ini_get("upload_max_filesize");'
|
|
||||||
)"
|
|
||||||
actual_post_max_size="$(
|
|
||||||
${devPhp}/bin/php -r 'echo ini_get("post_max_size");'
|
|
||||||
)"
|
|
||||||
|
|
||||||
if [ "$actual_upload_max_filesize" != "${uploadLimits.phpUploadLimit}" ]; then
|
|
||||||
echo "upload_max_filesize was $actual_upload_max_filesize" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$actual_post_max_size" != "${uploadLimits.phpUploadLimit}" ]; then
|
|
||||||
echo "post_max_size was $actual_post_max_size" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$actual_upload_max_filesize" > $out
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
onefetch
|
onefetch
|
||||||
devPhp
|
php
|
||||||
phpPackages.composer
|
phpPackages.composer
|
||||||
phpPackages.php-codesniffer
|
phpPackages.php-codesniffer
|
||||||
vscode-langservers-extracted
|
vscode-langservers-extracted
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,7 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
uploadLimits = import ../upload-limits.nix;
|
evaluatedHostName =
|
||||||
|
|
||||||
evaluatedConfig =
|
|
||||||
(nixpkgs.lib.nixosSystem {
|
(nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -27,48 +25,13 @@ let
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}).config;
|
}).config.services.rabbi-gerzi.backend.hostName;
|
||||||
|
|
||||||
evaluatedHostName = evaluatedConfig.services.rabbi-gerzi.backend.hostName;
|
|
||||||
|
|
||||||
backendVirtualHost = evaluatedConfig.services.nginx.virtualHosts.${evaluatedHostName};
|
|
||||||
|
|
||||||
phpOptions = evaluatedConfig.services.phpfpm.pools.rabbi-gerzi.phpOptions;
|
|
||||||
|
|
||||||
expectedUploadMaxFilesize = "upload_max_filesize = ${uploadLimits.phpUploadLimit}";
|
|
||||||
|
|
||||||
expectedPostMaxSize = "post_max_size = ${uploadLimits.phpUploadLimit}";
|
|
||||||
|
|
||||||
expectedNginxClientMaxBodySize = "client_max_body_size ${uploadLimits.nginxClientMaxBodySize};";
|
|
||||||
|
|
||||||
assertions = [
|
|
||||||
{
|
|
||||||
passed = lib.hasInfix expectedUploadMaxFilesize phpOptions;
|
|
||||||
message = "php-fpm upload_max_filesize is not 6M";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
passed = lib.hasInfix expectedPostMaxSize phpOptions;
|
|
||||||
message = "php-fpm post_max_size is not 6M";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
passed = lib.hasInfix expectedNginxClientMaxBodySize backendVirtualHost.extraConfig;
|
|
||||||
message = "nginx client_max_body_size is not 6m";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
failedAssertions = lib.filter (assertion: !assertion.passed) assertions;
|
|
||||||
in
|
in
|
||||||
pkgs.runCommand "rabbi-gerzi-module-eval"
|
pkgs.runCommand "rabbi-gerzi-module-eval"
|
||||||
{
|
{
|
||||||
failures = lib.concatMapStringsSep "\n" (assertion: assertion.message) failedAssertions;
|
|
||||||
value = evaluatedHostName;
|
value = evaluatedHostName;
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
if [ -n "$failures" ]; then
|
|
||||||
printf '%s\n' "$failures" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$value" > $out
|
echo "$value" > $out
|
||||||
''
|
''
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ let
|
||||||
appDir = "${backendPackage}/share/php/rabbi-gerzi-backend";
|
appDir = "${backendPackage}/share/php/rabbi-gerzi-backend";
|
||||||
phpPackage = backendPackage.passthru.php;
|
phpPackage = backendPackage.passthru.php;
|
||||||
poolName = "rabbi-gerzi";
|
poolName = "rabbi-gerzi";
|
||||||
uploadLimits = import ./upload-limits.nix;
|
|
||||||
storagePath = "${cfg.stateDir}/storage";
|
storagePath = "${cfg.stateDir}/storage";
|
||||||
cachePath = "${cfg.cacheDir}/bootstrap-cache";
|
cachePath = "${cfg.cacheDir}/bootstrap-cache";
|
||||||
setupService = "rabbi-gerzi-setup";
|
setupService = "rabbi-gerzi-setup";
|
||||||
|
|
@ -240,7 +239,6 @@ in
|
||||||
services.phpfpm.pools.${poolName} = {
|
services.phpfpm.pools.${poolName} = {
|
||||||
inherit (cfg) user group;
|
inherit (cfg) user group;
|
||||||
inherit phpPackage;
|
inherit phpPackage;
|
||||||
phpOptions = uploadLimits.phpOptions;
|
|
||||||
settings = {
|
settings = {
|
||||||
"catch_workers_output" = true;
|
"catch_workers_output" = true;
|
||||||
"clear_env" = "no";
|
"clear_env" = "no";
|
||||||
|
|
@ -318,9 +316,6 @@ in
|
||||||
cfg.backend.nginx
|
cfg.backend.nginx
|
||||||
{
|
{
|
||||||
root = "${appDir}/public";
|
root = "${appDir}/public";
|
||||||
extraConfig = ''
|
|
||||||
client_max_body_size ${uploadLimits.nginxClientMaxBodySize};
|
|
||||||
'';
|
|
||||||
locations = {
|
locations = {
|
||||||
"/" = {
|
"/" = {
|
||||||
index = "index.php";
|
index = "index.php";
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,16 @@
|
||||||
lib,
|
lib,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
php,
|
php,
|
||||||
uploadLimits ? import ../upload-limits.nix,
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
phpPackage = php.buildEnv {
|
phpPackage = php.withExtensions (
|
||||||
extensions =
|
{ enabled, all }:
|
||||||
{ enabled, all }:
|
enabled
|
||||||
enabled
|
++ [
|
||||||
++ [
|
all.pdo_pgsql
|
||||||
all.pdo_pgsql
|
]
|
||||||
];
|
);
|
||||||
extraConfig = uploadLimits.phpOptions;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
phpPackage.buildComposerProject2 (finalAttrs: {
|
phpPackage.buildComposerProject2 (finalAttrs: {
|
||||||
pname = "rabbi-gerzi-backend";
|
pname = "rabbi-gerzi-backend";
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,7 @@
|
||||||
{
|
{ pkgs }:
|
||||||
pkgs,
|
|
||||||
uploadLimits ? import ../upload-limits.nix,
|
|
||||||
}:
|
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
backend = pkgs.callPackage ./backend.nix {
|
backend = pkgs.callPackage ./backend.nix { };
|
||||||
inherit uploadLimits;
|
|
||||||
};
|
|
||||||
frontend = pkgs.callPackage ./frontend.nix { };
|
frontend = pkgs.callPackage ./frontend.nix { };
|
||||||
default = frontend;
|
default = frontend;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
nginxClientMaxBodySize = "6m";
|
|
||||||
phpUploadLimit = "6M";
|
|
||||||
phpOptions = ''
|
|
||||||
upload_max_filesize = 6M
|
|
||||||
post_max_size = 6M
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue