| { pkgs, helpers, config, lib, ... }: { |
| clicks.nginx.services = with helpers.nginx; [ |
| (Host "signup.hopescaramels.com" (ReverseProxy "caramels:1024")) |
| (Host "freeflowtaekwondo.com" (ReverseProxy "generic:1026")) |
| (Host "homebridge.coded.codes" (ReverseProxy "CodedPi.local:8581")) |
| (Host "codedpc.coded.codes" (ReverseProxy "SamuelDesktop.local:3389")) |
| (Host "testing.coded.codes" (ReverseProxy "SamuelDesktop.local:3000")) |
| (Hosts [ "kavita.coded.codes" "reading.coded.codes" ] |
| (ReverseProxy "127.0.0.1:5000")) |
| (Host "clicks.codes" (ReverseProxy "127.0.0.1:3000")) |
| (Host "passwords.clicks.codes" (ReverseProxy "127.0.0.1:8452")) |
| (Host "login.clicks.codes" (ReverseProxy "127.0.0.1:9083")) |
| (Hosts [ |
| "syncthing.clicks.codes" |
| "syncthing.coded.codes" |
| "syncthing.thecoded.prof" |
| "syncthing.hopescaramels.com" |
| ] (ReverseProxy "127.0.0.1:8384")) |
| (Hosts [ "gerrit.clicks.codes" "git.clicks.codes" ] |
| (ReverseProxy "127.0.0.255:1000")) |
| (Hosts [ "grafana.clicks.codes" "logs.clicks.codes" ] |
| (ReverseProxy "127.0.0.1:9052")) |
| (InsecureHosts [ |
| "mail.clicks.codes" |
| "mail.coded.codes" |
| "mail.hopescaramels.com" |
| "autoconfig.coded.codes" |
| "autoconfig.clicks.codes" |
| "autoconfig.hopescaramels.com" |
| "imap.coded.codes" |
| "imap.clicks.codes" |
| "imap.hopescaramels.com" |
| "pop.coded.codes" |
| "pop.clicks.codes" |
| "pop.hopescaramels.com" |
| "smtp.coded.codes" |
| "smtp.clicks.codes" |
| "smtp.hopescaramels.com" |
| ] (ReverseProxy "127.0.0.1:1080")) |
| (Host "matrix.coded.codes" (Directory "${builtins.toString |
| (pkgs.schildichat-web.override { |
| conf = { |
| default_server_config = |
| lib.pipe ./nginx/coded.codes/.well-known/matrix [ |
| builtins.readFile |
| builtins.fromJSON |
| ]; |
| features = { |
| feature_report_to_moderators = true; |
| feature_latex_maths = true; |
| feature_pinning = true; |
| feature_mjolnir = true; |
| feature_presence_in_room_list = true; |
| feature_custom_themes = true; |
| feature_dehydration = true; |
| }; |
| setting_defaults = { "fallbackICEServerAllowed" = true; }; |
| default_theme = "dark"; |
| permalink_prefix = "https://matrix.coded.codes"; |
| disable_guests = true; |
| disable_3pid_login = true; |
| }; |
| })}")) |
| (Host "api.clicks.codes" |
| (Path "/nucleus/" (ReverseProxy "127.0.0.1:10000"))) |
| (Host "api.coded.codes" |
| (Path "/nucleus/" (ReverseProxy "SamuelDesktop.local:10000"))) |
| (Host "coded.codes" (Compose [ |
| (Path "/.well-known/matrix/" |
| (File ./nginx/coded.codes/.well-known/matrix)) |
| (Redirect "https://clicks.codes$request_uri") |
| ])) |
| (Host "matrix-backend.coded.codes" (Compose [ |
| (Path "/_synapse/admin/" (Status 403)) |
| (ReverseProxy "127.0.0.1:4527") |
| ])) |
| ]; |
| clicks.nginx.serviceAliases = with helpers.nginx; [ |
| (Aliases "nextcloud.clicks.codes" [ |
| "cloud.clicks.codes" |
| "docs.clicks.codes" |
| "www.cloud.clicks.codes" |
| "www.docs.clicks.codes" |
| "www.nextcloud.clicks.codes" |
| ]) |
| (Aliases "privatebin" [ |
| "paste.clicks.codes" |
| "paste.coded.codes" |
| "paste.thecoded.prof" |
| "paste.hopescaramels.com" |
| "www.paste.clicks.codes" |
| "www.paste.coded.codes" |
| "www.paste.thecoded.prof" |
| "www.paste.hopescaramels.com" |
| "www.privatebin.clicks.codes" |
| ]) |
| ]; |
| clicks.nginx.streams = with helpers.nginx; [ |
| (ProxyStream 143 "127.0.0.1:1143" "tcp") # imap |
| (ProxyStream 993 "127.0.0.1:1993" "tcp") # imap |
| (ProxyStream 110 "127.0.0.1:1110" "tcp") # pop3 |
| (ProxyStream 995 "127.0.0.1:1995" "tcp") # pop3 |
| (ProxyStream 25 "127.0.0.1:1025" "tcp") # smtp |
| (ProxyStream 465 "127.0.0.1:1465" "tcp") # smtp |
| (ProxyStream 587 "127.0.0.1:1587" "tcp") # smtp |
| ]; |
| } |