diff --git a/home-manager/features/mounts/mcp-archive.nix b/home-manager/features/mounts/mcp-archive.nix new file mode 100644 index 0000000..7167c78 --- /dev/null +++ b/home-manager/features/mounts/mcp-archive.nix @@ -0,0 +1,35 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ sshfs ]; + + systemd.user.services.mcp-archive = { + Unit = { + Description = "SSHFS mount for remote archive"; + After = [ "network-online.target" ]; + }; + + Service = { + Type = "simple"; + ExecStartPre = "/run/current-system/sw/bin/mkdir -p %h/archive"; + ExecStart = '' + ${pkgs.sshfs}/bin/sshfs \ + -f \ + -o reconnect \ + -o ServerAliveInterval=15 \ + -o ServerAliveCountMax=3 \ + -o IdentityFile=%h/.ssh/id_ed25519 \ + -o StrictHostKeyChecking=yes \ + drew@mcp:/tank/archive/drew \ + %h/archive + ''; + ExecStop = "/run/wrappers/bin/fusermount -u %h/mnt/archive"; + Restart = "on-failure"; + RestartSec = "10s"; + }; + + Install = { + WantedBy = [ "default.target" ]; + }; + }; + +} diff --git a/system/hosts/altair/drew.nix b/system/hosts/altair/drew.nix index 04d34b9..79d9296 100644 --- a/system/hosts/altair/drew.nix +++ b/system/hosts/altair/drew.nix @@ -21,6 +21,7 @@ in "/features/gaming.nix" "/features/image-editing.nix" "/features/linux-desktop.nix" + "/features/mounts/mcp-archive.nix" "/features/notes.nix" "/features/3d-printing.nix" ] @@ -28,21 +29,22 @@ in (import ../../../home-manager/features/wallpaper.nix monitors) ]; - # This config file is needed for nix shell to allow unfree programs. I'm not - # sure why this isn't a home-manager option. - home.file.".config/nixpkgs/config.nix".text = '' - { allowUnfree = true; } - ''; + home = { + stateVersion = "24.11"; + username = "drew"; + homeDirectory = "/home/drew"; - home.stateVersion = "24.11"; - - home.username = "drew"; - home.homeDirectory = "/home/drew"; + # This config file is needed for nix shell to allow unfree programs. I'm not + # sure why this isn't a home-manager option. + file.".config/nixpkgs/config.nix".text = '' + { allowUnfree = true; } + ''; + }; programs.git.settings = { user = { name = "Drew Haven"; - email = "drew.haven@gmail.com"; + email = "periodic@blazestar.net"; }; };