<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hey there! on Daniil Prokofiev</title><link>https://dvprokofiev.ru/en/</link><description>Recent content in Hey there! on Daniil Prokofiev</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 25 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://dvprokofiev.ru/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Going back to NixOS</title><link>https://dvprokofiev.ru/en/posts/back_to_nix/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://dvprokofiev.ru/en/posts/back_to_nix/</guid><description>&lt;p&gt;&lt;figure class="post-figure"&gt;
&lt;img src="https://dvprokofiev.ru/images/nixos/nixos-logo.svg" alt="“NixOS Logo” by Simon Frankau, Tim Cuthbertson, and Daniel Baker (maintained by the NixOS Marketing Team), from nixos/branding, licensed under CC BY 4.0." &gt;
&lt;figcaption class="post-figcaption"&gt;
&lt;span class="caption-text"&gt;“NixOS Logo” by Simon Frankau, Tim Cuthbertson, and Daniel Baker (maintained by the NixOS Marketing Team), from nixos/branding, licensed under CC BY 4.0.&lt;/span&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h2 id="my-journey-with-nixos-and-why-i-stopped-using-it"&gt;My journey with NixOS and why I stopped using it&lt;/h2&gt;
&lt;p&gt;My journey with NixOS began at February, 2025, according to &lt;a href="https://github.com/calmbookish/nixconfig"&gt;my NixOS config repository&lt;/a&gt;. At the beginning, it was really &lt;strong&gt;pleasant&lt;/strong&gt; experience &amp;ndash; &lt;strong&gt;everything&lt;/strong&gt; can be easily configured editing just one file. Everything I configure can be easily synced across &lt;strong&gt;all&lt;/strong&gt; my devices. And I can be truly sure, that everything I configure would work.&lt;/p&gt;
&lt;p&gt;But there was one really huge problem &amp;ndash; &lt;strong&gt;software selection&lt;/strong&gt;. Sure, there are more and more software which is getting to work on NixOS, but I was always struggling with setting up C++ compiler and setting up censorship bypass utilities.&lt;/p&gt;
&lt;p&gt;Thing is, NixOS does not support &lt;strong&gt;FHS&lt;/strong&gt; &amp;ndash; File System Hierarchy Standard, so you can&amp;rsquo;t just download binary file from the Web and run. There&amp;rsquo;s 90% chance that it will &lt;strong&gt;fail running&lt;/strong&gt;. At that time, I failed to configure or just didn&amp;rsquo;t know about things like &lt;code&gt;nix-ld&lt;/code&gt; or &lt;code&gt;devshell&lt;/code&gt;, which were built to solve my issues.&lt;/p&gt;
&lt;p&gt;And so, I figured out, that I won&amp;rsquo;t waste my time anymore messing around with my configs and &lt;a href="https://calmbookish.github.io/blog/i-switched-to-fedora.html"&gt;went straight using Kubuntu&lt;/a&gt;. In that article I mainly argued about how time-consuming maintaining such config is, and that there&amp;rsquo;s no need to do such thing, because there are already distribution that have everything you need pre-configured.&lt;/p&gt;
&lt;h2 id="server-fails"&gt;Server fails&lt;/h2&gt;
&lt;p&gt;Then this happened. My VPS provider, which had my website and email running, messed up with Ubuntu 24.04 images. A faulty image update broke the virtual disks on all Ubuntu 24.04 nodes, not only mine. While, they easily found the solution, which was to connect external repair ISO and run some &lt;code&gt;fsck&lt;/code&gt; commands, this whole experience of facing my website&amp;rsquo;s and email down for a couple of days was quite frustrating.&lt;/p&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
&lt;img src="https://dvprokofiev.ru/images/nixos/dying_server.png" alt="Screenshot from VNC, server could not start because of broken file system" &gt;
&lt;figcaption class="post-figcaption"&gt;
&lt;span class="caption-text"&gt;Screenshot from VNC, server could not start because of broken file system&lt;/span&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The worst part was, that I wasn&amp;rsquo;t able to do a thing, because &lt;code&gt;ispmanager&lt;/code&gt; instance they were running was facing &amp;ldquo;natural DDoS&amp;rdquo;, when everyone were convulsively trying to repair their servers.&lt;/p&gt;
&lt;p&gt;These incident kept me thinking about my infrastructure reliability. I remembered about this thing called &lt;em&gt;NixOS&lt;/em&gt; once again.&lt;/p&gt;
&lt;h2 id="nixos-on-my-server"&gt;NixOS on my server&lt;/h2&gt;
&lt;p&gt;After that I of course switched to another VPS provider and started writing my server&amp;rsquo;s configuration in &lt;code&gt;Nix&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;That was whole more pleasant experience. I spend a lot of time writing this config, especially when setting up automated website update on &lt;code&gt;webhook&lt;/code&gt;, but when it finally worked, I was happy as shit.&lt;/p&gt;
&lt;p&gt;Because now I have fully declarative descriptions of what my server should run. It can be easily reproduced on literally every machine. If my VPS fails once again, my website and email would be up and running in minutes, because of this &lt;strong&gt;wonderful&lt;/strong&gt; thing called &lt;code&gt;nixos-anywhere&lt;/code&gt;. This script can help me automatically deploy my NixOS configuration on every Linux machine that has Internet connection and that I have SSH access to.&lt;/p&gt;
&lt;p&gt;My config utilizes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;automatic Hugo website deployment from its GitHub repository upon a content update using WebHooks&lt;/li&gt;
&lt;li&gt;mailserver with snm (simple Nix mailserver)&lt;/li&gt;
&lt;li&gt;Syncthing for file synchronization between my devices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My config can be found &lt;a href="https://github.com/dvprokofiev/dvp-nix/"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="lessons"&gt;Lessons&lt;/h2&gt;
&lt;p&gt;There are two lessons I learned from this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I should be paying more attention to my infrastructure reliability. This includes not only using NixOS, but doing backups, choosing VPS more carefully and so on&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t spend &lt;strong&gt;too much&lt;/strong&gt; time configuring feature X. Sometimes I catch myself trying to setup one simple feature for hours without getting some rest and thinking about the bigger picture. Sitting at the computer all the time is &lt;strong&gt;not healthy&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="getting-back-to-nix-webring"&gt;Getting back to Nix Webring&lt;/h2&gt;
&lt;p&gt;This blogpost was originally written to conclude my journey with Nix and get back to Nix Webring. The current entry in the Nix Webring points to my old, legacy site (calmbookish.su), which is now dead. I&amp;rsquo;m moving away from that identity, so I&amp;rsquo;m updating my entry to point here. It&amp;rsquo;s time to replace the old link with this new, &amp;lsquo;correct&amp;rsquo; one.&lt;/p&gt;</description></item></channel></rss>