Daily Shaarli

All links of one day in a single page.

January 26, 2025

Clan Documentation - Build Your Own Darknet

Build Your Own Darknet

Discover the simplest way to re-enter independent computing with our framework. Placing control directly at your fingertips.

ClanNix

Intro - microvm.nix

microvm.nix is a Flake to run lightweight NixOS virtual machines on NixOS. Starting with the reasons why for the remainder of this chapter, this handbook guides you through the provisioning of MicroVMs on your NixOS machine.
Compartmentalization

NixOS makes running services a breeze. Being able to quickly rollback configuration is a life-saver. Not so much however on systems that are shared by multiple services where maintenance of one affects others.

Increase stability by partitioning services into virtual NixOS systems that can be updated individually.

microvm.nix can isolate your /nix/store into exactly what is required for the guest's NixOS: the root filesystem is a read-only erofs/squashfs file-systems that include only the binaries of your configuration. Of course, that holds only true until you mount the host's /nix/store as a share for faster build times, or mount the store with a writable overlay for Nix builds inside the VM.
The Case Against Containers

Linux containers are not a single technology but a plethora of kernel features that serve to isolate various system resources so that the running system appears as one. It is still one shared Linux kernel with a huge attack surface.

Virtual machines on the other hand run their own OS kernel, reducing the attack surface to the hypervisor and its device drivers. The resource usage however incurs some overhead when compared with containers, with memory allocation being especially inflexible.

microvm.nix is a tool that helps you building the guest's OS and running it in ways that are easier than writing a Dockerfile, once you know how to put a NixOS config into a flake.nix file.
Just Virtual Machines?

Full virtualization has been available for a long time with QEMU and VirtualBox. The MicroVM machine type highlights that virtualization overhead has been reduced a lot by replacing emulated devices with virtio interfaces that have been optimized for this environment.

This Flake offers you to run your MicroVMs not only on QEMU but with other Hypervisors that have been explicitly authored for virtio. Some of them are written in Rust, a programming language that is renowned for being safer than C.

Astro microvm.nixNix

PDF Slides: NixCon 2024 - Clan - Build your own Darknet

Self-hosting services empowers you with greater control and flexibility over your data. However, maintaining such systems today often comes with significant technical challenges, including firewall/NAT configuration, data loss prevention, and security management.

The Clan project aims to lower the technical barriers of self-hosting with NixOS, making it accessible even to non-technical users. Our goal is to simplify the installation and maintenance of NixOS machines.

In this talk, we will present the new NixOS extensions we've developed to scale self-hosting, including VPN integration, backup management, secret management, a unified CLI for installation and updates, and an inventory system for managing clusters of machines.

We will also provide a sneak preview of the upcoming graphical user interface.

ClanNix

Nix/Nixpkgs/NixOS · GitHub
thumbnail
GitHub - rapenne-s/bento: A KISS deployment tool to keep your NixOS fleet (servers & workstations) up to date.
thumbnail

A KISS deployment tool to keep your NixOS fleet (servers & workstations) up to date.

This name was chosen because Bento are good, and comes with the idea of "ready to use". And it doesn't use "nix" in its name.

Use with flakes: nix shell github:rapenne-s/bento

Nix

http:///home/f4m8/Downloads/nixcon_kUiTAuY.pdf
NixCon - YouTube

NixCon is a community-oriented conference for contributors and users of Nix and NixOS. It's about sharing experiences, inspiring people and discussing future development. We would like to learn about how you use Nix and NixOS in your organization and what you are currently working on. The growth of NixOS as a project brings its own challenges and we would like to know how you think the user experience can be improved and how NixOS can be scaled.

YouTubeNix

A Neovim configuration system for nix - nixvim docs

NixVim - A Neovim configuration system for nix

NeovimNix

Nix community projects · GitHub
thumbnail

A project incubator that works in parallel of the @NixOS org

Nix community projects

GitHub - Awesome Nix: 😎 A curated list of the best resources in the Nix community [maintainer=@cyntheticfox]
thumbnail

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible.

  • Resources
    • Learning
    • Discovery
  • Installation Media
  • Channel History
  • Deployment Tools
  • Virtualisation
  • Command-Line Tools
  • Development
  • DevOps
  • Programming Languages
    • Arduino
    • Clojure
    • Crystal
    • Elm
    • Gleam
    • Haskell
    • Haxe
    • Lean
    • Node.js
    • OCaml
    • PHP
    • PureScript
    • Python
    • Ruby
    • Rust
    • Scala
    • Zig
  • NixOS Modules
  • NixOS Configuration Editors
  • Overlays
  • Distributions
  • Community

Nix