These salt states can be used to create a template, loaded with the MullvadVPN GUI and Mullvad Browser. An AppVM named sys-mullvad, and a disposable template, mullvad-dvm, can be created from that template. The template, template-mullvad, is based on the debian-12-minimal template. If the debian-12-minimal template is not present, it will be downloaded and installed - this may take some time depending on your net connection. Both the AppVM and the disposable template have the Mullvad GUI to set up a VPN, and the Mullvad browser. You can run the Mullvad Browser independently of the VPN. The sys-mullvad AppVM can be used as a standard AppVM or as a vpn gateway - set the netvm of client qubes to mullvad, and they will use the VPN. No traffic will pass except through the VPN. If you remove this package, the salt files will be removed, but the qubes will not. You can manually remove them if you wish. You can, of course, use template-mullvad to create other qubes for separate VPN connections, or a qube where you will just use the Mullvad browser. Remember that each qube that creates a VPN will count toward the maximum of 5 clients. Log out and close the VPN when you have finished with it: if you do not, you will be prompted to log out other clients from the GUI. Installing the Template ----------------------- sudo qubesctl state.apply mullvad.clone sudo qubesctl --skip-dom0 --targets=template-mullvad state.apply mullvad.repo Installing the Mullvad Browser ------------------------------ sudo qubesctl --skip-dom0 --targets=TARGETS state.apply mullvad.browser (Replace TARGETS with the name(s) of the templates where you want to install the browser.) To create the qubesctl state.apply mullvad.create_disposable qubesctl --skip-dom0 --targets=sys-mullvad state.apply mullvad.configure ##################################### %post if [ $1 -eq 1 ]; then qubesctl state.apply mullvad.clone qubesctl --skip-dom0 --targets=template-mullvad state.apply mullvad.repo qubesctl --skip-dom0 --targets=template-mullvad state.apply mullvad.browser qubesctl state.apply mullvad.create_disposable qubesctl --skip-dom0 --targets=sys-mullvad state.apply mullvad.configure elif [ $1 -eq 1 ]; then qubesctl state.apply mullvad.create_disposable fi #####################################