{"id":15090179,"url":"https://github.com/codexlynx/nix-vagrant","last_synced_at":"2026-01-03T23:48:38.558Z","repository":{"id":255950156,"uuid":"853828172","full_name":"codexlynx/nix-vagrant","owner":"codexlynx","description":"A nix library for render, run and manage declarative HashiCorp Vagrant config files powered by nixago and CUE Lang.","archived":false,"fork":false,"pushed_at":"2024-11-16T21:36:43.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T11:43:02.972Z","etag":null,"topics":["cue","cuelang","hashicorp","nix","nix-flake","nixago","nixos","vagrant","vagrantfile"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codexlynx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-07T16:43:23.000Z","updated_at":"2024-11-16T21:36:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"df79079e-65de-4f04-a38b-6ba9f5170a25","html_url":"https://github.com/codexlynx/nix-vagrant","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"2ed165d7eae5ef8a628c8512559d71950cf4ef94"},"previous_names":["codexlynx/nix-vagrant"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codexlynx%2Fnix-vagrant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codexlynx%2Fnix-vagrant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codexlynx%2Fnix-vagrant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codexlynx%2Fnix-vagrant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codexlynx","download_url":"https://codeload.github.com/codexlynx/nix-vagrant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244826634,"owners_count":20516797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cue","cuelang","hashicorp","nix","nix-flake","nixago","nixos","vagrant","vagrantfile"],"created_at":"2024-09-25T09:23:02.976Z","updated_at":"2026-01-03T23:48:38.530Z","avatar_url":"https://github.com/codexlynx.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nix-vagrant\n\u003e [!WARNING]  \n\u003e This library is in an early, experimental stage and may lack complete functionality. It is intended for testing and feedback purposes only. Use at your own risk as stability is not guaranteed.\n\n\u003cimg src=\"https://r7.pngegg.com/path/339/633/226/5bbbb587d6390-358f94abbaa945123d02c06a05c46ab4.png\" width=\"200\" align=\"right\" alt=\"Vagrant\"\u003e\n\u003cimg src=\"https://nixos.org/logo/nixos-logo-only-hires.png\" width=\"200\" align=\"right\" alt=\"NixOS\"\u003e\n\n\nA [nix](https://zero-to-nix.com/concepts/nix-language) library for render, run and manage declarative HashiCorp [Vagrant](https://www.vagrantup.com/) config files powered by nixago and [CUE Lang](https://cuelang.org/).\n* Make Vagrantfiles from nix\n* Manage vagrant machine lifecycle\n* Batteries includes box runner\n\n## Usage\n### Make Vagrantfiles\n```nix\nvagrant.file.cumulus = \n  pkgs.writeShellScriptBin \"result\"\n    (nix-vagrant.lib.\"${system}\".make \"Vagrantfile\" {\n      name = \"machine1\";\n      provider = \"vmware_fusion\";\n      box = \"CumulusCommunity/cumulus-vx\";\n      gui = false;\n    }).shellHook;\n```\n\n#### Commands\n```commandline\n$ nix run .#vagrant.x86_64-linux.file.cumulus\n```\n\n### Manual machine lifecycle control\n```nix\nvagrant.machine.windows = nix-vagrant.lib.\"${system}\".machine {\n  package = pkgs.vagrant;\n\n  config = {\n    name = \"windows1\";\n    provider = \"virtualbox\";\n    box = \"gusztavvargadr/windows-11\";\n    gui = true;\n  };\n\n  init = {\n    launchScript = \"powershell -noninteractive -executionpolicy unrestricted - \u003c C:/\";\n\n    script = ''\n      echo Hello from Windows!\n    '';\n  };\n};\n```\n#### Commands\n```commandline\n$ nix run .#vagrant.x86_64-linux.machine.windows.up\n$ nix run .#vagrant.x86_64-linux.machine.windows.ssh\n$ nix run .#vagrant.x86_64-linux.machine.windows.destroy\n$ nix run .#vagrant.x86_64-linux.machine.windows.ssh-config\n$ nix run .#vagrant.x86_64-linux.machine.windows.provision\n```\n\n### Box runner\n```nix\npackages.start = nix-vagrant.lib.\"${system}\".runner {\n  config = {\n    name = \"windows1\";\n    provider = \"virtualbox\";\n    box = \"gusztavvargadr/windows-11\";\n    gui = false;\n  };\n};\n```\n\n#### Commands\n```commandline\n$ nix run .#start\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodexlynx%2Fnix-vagrant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodexlynx%2Fnix-vagrant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodexlynx%2Fnix-vagrant/lists"}