Nixos-shell: Difference between revisions

From NixOS Wiki
imported>Onny
mNo edit summary
imported>Mic92
fix typo
Line 11: Line 11:
== Usage ==
== Usage ==


Create a signle example file containing the system configuration for the virtual machine
Create a single example file containing the system configuration for the virtual machine


{{file|myvm.nix|nix|<nowiki>
{{file|myvm.nix|nix|<nowiki>
{ pkgs, ... }: {
{ pkgs, ... }: {
   services.dokuwiki.sites."localhost" = {
   services.dokuwiki.sites."localhost" = {
     enable = true;
     enable = true;
Line 22: Line 23:
</nowiki>}}
</nowiki>}}


In this example, we'll have a virtual guest machine running an instance of [[Dokuwiki]] on port <code>80</code>. Start the VM while forwarding port <code>8080</code> on the host to port <code>80</code> on the guest
In this example, we'll have a virtual guest machine running an instance of [[DokuWiki]] on port <code>80</code>. Start the VM while forwarding port <code>8080</code> on the host to port <code>80</code> on the guest


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Line 28: Line 29:
</syntaxhighlight>
</syntaxhighlight>


After the VM is successfully booted, Dokuwiki will be available on http://localhost:8080
After the VM is successfully booted, DokuWiki will be available on http://localhost:8080

Revision as of 14:14, 24 October 2023

Nixos-shell is a small helper script for spawning lightweight NixOS virtual machines in a shell.

Installation

Add following line to your system configuration to install the program

environment.systemPackages = [ pkgs.nixos-shell ];

Usage

Create a single example file containing the system configuration for the virtual machine

myvm.nix
{ pkgs, ... }: {

  services.dokuwiki.sites."localhost" = {
    enable = true;
    settings.title = "My Wiki";
  };
};

In this example, we'll have a virtual guest machine running an instance of DokuWiki on port 80. Start the VM while forwarding port 8080 on the host to port 80 on the guest

QEMU_NET_OPTS="hostfwd=tcp::8080-:80" nixos-shell myvm.nix

After the VM is successfully booted, DokuWiki will be available on http://localhost:8080