vps: remove unused modues
authentik bepasty firefly jellyfin jitsi kuma roundcube
This commit is contained in:
		
							parent
							
								
									4e63a64248
								
							
						
					
					
						commit
						9db5b156dd
					
				
					 8 changed files with 0 additions and 346 deletions
				
			
		|  | @ -1,110 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   flakes, | ||||
|   ... | ||||
| }: | ||||
| with lib; { | ||||
|   imports = [flakes.authentik-nix.nixosModules.default]; | ||||
| 
 | ||||
|   options = { | ||||
|     services.nginx.virtualHosts = mkOption { | ||||
|       type = with lib.types; | ||||
|         attrsOf ( | ||||
|           submodule | ||||
|           ( | ||||
|             {config, ...}: { | ||||
|               options = { | ||||
|                 enableAuthentik = mkOption { | ||||
|                   default = false; | ||||
|                   type = bool; | ||||
|                 }; | ||||
|                 locations = mkOption { | ||||
|                   type = attrsOf ( | ||||
|                     submodule { | ||||
|                       config = mkIf config.enableAuthentik { | ||||
|                         extraConfig = '' | ||||
|                           auth_request        /outpost.goauthentik.io/auth/nginx; | ||||
|                           error_page          401 = @goauthentik_proxy_signin; | ||||
|                           auth_request_set $auth_cookie $upstream_http_set_cookie; | ||||
|                           add_header Set-Cookie $auth_cookie; | ||||
| 
 | ||||
|                           # translate headers from the outposts back to the actual upstream | ||||
|                           auth_request_set $authentik_username $upstream_http_x_authentik_username; | ||||
|                           auth_request_set $authentik_groups $upstream_http_x_authentik_groups; | ||||
|                           auth_request_set $authentik_email $upstream_http_x_authentik_email; | ||||
|                           auth_request_set $authentik_name $upstream_http_x_authentik_name; | ||||
|                           auth_request_set $authentik_uid $upstream_http_x_authentik_uid; | ||||
| 
 | ||||
|                           proxy_set_header X-authentik-username $authentik_username; | ||||
|                           proxy_set_header X-authentik-groups $authentik_groups; | ||||
|                           proxy_set_header X-authentik-email $authentik_email; | ||||
|                           proxy_set_header X-authentik-name $authentik_name; | ||||
|                           proxy_set_header X-authentik-uid $authentik_uid; | ||||
|                         ''; | ||||
|                       }; | ||||
|                     } | ||||
|                   ); | ||||
|                 }; | ||||
|               }; | ||||
|               config = mkIf config.enableAuthentik { | ||||
|                 extraConfig = '' | ||||
|                   proxy_buffers 8 16k; | ||||
|                   proxy_buffer_size 32k; | ||||
| 
 | ||||
|                   location /outpost.goauthentik.io { | ||||
|                     proxy_pass          http://localhost:9000/outpost.goauthentik.io; | ||||
|                     # ensure the host of this vserver matches your external URL you've configured | ||||
|                     # in authentik | ||||
|                     proxy_set_header    Host $host; | ||||
|                     proxy_redirect      http://localhost:9000 https://auth.posixlycorrect.com; | ||||
|                     proxy_set_header    X-Original-URL $scheme://$http_host$request_uri; | ||||
|                     add_header          Set-Cookie $auth_cookie; | ||||
|                     auth_request_set    $auth_cookie $upstream_http_set_cookie; | ||||
| 
 | ||||
|                     # required for POST requests to work | ||||
|                     proxy_pass_request_body off; | ||||
|                     proxy_set_header Content-Length ""; | ||||
|                   } | ||||
| 
 | ||||
|                   location @goauthentik_proxy_signin { | ||||
|                     internal; | ||||
|                     add_header Set-Cookie $auth_cookie; | ||||
|                     return 302 /outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri; | ||||
|                     # For domain level, use the below error_page to redirect to your authentik server with the full redirect path | ||||
|                     # return 302 https://authentik.company/outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri; | ||||
|                   } | ||||
|                 ''; | ||||
|               }; | ||||
|             } | ||||
|           ) | ||||
|         ); | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = { | ||||
|     services = { | ||||
|       authentik = { | ||||
|         enable = true; | ||||
|         environmentFile = "/var/trust/authentik/authentik-env"; | ||||
|         nginx = { | ||||
|           enable = true; | ||||
|           enableACME = true; | ||||
|           host = "auth.posixlycorrect.com"; | ||||
|         }; | ||||
|         settings = { | ||||
|           email = { | ||||
|             host = "smtp.fastmail.com"; | ||||
|             port = 587; | ||||
|             username = "fabianmontero@fastmail.com"; | ||||
|             use_tls = true; | ||||
|             use_ssl = false; | ||||
|             from = "auth@posixlycorrect.com"; | ||||
|           }; | ||||
|           disable_startup_analytics = true; | ||||
|           avatars = "initials"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,40 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; { | ||||
|   services = { | ||||
|     nginx = { | ||||
|       virtualHosts."send.posixlycorrect.com" = { | ||||
|         enableACME = true; | ||||
|         forceSSL = true; | ||||
|         extraConfig = '' | ||||
|           proxy_headers_hash_max_size 512; | ||||
|           proxy_headers_hash_bucket_size 128; | ||||
|         ''; | ||||
|         locations."/" = { | ||||
|           proxyPass = "http://127.0.0.1:8989"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     bepasty = { | ||||
|       enable = true; | ||||
|       servers = { | ||||
|         "send" = { | ||||
|           bind = "127.0.0.1:8989"; | ||||
|           secretKeyFile = "/var/trust/bepasty/secretKeyFile"; | ||||
|           dataDir = "/mnt/export2011/data"; | ||||
|           defaultPermissions = "read,create,delete"; | ||||
|           extraConfig = '' | ||||
|             SITENAME = 'send.posixlycorrect.com' | ||||
|             MAX_ALLOWED_FILE_SIZE = 4 * 1000 * 1000 * 1000 | ||||
|             SESSION_COOKIE_SECURE = True | ||||
|             ASCIINEMA_THEME = 'asciinema' | ||||
|           ''; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -9,18 +9,11 @@ with lib; { | |||
|   imports = [ | ||||
|     ./net.nix | ||||
|     ./mediawiki.nix | ||||
|     # ./jitsi.nix | ||||
|     ./forgejo.nix | ||||
|     ./vaultwarden.nix | ||||
|     # ./bepasty.nix | ||||
|     # ./jellyfin.nix | ||||
|     ./msmtp.nix | ||||
|     ./kuma.nix | ||||
|     # ./authentik.nix  consumes too much RAM and serves no purpose for now | ||||
|     ./paperless.nix | ||||
|     ./trilium.nix | ||||
|     # ./firefly.nix gnucash is better | ||||
|     ./roundcube.nix | ||||
|     ./syncthing.nix | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -1,33 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; { | ||||
|   services = { | ||||
|     nginx = { | ||||
|       virtualHosts."firefly.posixlycorrect.com" = { | ||||
|         enableACME = true; | ||||
|         forceSSL = true; | ||||
|         extraConfig = '' | ||||
|           proxy_headers_hash_max_size 512; | ||||
|           proxy_headers_hash_bucket_size 128; | ||||
|         ''; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     firefly-iii = { | ||||
|       enable = true; | ||||
|       user = "firefly-iii"; | ||||
|       dataDir = "/var/lib/firefly-iii"; | ||||
|       enableNginx = true; | ||||
|       virtualHost = "firefly.posixlycorrect.com"; | ||||
|       settings = { | ||||
|         SITE_OWNER = "fabian@posixlycorrect.com"; | ||||
|         DB_CONNECTION = "sqlite"; | ||||
|         APP_ENV = "local"; | ||||
|         APP_KEY_FILE = "/var/trust/firefly/key_file"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,30 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; { | ||||
|   services = { | ||||
|     nginx = { | ||||
|       virtualHosts."stream.posixlycorrect.com" = { | ||||
|         enableACME = true; | ||||
|         forceSSL = true; | ||||
|         extraConfig = '' | ||||
|           proxy_headers_hash_max_size 512; | ||||
|           proxy_headers_hash_bucket_size 128; | ||||
|         ''; | ||||
|         locations."/" = { | ||||
|           proxyPass = "http://localhost:8096"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     jellyfin = { | ||||
|       enable = true; | ||||
|       user = "jellyfin"; | ||||
|       group = "jellyfin"; | ||||
|       dataDir = "/mnt/export2008/jellyfin/dataDir"; | ||||
|       cacheDir = "/mnt/export2008/jellyfin/cacheDir"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,35 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; { | ||||
|   services = { | ||||
|     nginx = { | ||||
|       virtualHosts."meet.posixlycorrect.com" = { | ||||
|         enableACME = true; | ||||
|         forceSSL = true; | ||||
|         extraConfig = '' | ||||
|           proxy_headers_hash_max_size 512; | ||||
|           proxy_headers_hash_bucket_size 128; | ||||
|         ''; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     jitsi-meet = { | ||||
|       enable = true; | ||||
|       hostName = "meet.posixlycorrect.com"; | ||||
|       nginx.enable = true; | ||||
|       config = { | ||||
|         enableWelcomePage = true; | ||||
|         prejoinPageEnabled = true; | ||||
|         defaultLang = "en"; | ||||
|       }; | ||||
|       interfaceConfig = { | ||||
|         SHOW_JITSI_WATERMARK = false; | ||||
|         SHOW_WATERMARK_FOR_GUESTS = false; | ||||
|       }; | ||||
|     }; | ||||
|     jitsi-videobridge.openFirewall = true; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,29 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; { | ||||
|   services = { | ||||
|     nginx = { | ||||
|       virtualHosts."status.posixlycorrect.com" = { | ||||
|         enableACME = true; | ||||
|         forceSSL = true; | ||||
|         extraConfig = '' | ||||
|           proxy_headers_hash_max_size 512; | ||||
|           proxy_headers_hash_bucket_size 128; | ||||
|         ''; | ||||
|         locations."/" = { | ||||
|           proxyPass = "http://127.0.0.1:4456"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|     uptime-kuma = { | ||||
|       enable = true; | ||||
|       settings = { | ||||
|         HOST = "127.0.0.1"; | ||||
|         PORT = "4456"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,62 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; { | ||||
|   services = { | ||||
|     nginx = { | ||||
|       virtualHosts."mail.posixlycorrect.com" = { | ||||
|         enableACME = true; | ||||
|         forceSSL = true; | ||||
|         extraConfig = '' | ||||
|           proxy_headers_hash_max_size 512; | ||||
|           proxy_headers_hash_bucket_size 128; | ||||
|         ''; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     roundcube = { | ||||
|       enable = true; | ||||
|       hostName = "mail.posixlycorrect.com"; | ||||
|       configureNginx = true; | ||||
|       maxAttachmentSize = 2048; #MB | ||||
|       package = pkgs.roundcube.withPlugins (plugins: [ | ||||
|         #plugins.carddav | ||||
|         plugins.contextmenu | ||||
|         plugins.custom_from | ||||
|         plugins.persistent_login | ||||
|       ]); | ||||
|       plugins = [ | ||||
|         "archive" | ||||
|         "attachment_reminder" | ||||
|         #"carddav" | ||||
|         "contextmenu" | ||||
|         "custom_from" | ||||
|         "emoticons" | ||||
|         #"enigma" | ||||
|         "hide_blockquote" | ||||
|         "managesieve" | ||||
|         "markasjunk" | ||||
|         "newmail_notifier" | ||||
|         "password" | ||||
|         "persistent_login" | ||||
|         "reconnect" | ||||
|         "show_additional_headers" | ||||
|         "userinfo" | ||||
|         "vcard_attachments" | ||||
|         "zipdownload" | ||||
|       ]; | ||||
|       dicts = with pkgs.aspellDicts; [ | ||||
|         es | ||||
|         en | ||||
|       ]; | ||||
|       extraConfig = '' | ||||
|         $config['smtp_host'] = "ssl://smtp.fastmail.com:465"; | ||||
|         $config['smtp_user'] = "%u"; | ||||
|         $config['smtp_pass'] = "%p"; | ||||
|         $config['imap_host'] = "ssl://imap.fastmail.com:993"; | ||||
|       ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue