diff --git a/hosts/cube/hardware.nix b/hosts/cube/hardware.nix index 4a26e14..6d11d93 100644 --- a/hosts/cube/hardware.nix +++ b/hosts/cube/hardware.nix @@ -1,6 +1,6 @@ { ulib, modulesPath, ... }: with ulib; -systemConfiguration { +serverSystemConfiguration { imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; boot.loader.grub = enabled { diff --git a/hosts/cube/mail.nix b/hosts/cube/mail.nix index 027006d..720fd79 100644 --- a/hosts/cube/mail.nix +++ b/hosts/cube/mail.nix @@ -3,7 +3,7 @@ let inherit (config.networking) domain; - fqdn = "mail.${domain}"; + fqdn = "mail.${domain}"; in serverSystemConfiguration { mailserver = enabled { inherit fqdn; diff --git a/hosts/cube/microbin.nix b/hosts/cube/microbin.nix new file mode 100644 index 0000000..ee233d7 --- /dev/null +++ b/hosts/cube/microbin.nix @@ -0,0 +1,43 @@ +{ config, lib, ulib, ... }: with ulib; + +let + inherit (config.networking) domain; + + fqdn = "paste.${domain}"; + port = 4778; +in serverSystemConfiguration { + services.nginx.virtualHosts.${fqdn} = { + forceSSL = true; + useACMEHost = domain; + + locations."/".proxyPass = "http://[::1]:${toString port}/"; + }; + + services.microbin = enabled { + passwordFile = config.age.secrets."cube.microbin.password".path; + + settings = lib.mapAttrs' (name: value: lib.nameValuePair "MICROBIN_${lib.toUpper name}" (toString value)) { + inherit port; + + bind = "::1"; + + title = "Paste - RGBCube"; + + hide_footer = true; + hide_header = true; + hide_logo = true; + + no_file_upload = true; + no_listing = true; + + hash_ids = true; + public_path = "https://${fqdn}/"; + qr = true; + + enable_burn_after = true; + + disable_telemetry = true; + disable_update_checking = true; + }; + }; +} diff --git a/modules/ghostty.nix b/modules/ghostty.nix index 83d45af..c39a19c 100644 --- a/modules/ghostty.nix +++ b/modules/ghostty.nix @@ -12,7 +12,7 @@ clearDefaultKeybindings = true; - keybindings = (lib.mapAttrs' (name: value: lib.nameValuePair "ctrl+shift+${name}" value) { + keybindings = (lib.mapAttrs' (name: lib.nameValuePair "ctrl+shift+${name}") { c = "copy_to_clipboard"; v = "paste_from_clipboard"; @@ -50,7 +50,7 @@ "physical:eight" = "goto_tab:8"; "physical:nine" = "goto_tab:9"; "physical:zero" = "goto_tab:10"; - }) // (lib.mapAttrs' (name: value: lib.nameValuePair "ctrl+${name}" value) { + }) // (lib.mapAttrs' (name: lib.nameValuePair "ctrl+${name}") { "physical:tab" = "next_tab"; "shift+physical:tab" = "previous_tab"; }); diff --git a/secrets/cube.microbin.password.age b/secrets/cube.microbin.password.age new file mode 100644 index 0000000..c6feaa5 --- /dev/null +++ b/secrets/cube.microbin.password.age @@ -0,0 +1,5 @@ +age-encryption.org/v1 +-> ssh-ed25519 +rZ0Tw ermFdlm4jBfWILyxN7Mu07sheVp6Kg46ho9pAk9O73s +nF+GEyxxl8pNd5M/TKM05cbhIX2Wuyi0+o+qSRcqW1o +--- zPRSl0ZRMz2TTpy7MdIwzg/Q46sysY2MqTNihWycctY +z'}ң5Er'Tg]7 |ż@YuMJSVùܴ9$N8ϼp \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 10cad13..d3b465f 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -7,6 +7,7 @@ rec { "acme.age".publicKeys = [ keys.cube ]; "cube.password.hash.age".publicKeys = [ keys.cube ]; "cube.mail.password.hash.age".publicKeys = [ keys.cube ]; + "cube.microbin.password.age".publicKeys = [ keys.cube ]; "cube.id.age".publicKeys = [ keys.rgbcube ]; "enka.said.password.hash.age".publicKeys = [ keys.rgbcube ]; "enka.orhan.password.hash.age".publicKeys = [ keys.rgbcube ];