nixos-config

NixOS configs for my systems
Log | Files | Refs

commit 5f5006198491e42fc3a81c7647d1a648a5f1932e
parent c83b940c15f2d2a2ed6b44d23b4332182ec41ff1
Author: vin <vin@vineetk.net>
Date:   Mon,  3 Mar 2025 19:54:56 -0500

demiurge: switch back to using self-signed cert instead of step-ca

step-ca was being a massive pain when I switched the domain from
demiurge.vpn to demiurge.epistemia. After a long time of trying to see
why it couldn't connect, it later switched to rejectedIdentifier and I
had no idea how to fix it. (one of the github issues on it had
maintainer saying they're closing due to being unable to reproduce)

Diffstat:
Mhome.nix | 22+++++++++++-----------
Mhosts/demiurge/default.nix | 107+++++++++++++++++++++++--------------------------------------------------------
Mhosts/saklas/default.nix | 10+++++++++-
Msecrets/secrets.nix | 1-
Dsecrets/smallstep.age | 0
5 files changed, 51 insertions(+), 89 deletions(-)

diff --git a/home.nix b/home.nix @@ -432,7 +432,7 @@ in { }; searchEngines = { - DEFAULT = "https://searx.demiurge.vpn/search?q={}"; + DEFAULT = "https://searx.demiurge.epistemia/search?q={}"; ddg = "https://lite.duckduckgo.com/?q={}"; nw = "https://wiki.nixos.org/index.php?search={}"; aw = "https://wiki.archlinux.org/?search={}"; @@ -481,7 +481,7 @@ config.set('content.javascript.enabled', True, 'cloud.binary.ninja') config.set('content.javascript.enabled', True, 'console.hetzner.cloud') config.set('content.javascript.enabled', True, '*.hetzner.com') config.set('content.javascript.enabled', True, '*.digikey.com') -config.set('content.javascript.enabled', True, '*.demiurge.vpn') +config.set('content.javascript.enabled', True, '*.demiurge.epistemia') # Allow locally loaded documents to access remote URLs. config.set('content.local_content_can_access_remote_urls', True, 'file:///home/vin/.local/share/qutebrowser/userscripts/*') @@ -884,15 +884,15 @@ def _pastebin_redir(url: QUrl) -> bool: # Any return value other than a literal 'False' means we redirected REDIRECT_MAP = { - "new.reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.vpn'), - "np.reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.vpn'), - "old.reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.vpn'), - "reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.vpn'), - "www.reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.vpn'), - - "www.youtube.com": operator.methodcaller('setHost', 'invidious.demiurge.vpn'), - "youtube.com": operator.methodcaller('setHost', 'invidious.demiurge.vpn'), - "youtu.be": operator.methodcaller('setHost', 'invidious.demiurge.vpn'), + "new.reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.epistemia'), + "np.reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.epistemia'), + "old.reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.epistemia'), + "reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.epistemia'), + "www.reddit.com": operator.methodcaller('setHost', 'redlib.demiurge.epistemia'), + + "www.youtube.com": operator.methodcaller('setHost', 'invidious.demiurge.epistemia'), + "youtube.com": operator.methodcaller('setHost', 'invidious.demiurge.epistemia'), + "youtu.be": operator.methodcaller('setHost', 'invidious.demiurge.epistemia'), "imgur.com": operator.methodcaller('setHost', 'rimgo.bloat.cat'), "i.imgur.com": operator.methodcaller('setHost', 'rimgo.bloat.cat'), diff --git a/hosts/demiurge/default.nix b/hosts/demiurge/default.nix @@ -14,12 +14,6 @@ owner = "root"; group = "root"; }; - - smallstep = { - file = ../../secrets/smallstep.age; - owner = "step-ca"; - group = "step-ca"; - }; }; # boot options @@ -187,12 +181,6 @@ # }; security = { - acme = { - acceptTerms = true; - defaults.email = "me@vineetk.net"; - defaults.server = "https://127.0.0.1:4433/acme/acme/directory"; - }; - # I prefer doas over sudo for simplicity doas = { enable = true; @@ -206,15 +194,24 @@ pki.certificates = [ '' -----BEGIN CERTIFICATE----- -MIIBoDCCAUagAwIBAgIRANI8aOT3LE+pzmsQWjcDOIgwCgYIKoZIzj0EAwIwLjER -MA8GA1UEChMIZGVtaXVyZ2UxGTAXBgNVBAMTEGRlbWl1cmdlIFJvb3QgQ0EwHhcN -MjUwMjE4MDUzNTA5WhcNMzUwMjE2MDUzNTA5WjAuMREwDwYDVQQKEwhkZW1pdXJn -ZTEZMBcGA1UEAxMQZGVtaXVyZ2UgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABMv8weeXJSDLygVlBxxAHLCvQCdf2COCk0QffNeDaVlIU/NFo3IyPSqG -E3YtWEWamU/icgsJS999z3BZ5O+cTP6jRTBDMA4GA1UdDwEB/wQEAwIBBjASBgNV -HRMBAf8ECDAGAQH/AgEBMB0GA1UdDgQWBBRM51S3OgTxXwNhdSSHw6llz0APFzAK -BggqhkjOPQQDAgNIADBFAiA9alHJ1XHLlKNRUGRL4tdFC3RZYHtoN8BmBHEfDa1S -LQIhANgsvYmyCp/Nur2RKaV25CDg3kMYVBXED2HVDy8qa+3i +MIIDMDCCAhigAwIBAgIUcSUafnojcFKod3f436VELfEKoFkwDQYJKoZIhvcNAQEL +BQAwHTEbMBkGA1UEAwwSZGVtaXVyZ2UuZXBpc3RlbWlhMB4XDTI1MDMwMzEwMjQw +OVoXDTI2MDMwMzEwMjQwOVowHTEbMBkGA1UEAwwSZGVtaXVyZ2UuZXBpc3RlbWlh +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwiRlreCXc7f+yWclxR2M +639g0+Lr/c9HrX7EM2/olavPAtZgCzqqvJsDmXq4AURlwd82wZUZxXjWFwlRji/+ +WViXQBTWwnXVjc9MJlxTq2X2zfU2GIxYsrA1ZQuj0wVHlA+R/66oL0Padc/qQZfv +sshQnrqnutvGobBWEGJXcCIDiwUGgHlIoelwY9G0GLE/rkVujNjAonyMhVGJHVUv +lXyc3RNslQHymr4Wl6+lL6V6XfuB1taECJYSLXPx66TvJqod2Io+b7T7cWp+9g9U +B2jQu1YnPRpwjdPvbOCPjPbOP6UcbyHdbHAidSM0FSL5riVUmugwDwbQKXFFX2gH +hwIDAQABo2gwZjAfBgNVHREEGDAWghQqLmRlbWl1cmdlLmVwaXN0ZW1pYTATBgNV +HSUEDDAKBggrBgEFBQcDATAPBgNVHRMECDAGAQH/AgEAMB0GA1UdDgQWBBTjMVhw +zmkE6P5jFHkLVQE2gNB2ejANBgkqhkiG9w0BAQsFAAOCAQEAWvnwB83vXzQFpObF +vn/nfZ9wYpNaBsE15ab3Fwd2nDc55KDkDWgBi5Xl8fwN3OhFOU2XXBCYqbCU6asx +OnSx9glbhJioORO7B5ENbEYrpB97SaWASNXrBQ2KiQT5aC+9xb52K53kkk0tTn2l +nBb+jyLItzWX99H6EavOq69a4T2BObZaSPQAfpM8FIrKl+UZC3152+bi8wKfG4K4 +FQsOJMjIvhTm2IiOS8xIaZz7EJORxFjtOkLEIGGZBNK6QcnD714/nYbHSrQx4eNM +/ek8Rmf6DTLaFBx+raWyDTgMY23lvWTKDTT1+dZnRNcg72bFpIdqHsDrIg/IBjZ0 +3eGfkQ== -----END CERTIFICATE----- '' ]; @@ -271,7 +268,7 @@ LQIhANgsvYmyCp/Nur2RKaV25CDg3kMYVBXED2HVDy8qa+3i nginx = { enable = true; - defaultListenAddresses = [ "10.0.13.2" ]; + defaultListenAddresses = [ "100.64.0.5" ]; recommendedGzipSettings = true; recommendedOptimisation = true; @@ -280,26 +277,30 @@ LQIhANgsvYmyCp/Nur2RKaV25CDg3kMYVBXED2HVDy8qa+3i virtualHosts = { "searx.demiurge.epistemia" = { - enableACME = true; - forceSSL = false; + addSSL = true; + sslCertificate = "/var/demiurge.epistemia.crt"; + sslCertificateKey = "/var/demiurge.epistemia.key"; locations."/".proxyPass = "http://127.0.0.1:8081"; }; "redlib.demiurge.epistemia" = { - enableACME = true; - forceSSL = false; + addSSL = true; + sslCertificate = "/var/demiurge.epistemia.crt"; + sslCertificateKey = "/var/demiurge.epistemia.key"; locations."/".proxyPass = "http://127.0.0.1:8082"; }; "navidrome.demiurge.epistemia" = { - enableACME = true; - forceSSL = false; + addSSL = true; + sslCertificate = "/var/demiurge.epistemia.crt"; + sslCertificateKey = "/var/demiurge.epistemia.key"; locations."/".proxyPass = "http://127.0.0.1:4533"; }; "sdui.demiurge.epistemia" = { - enableACME = true; - forceSSL = false; + addSSL = true; + sslCertificate = "/var/demiurge.epistemia.crt"; + sslCertificateKey = "/var/demiurge.epistemia.key"; locations."/" = { proxyPass = "http://127.0.0.1:7860"; proxyWebsockets = true; @@ -770,52 +771,6 @@ LQIhANgsvYmyCp/Nur2RKaV25CDg3kMYVBXED2HVDy8qa+3i }; }; - # certificate authority - step-ca = { - enable = true; - address = "127.0.0.1"; - port = 4433; - intermediatePasswordFile = config.age.secrets.smallstep.path; - - settings = { - root = "/var/lib/step-ca/certs/root_ca.crt"; - federatedRoots = null; - crt = "/var/lib/step-ca/certs/intermediate_ca.crt"; - key = "/var/lib/step-ca/secrets/intermediate_ca_key"; - address = "127.0.0.1:4433"; - insecureAddress = ""; - dnsNames = [ "127.0.0.1" ]; - logger.format = "text"; - - db = { - type = "badgerv2"; - dataSource = "/var/lib/step-ca/db"; - badgerFileLoadingmode = ""; - }; - - authority.provisioners = [{ - type = "ACME"; - name = "acme"; - claims = { - enableSSHCA = true; - disableRenewal = false; - allowRenewalAfterExpiry = false; - disableSmallstepExtensions = false; - }; - }]; - - tls = { - cipherSuites = [ - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" - ]; - minVersion = 1.2; - maxVersion = 1.3; - renegotiation = false; - }; - }; - }; - # vpn tailscale = { enable = true; diff --git a/hosts/saklas/default.nix b/hosts/saklas/default.nix @@ -155,7 +155,15 @@ port = 8080; settings = { server_url = "https://headscale.13f0.net"; - dns.base_domain = "epistemia"; + dns = { + base_domain = "epistemia"; + extra_records = [ + { name = "navidrome.demiurge.epistemia"; type = "A"; value = "100.64.0.5"; } + { name = "redlib.demiurge.epistemia"; type = "A"; value = "100.64.0.5"; } + { name = "sdui.demiurge.epistemia"; type = "A"; value = "100.64.0.5"; } + { name = "searx.demiurge.epistemia"; type = "A"; value = "100.64.0.5"; } + ]; + }; logtail.enabled = false; }; }; diff --git a/secrets/secrets.nix b/secrets/secrets.nix @@ -13,7 +13,6 @@ in "hetzner_dns.age".publicKeys = users ++ [ saklas ]; "radicale_users.age".publicKeys = users ++ [ saklas ]; - "smallstep.age".publicKeys = users ++ [ demiurge ]; "tailscale_demiurge.age".publicKeys = users ++ [ demiurge ]; "tailscale_saklas.age".publicKeys = users ++ [ saklas ]; } diff --git a/secrets/smallstep.age b/secrets/smallstep.age Binary files differ.