MyNixOS: Flake-centric website for Nix/NixOS configs (v. 0)

Currently when editing options of type “Nix expression”, “Package”, or “Path”, you are able to directly insert raw Nix code into the generated output. This means that you can create larger expressions here which should enable overlays + overrides as a hack for now.

I’ll see if I can get duplication of flakes done quite soon, as this is mostly implemented. Will post an update. The renaming requires a bit more thinking, however I want to solve this, ideally in a way which will also prevent breaking dependent configurations if users delete flakes.

Just posted MyNixOS version 0.1.17 with the following updates:

  • Added support for Darwin configuration and Darwin module outputs via nix-darwin
  • Added support for Home Manager use with Darwin configurations
  • Darwin configurations can import Darwin modules and Home Manager configurations
  • Darwin modules can import Darwin modules and Home Manager configurations
  • Added ability to add flake input follows + overrides to flakes. Input paths are resolved from flake lockfile to provide easy selection of input path + follow path in follow, and for input path in override. Suggested branches are added as override targets for Nixpkgs + Home Manager. Warning icon is displayed for non-resolving follows / overrides.
  • Added ability to rename flakes
  • Added support for new Nixpkgs markdown styles
  • Added support for resolving option links in parsed options
  • Added log output for lock + release actions
  • Added copyable code widgets for installation instructions
  • Updated install-loader script to allow nested or flat install

Screenshot showing flake input follows and overrides UX:

Thanks again @luxus for good inputs! Cloning of flakes is on the development plan, but I couldn’t prioritize it for this release.

Will post an update soon with a video showing how to set up a flake configuration for macOS.

Hello,

Just finished a set of video tutorials for MyNixOS:

1: Create and build a Docker image with Redis and OpenSSH running NixOS: MyNixOS / https://www.youtube.com/watch?v=3fuCGXHw7qM

2: Create a Nix development shell with Neovim and Zig and run it on Windows 11: MyNixOS / https://www.youtube.com/watch?v=F4q72mGjYXA

3: Create a reproducible macOS environment using nix-darwin and Home Manager: MyNixOS / https://www.youtube.com/watch?v=r0Y7s1sRSUY

4: Create a Linode server image using NixOS running Nginx with Let’s Encrypt: MyNixOS / https://www.youtube.com/watch?v=Cy4X0fjD0-Y

5: Create a Raspberry Pi NixOS image running Transmission and OpenSSH: MyNixOS / https://www.youtube.com/watch?v=6L0H92-JdHA

Hoping that these can be useful in demonstrating how Nix flakes can be set up for different use-cases :slight_smile:

1 Like

Hello,

Posting an update of recent updates to MyNixOS.com, as v0.1.21 is now live! :slight_smile:

Feature: New user interface

MyNixOS now has a new user interface based on the Primer UI toolkit developed by GitHub, replacing the old interface based on Bootstrap. The change includes a number of UX improvements and redesigns, including:

  • New flake selector
    The flake selector has been updated to include filtering + scrolling.
  • Vertically nested option layout
    Option layouts are now flatter and “nest" vertically to more effectively use space. This change is part of an ongoing redesign of flake outputs to make it more scalable. This design is not yet mobile optimized, which will be fixed in update v0.1.22.
  • Improved read-mode settings
    Flake outputs “read-mode” has been improved to make it easier to view flakes when not editing them.
  • Re-orderable option lists
    Lists within options can now be re-ordered by drag and drop.
  • Searchable lists for enums and time zones
    Option enums and time zones are now searchable to aid navigation.
  • Better type hints in enums
    Enum types are presented more clearly.
  • Help info for flake outputs
    Built-in info for each flake output type explaining their purpose.
  • Toggle switch for boolean
    Boolean are now toggle switches instead of radio boxes.
  • Themes
    9 themes, 5 dark and 4 light, can now be chosen from the account settings menu.

Preview of flake outputs screen showing editable options:

Feature: New search

MyNixOS now has contextual search and a new search architecture. This allows for easily searching and adding Nix packages where a Nix package type is expected, without having to navigate to separate package pages.

The search is still a local in-browser search, with the following improvements:

  • Search now follows a new Nix-tailored ranking algorithm to provide more relevant and intuitive ordering.
  • Search now supports filtering in order to enable contextual search. As in the example shown in the image below, a search within the context of a development shell with system “x86_64-linux” automatically filters the results to packages supporting this system. Additional UI support for using filters will be introduced.
  • Search now uses SharedWorker where possible, which allows tabs to reuse the same in-memory index, avoiding extra memory usage per tab. Regular workers are used as fallback on devices not supporting SharedWorker, which includes most mobile devices. Results are streamed from the worker context to reduce latency for viewing results.
  • Search now preloads the search index to reduce search response time, either through downloading or retrieving it from the local browser cache.

Preview of contextual search:

Feature: Haskell + R package plugins

Large package groups such as those developed in Haskell and R often contain sparse information. MyNixOS now has two new data plugins which ensures that additional information is parsed from original package documentation files, adding data to ~14k Haskell packages and ~20k R packages.

Preview of updated package layout with external content:

Please feel free to reach out here or on Matrix if you have questions :slight_smile:

Matrix: https://matrix.to/#/#mynixos:matrix.org
Issues: GitHub - mynixos/support: MyNixOS issues + user feedback

2 Likes

Hi @pveierland , I like the new UI more than the old one. You really put lot of energy in to this project.

I created issue #1 in mynixos/support :slight_smile: .

2 Likes

Thank you @imincik for issue #1 :slight_smile: A patch release is underway which will fix the issue mentioned.

1 Like

Very cool project! I’m just getting started setting up nix-darwin and this looks like it will be quite helpful. I hope you’re able to open up the source at some point, it would be a shame if such a cool project would disappear if you were no longer able to work on it for any reason.

1 Like