5 ms·
Show HN: MyNixOS – Create and share Nix and NixOS configurations
Hello HN!
I want to show you MyNixOS.com - a website I've been working on this year to make it easy to create and share Nix and NixOS configurations. Nix is a powerful tool to deploy software in a reproducible way, and with NixOS you can control your whole operating system through a declarative configuration.
Starting out with Nix was exciting, but it definitely had a challenging learning curve. This made me start building a website focused on making it easier to create and share Nix flakes, which are the core unit of software deployment in Nix.
Using the website, you can create flakes without knowing the Nix configuration language, as the necessary Nix files are generated for you. A few examples of what you can do right now:
1: Create and build a Docker image with Redis and OpenSSH running NixOS: https://mynixos.com/mynixos/demo-docker https://mynixos.com/mynixos/demo-docker / https://www.youtube.com/watch?v=3fuCGXHw7qM https://www.youtube.com/watch?v=3fuCGXHw7qM
2: Create a Nix development shell with Neovim and Zig and run it on Windows 11: https://mynixos.com/mynixos/demo-windows-devshell https://mynixos.com/mynixos/demo-windows-devshell / https://www.youtube.com/watch?v=F4q72mGjYXA https://www.youtube.com/watch?v=F4q72mGjYXA
3: Create a reproducible macOS environment using nix-darwin and Home Manager: https://mynixos.com/mynixos/demo-macos https://mynixos.com/mynixos/demo-macos / https://www.youtube.com/watch?v=r0Y7s1sRSUY https://www.youtube.com/watch?v=r0Y7s1sRSUY
4: Create a Linode server image using NixOS running Nginx with Let's Encrypt: https://mynixos.com/mynixos/demo-linode-nginx https://mynixos.com/mynixos/demo-linode-nginx / https://www.youtube.com/watch?v=Cy4X0fjD0-Y https://www.youtube.com/watch?v=Cy4X0fjD0-Y
5: Create a Raspberry Pi NixOS image running Transmission and OpenSSH: https://mynixos.com/mynixos/demo-raspberry-transmission https://mynixos.com/mynixos/demo-raspberry-transmission / https://www.youtube.com/watch?v=6L0H92-JdHA https://www.youtube.com/watch?v=6L0H92-JdHA
The site works directly with the Nix command line tool, and generates pure Nix flakes without any custom formats. The website is currently in alpha and is developed as a closed source project. Some interesting upcoming features include support for language environments such as Python, and the ability to install arbitrary versions of packages.
By posting on HN, I'm especially looking to get in contact with early commercial users of Nix to learn more about the most important use-cases to solve. Hoping that you will find the site useful, and I'll happily try to answer any questions you might have!
- rgoulter 4y ago> A few examples of what you can do right now These examples look neat. I'm reminded of https://nix.dev/ https://nix.dev/ (which, sadly, is pre-flake). > make it easy to create and share Nix and NixOS configurations I could see a lot of value in the sharing/reading aspect of this. -- I think it'd be helpful to be able to look at different NixOS configurations without having to dig into the code directly. > The site works directly with the Nix command line tool I find this part confusing. One of the neat things about nix flakes, is that it's "like docker without containers". You can just run `nix run github:<owner>/<repo>`, and nix will be able to run the code from that flake. -- So I guess I'd expect the "copy-paste to run this" command to be similar to "nix run https://mynixos.com/<whatever> https://mynixos.com/<whatever>". But, the "Download" section in the Meta tab of the demonstrations are about using some tool that isn't nix.
- pveierland 4y agoThanks for the feedback! When released, the flakes are just tarballs which can be used with the Nix command line tool, for example nix develop https://api.mynixos.com/mynixos/demo-windows-devshell/archive/latest.tar.gz Will bring you into the development shell declared by the demo-windows-devshell flake. You can either copy the link for specific versions, or use the "Latest" reference link. These links can either be used with the Nix command line tool or as direct flake input URLs to flakes that you write outside of MyNixOS. Note that the commands shown in the "Meta" section are just shell scripts to help you install Nix, direnv, and a flake loader, which is just a convenience wrapper that you can keep in your source control if you wish.
- flurie 4y agoHow does this differ from flox[1]? It looks like you're trying to cover much of the same ground. [1] https://floxdev.com/ https://floxdev.com/
- pveierland 4y agoFlox's website was only opened up a few weeks ago, so it hasn't really factored into the development of MyNixOS. I haven't had the chance to test it yet, but I'd guess a few differences would be that Flox is targeting enterprise use with proprietary tooling + formats, with a larger focus on the command line interface, in order to guarantee the user experience to a larger degree. MyNixOS targets pure Nix flakes and the Nix command line tool, and focuses more on the website UX to lower the barrier for creating and sharing Nix flakes for beginners. As the potential for the core Nix technology is so great, many different approaches and tools will be necessary to help discover and cover the different use-cases. Flox made a good impression at NixCon in Paris, and they seem to be doing a lot of good things to make the community solid.