nix: update to latest nixpkgs
[sourcephile-nix.git] / nixos / profiles / services / nginx.nix
index 69bca5f03c9dd35e8ec769c2c1765adbabc19ceb..4d721daf607fcd9a61406bfcf66b381eab259c9b 100644 (file)
@@ -1,4 +1,4 @@
-{ flakes, pkgs, lib, config, ... }:
+{ inputs, pkgs, lib, config, host, ... }:
 let
   inherit (lib) types;
   inherit (config) networking;
@@ -52,33 +52,33 @@ services.nginx = {
   #sslCiphers = "AES256+EECDH:AES256+EDH:!aNULL";
   #sslCiphers = "HIGH:!ADH:!MD5:!CAMELLIA:!SEED:!3DES:!DES:!RC4:!eNULL";
   #sslCiphers = "EECDH+aRSA+AESGCM:EDH+aRSA:EECDH+aRSA:+AES256:+AES128:+SHA1:!CAMELLIA:!SEED:!3DES:!DES:!RC4:!eNULL";
-  sslDhparam = flakes.secrets + "/openssl/dh.pem";
+  sslDhparam = inputs.secrets + "/openssl/dh.pem";
   sslProtocols = "TLSv1.3 TLSv1.2";
   configs = rec {
     http_add_headers = ''
-      # Add HSTS header with preloading to HTTPS requests.
-      # Adding this header to HTTP requests is discouraged
-      # DOC: https://blog.qualys.com/securitylabs/2016/03/28/the-importance-of-a-proper-http-strict-transport-security-implementation-on-your-web-server
-      add_header Strict-Transport-Security $hsts_header;
-
-      # Enable CSP for your services.
+      # Enable CSP
       #add_header Content-Security-Policy "script-src 'self'; object-src 'none'; base-uri 'none';" always;
 
+      # Enable XSS protection of the browser.
+      # May be unnecessary when CSP is configured properly (see above)
+      add_header X-XSS-Protection "1; mode=block";
+
       # Minimize information leaked to other domains
       add_header 'Referrer-Policy' 'origin-when-cross-origin';
 
-      # Disable embedding as a frame
-      add_header X-Frame-Options DENY;
+      # Restrict embedding as a frame
+      #add_header X-Frame-Options SAMEORIGIN;
 
       # Prevent injection of code in other mime types (XSS Attacks)
       add_header X-Content-Type-Options nosniff;
-
-      # Enable XSS protection of the browser.
-      # May be unnecessary when CSP is configured properly (see above)
-      add_header X-XSS-Protection "1; mode=block";
     '';
     https_add_headers = ''
       ${http_add_headers}
+      # Add HSTS header with preloading to HTTPS requests.
+      # Adding this header to HTTP requests is discouraged,
+      # as doing so makes the connection vulnerable to SSL stripping attacks
+      # DOC: https://blog.qualys.com/securitylabs/2016/03/28/the-importance-of-a-proper-http-strict-transport-security-implementation-on-your-web-server
+      add_header Strict-Transport-Security $hsts_header;
     '';
   };
   commonHttpConfig = ''
@@ -101,12 +101,12 @@ services.nginx = {
     charset UTF-8;
     types {
       text/html html5;
-      text/plain md;
+      text/plain dump;
     }
     '' +
     lib.concatStringsSep "\n" (lib.attrValues {
       default = ''
-        default_type application/octet-stream;
+        #default_type application/octet-stream;
         root /var/lib/nginx;
       '';
       security = ''
@@ -115,7 +115,7 @@ services.nginx = {
         ${nginx.configs.http_add_headers}
 
         # This might create errors
-        proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
+        #proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
       '';
       log = ''
         access_log /var/log/nginx/access.log main buffer=32k;
@@ -201,7 +201,7 @@ services.nginx = {
       '';
     });
   appendConfig = ''
-    worker_processes ${toString config.nix.maxJobs};
+    worker_processes ${toString host.CPUs};
   '';
 };
 };