Giter Site home page Giter Site logo

9front-in-a-box's Introduction

9front-in-a-box

This repo provides a nix flake for automating the setup and running of 9front virtual machines. Virtual machines are run using qemu and connecting to them is done with drawterm.

These are made as a sort of demo, to reduce the friction for trying out the system without needing to futz with qemu and configuration. They are not (really) intended to be used generally for running 9front servers, but may serve as a good starting point for those interested in doing so.

Setup

The vms are configured in a way where a read only "parent" qcow2 is kept in the nix store and used as the backing file for the writable COW image. As such a first time setup needs to be run to create this new writable qcow2 image first.

nix run github:majiru/9front-in-a-box#setup-vm

Will download the source qcow2, configure it and place a 9front.amd64.qcow2 in to the current directory. Because the parent is read only and kept around, if for some reason you have imploded your disk you may rerun the setup without needing to redownload and configure the parent qcow2.

Running

nix run github:majiru/9front-in-a-box#run-vm

Will then start the new virtual machine and run drawterm to connect to it. The password for glenda is 'password'.

Instructions for using rio for first timers may be found in the 9front FQA.

Tunables

This flake also provides scripts for using cwfs instead of hjfs and also is capable of running the arm64 virtual machines of 9front as well.

These different configurations are exposed via different packages, the convention is setup-vm-$FS-$ARCH and run-vm-$FS-$ARCH. So to run a cwfs arm64 install you may use run-vm-cwfs-arm64.

Drawterm

Drawterm is the graphical program used to connect to the virtual machine. This flake will use a copy of drawterm from nixpkgs that is built for X11 and pulseaudio. Nixpkgs also contains a drawterm build (drawterm-wayland) for wayland and pipewire. The drawterm binary used by run-vm may be changed by passing a -dt flag.

 # Use the wayland drawterm
 nix-shell -p drawterm-wayland
 # or with nix shell
 nix shell 'nixpkgs#drawterm-wayland'

 nix run 'github:majiru/9front-in-a-box#run-vm' -- -dt drawterm

9front-in-a-box's People

Contributors

majiru avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.