From 1ebbb4667c123879b0b3455828e5beb16e58e5c6 Mon Sep 17 00:00:00 2001 From: Spencer Brower Date: Fri, 2 Sep 2022 15:12:45 -0400 Subject: [PATCH] feat: Added `vagrant` module. --- .gitignore | 0 flake.lock | 25 +++++++++++++++++++++++++ flake.nix | 7 +++++++ nixosModules/vagrant.nix | 25 +++++++++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 .gitignore create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 nixosModules/vagrant.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..4c44876 --- /dev/null +++ b/flake.lock @@ -0,0 +1,25 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1661799568, + "narHash": "sha256-P3xXCyYfd6WzVC3anpb5ZvUeZ6vMttcs05OWGWvgc+E=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c3e4dc4f6d23c7e41dda5ce98956c75c7779e2fa", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..0621eed --- /dev/null +++ b/flake.nix @@ -0,0 +1,7 @@ +{ + description = "A very basic flake"; + + outputs = { self, nixpkgs }: { + nixosModules.vagrant = { ... }: { imports = [ ./nixosModules/vagrant.nix ]; }; + }; +} diff --git a/nixosModules/vagrant.nix b/nixosModules/vagrant.nix new file mode 100644 index 0000000..bb7aa61 --- /dev/null +++ b/nixosModules/vagrant.nix @@ -0,0 +1,25 @@ +{ config, ... }: { + config = { + virtualisation.virtualbox.guest.enable = true; + + # Mount a VirtualBox shared folder. + fileSystems."/vagrant" = { + fsType = "vboxsf"; + device = "vagrant"; + options = [ "rw,uid=1001,gid=60,_netdev" ]; # mount as vagrant:nginx + }; + + users.users.root.password = "vagrant"; + users.users."vagrant" = { + isNormalUser = true; + password = "vagrant"; + extraGroups = [ + "nginx" + "wheel" + # Allow mounting of shared folders. + "vboxsf" + ]; + }; + + services.openssh.enable = true; + }