Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

gotlougit/appvm

 
 

Repository files navigation

Nix application VMs: security through virtualization

Simple application VMs (hypervisor-based sandbox) based on Nix package manager.

Uses one read-only /nix directory for all appvms. So creating a new appvm (but not first) is just about one minute.

The home directory of each appvm is inside ~/appvm, so you can easily share files between the two as and when needed

appvm screenshot

Installation and Usage

  1. Clone this repo.

  2. Run go build to build the program

  3. Run ./appvm generate brave to generate the config files for Brave.

Note: If you use flakes for NixOS, nix channels probably won't appear when you run this as a normal user. Run the command as root in this case (it just needs to create configs, it doesn't do anything else)

  1. Run ./appvm start brave to launch Brave inside the VM. (this can be done as your user only, you don't need to use root!)

Right now as a proof of concept only Brave is contained inside the config, however the code can be extended to allow any program you want here.

You can customize local settings in ~/.config/appvm/nix/local.nix.

Default hotkey to release cursor: ctrl+alt.

Shared directory

$ ls appvm/chromium
foo.tar.gz
bar.tar.gz

Close VM

$ appvm stop chromium

About

Nix-based app VMs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 84.5%
  • Nix 13.1%
  • Makefile 2.2%
  • Shell 0.2%