From a2cd8de3f9d8212ead10b4263b7a7d5afe71e164 Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Sat, 2 Sep 2023 12:07:14 +0530 Subject: module/sshfs: refactor, kaysshfs -> sshfs --- modules/kaysshfs.nix | 20 -------------------- modules/sshfs.nix | 22 ++++++++++++++++++++++ modules/userdata.nix | 7 ++++++- 3 files changed, 28 insertions(+), 21 deletions(-) delete mode 100644 modules/kaysshfs.nix create mode 100644 modules/sshfs.nix (limited to 'modules') diff --git a/modules/kaysshfs.nix b/modules/kaysshfs.nix deleted file mode 100644 index c526927..0000000 --- a/modules/kaysshfs.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ pkgs, ... }: - -{ - system.fsPackages = with pkgs; [ sshfs ]; - - fileSystems."/mnt/kay" = { - device = "sinansftp@sinanmohd.com:"; - fsType = "sshfs"; - options = [ - "allow_other" # for non-root access - "_netdev" # this is a network fs - "x-systemd.automount" # mount on demand - - # SSH options - "reconnect" # handle connection drops - "ServerAliveInterval=15" # keep connections alive - "IdentityFile=/var/secrets/kaysftp-key" - ]; - }; -} diff --git a/modules/sshfs.nix b/modules/sshfs.nix new file mode 100644 index 0000000..a1f1904 --- /dev/null +++ b/modules/sshfs.nix @@ -0,0 +1,22 @@ +{ config, pkgs, ... }: + +let + user = config.userdata.user; + domain = config.userdata.domain; +in +{ + system.fsPackages = with pkgs; [ sshfs ]; + + fileSystems."/kay" = { + device = "${user}@${domain}:"; + fsType = "sshfs"; + options = [ + "allow_other" # for non-root access + "_netdev" # this is a network fs + "x-systemd.automount" # mount on demand + "reconnect" # handle connection drops + "ServerAliveInterval=15" # keep connections alive + "IdentityFile=/var/secrets/ssh/${user}.key" + ]; + }; +} diff --git a/modules/userdata.nix b/modules/userdata.nix index 71a5a96..84a8ca1 100644 --- a/modules/userdata.nix +++ b/modules/userdata.nix @@ -8,11 +8,16 @@ in user = mkOption { type = types.str; default = "sinan"; - description = mdDoc "owner's username"; + description = mdDoc "Owner's username"; }; groups = mkOption { type = types.listOf types.str; description = mdDoc "Groups the owner should be in"; }; + domain = mkOption { + type = types.str; + default = "sinanmohd.com"; + description = mdDoc "Owner's domain"; + }; }; } -- cgit v1.2.3