nixos-installer
A webserver that can install NixOS for you.
Running it
The project is not ready for real use yet, but if you'd like to jump in and help, here's how:
nix-shell --pure --run ./run
Contributing
Since this is still mostly in the proof-of-concept stage, I can't promise that PRs will be promptly merged or stay mergable for long since there's still heavy refactoring going on, and nothing is set in stone yet.
However there are some things that I'd highly appreciate:
- Additional translations (untranslated strings default to English).
- Artwork to make the install steps look less sterile.
- Additional Overlays for
configuration.nix
to support some use-case you have. - Ideas and/or hardware for running multiple test scenarios.
- Donations in the form of T-Shirts ;)
I'll try to keep a log of what's going on,
and you're free to contact me via IRC (#nixos-installer
on freenode)
or on Keybase.
Philosophy
- Use software to detect a problem, and tell users only when there is a problem. An error reporting system may be a manual that appears on demand.
- Make sure that all settings are needed. Eliminate unnecessary settings.
- Less configuration up front, simplify the installer. Move as much configuration to the runtime as possible.
- Avoid doing things in the installer that also have an UI during run time.
- Don’t force the user to reenter values that have already been entered.
- Users should be able to test settings immediately to avoid problems later.
- All input and output is defined and controlled by the installer. Don’t depend on external configuration.
- Keep the number of modes to a minimum, default new installations to a single mode.
- Require only the bare minimum to run. Provide additional configuration after installation.
- Don’t ask the user to do something that can easily be automated.
- Make use of provided settings across the whole system to avoid duplication.
- Provide links to further documentation for external technology.
- All settings should have a test if possible. A manual test while configuring the value, and for critical values a test when the system starts.
- Make manuals consistent with installation process.
- Don’t use the manual to fix poorly implemented software. Fix the software first.