diff --git a/modules/fsrewsp.nix b/modules/fsrewsp.nix new file mode 100644 index 0000000..799b6e6 --- /dev/null +++ b/modules/fsrewsp.nix @@ -0,0 +1,68 @@ +{ pkgs, config, lib, ... }: +let + domain = "fsrewsp.de"; + user = "fsrewsp"; + group = "fsrewsp"; +in +{ + users.users.${user} = { + group = group; + isSystemUser = true; + }; + users.groups.${group} = { }; + + services.phpfpm.pools.fsrewsp = { + user = "fsrewsp"; + group = "fsrewsp"; + settings = { + "listen.owner" = config.services.nginx.user; + "pm" = "dynamic"; + "pm.max_children" = 32; + "pm.max_requests" = 500; + "pm.start_servers" = 2; + "pm.min_spare_servers" = 2; + "pm.max_spare_servers" = 5; + "php_admin_value[error_log]" = "stderr"; + "php_admin_flag[log_errors]" = true; + "catch_workers_output" = true; + }; + phpEnv."PATH" = lib.makeBinPath [ pkgs.php ]; + }; + + + + services.nginx.enable = true; + services.nginx = { + virtualHosts."${domain}" = { + addSSL = true; + enableACME = true; + root = "/srv/web/fsrewsp"; + extraConfig = '' + index index.php index.html; + ''; + + locations = { + "/" = { + tryFiles = "$uri $uri/ /index.php?$args"; + }; + "~ \.php$" = { + extraConfig = '' + try_files $uri =404; + fastcgi_pass unix:${config.services.phpfpm.pools.fsrewsp.socket}; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_index index.php; + include ${pkgs.nginx}/conf/fastcgi_params; + include ${pkgs.nginx}/conf/fastcgi.conf; + fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; + ''; + }; + "~ \.log$".return = "403"; + "~ ^/\.user\.ini".return = "403"; + "~* \.(js|css|png|jpg|jpeg|gif|ico)$".extraConfig = '' + expires max; + log_not_found off; + ''; + }; + }; + }; +} diff --git a/modules/nightline.nix b/modules/nightline.nix new file mode 100644 index 0000000..fe994bd --- /dev/null +++ b/modules/nightline.nix @@ -0,0 +1,68 @@ +{ pkgs, config, lib, ... }: +let + domain = "nightline-dresden.de"; + user = "nightline"; + group = "nightline"; +in +{ + users.users.${user} = { + group = group; + isSystemUser = true; + }; + users.groups.${group} = { }; + + services.phpfpm.pools.nightline = { + user = "nightline"; + group = "nightline"; + settings = { + "listen.owner" = config.services.nginx.user; + "pm" = "dynamic"; + "pm.max_children" = 32; + "pm.max_requests" = 500; + "pm.start_servers" = 2; + "pm.min_spare_servers" = 2; + "pm.max_spare_servers" = 5; + "php_admin_value[error_log]" = "stderr"; + "php_admin_flag[log_errors]" = true; + "catch_workers_output" = true; + }; + phpEnv."PATH" = lib.makeBinPath [ pkgs.php ]; + }; + + + + services.nginx.enable = true; + services.nginx = { + virtualHosts."${domain}" = { + addSSL = true; + enableACME = true; + root = "/srv/web/nightline"; + extraConfig = '' + index index.php index.html; + ''; + + locations = { + "/" = { + tryFiles = "$uri $uri/ /index.php?$args"; + }; + "~ \.php$" = { + extraConfig = '' + try_files $uri =404; + fastcgi_pass unix:${config.services.phpfpm.pools.nightline.socket}; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_index index.php; + include ${pkgs.nginx}/conf/fastcgi_params; + include ${pkgs.nginx}/conf/fastcgi.conf; + fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; + ''; + }; + "~ \.log$".return = "403"; + "~ ^/\.user\.ini".return = "403"; + "~* \.(js|css|png|jpg|jpeg|gif|ico)$".extraConfig = '' + expires max; + log_not_found off; + ''; + }; + }; + }; +}