In this series of tutorials, I will not cover nix or NixOs. You can probably find many tutorials with detailed descriptions of the advantages of using nix declarative, functional configuration management language.

I will tackle a specific problem I was trying to solve, and as a result, I can share and expand on potential options available.

Some time back, I was looking to reinstall my nixos “that I was running for the past four years” with a new nix feature like a flake and make it more flexible from a storage management standpoint “using LVM” and to secure with full…


My team used the Vscode Remote SSH plugin to develop applications from Local laptops and remote Google Cloud VM running on NixOS.

Development laptops that the team was using were limited in resources.
From the beginning, we decided to use remote development on NixOs as it allowed us to manage consistency in package management and manage dependency for python and node.js projects. NixOS is based on nix functional programming configuration language where everything is declarative. All our NixOs configuration was in the git repository.
A good source of the documentation Remote Development using SSH and Remote Development Tips and Tricks

Problem to be solved

In previous e articles, we described how we deploy native flake NixOs as a development environment and Home Manager to manage user’s specific packages, configurations, and services.


All developers in the project are running as primary Dev environment NixOs VM on Google Cloud. Our development team is divided into two streams.

  • Infrastructure/Cloud provisioning and configuration development
  • Application development

The problem we try to solve

Only Infra/Cloud Dev team has access to the root “wheel.” Still, because we selected to run our development environment on the NixOS application, development team members can install any application or service for their account without the need for root privileges.


I am using NixOs as a Development environment that is running on Google Cloud VM.
NixOs official Web site does not provide an official GCP image.
On the NixOs Wiki page you can find an article how you can build your GCP NixOs Image that didn’t work well in the past but now seems all build image issue was resolved and now works well.
NixOS Wiki page article also provides two GCP storage that you can find outdated GCP VM images that seem not actively maintained anymore.

nixos-images > gs://nixos-images
nixos-cloud-images > gs://nixos-images

In the below HowTo, we will cover…

In the 1st article, we covered in detail NixOs native flake deployment

Once you have your system up and running in a purely declarative way next step, it to manage your personal configuration files located in $HOME /home folder. NixOs do not have any native implementation to manage user’s $HOME configuration folders and files. Few projects stepped in to help and manage users specific environments, and the most successful one in Home Manager

From the Home Manager site;
“This project provides a basic system for managing a user environment using the Nix package manager together with the Nix libraries found in…


For the past few years, I am using NixOs, as my primary OS, and all configuration files of the NixOs is located in /etc/nixos folder. I needed to find a way to manage configuration files in /etc folder, and few options is available to manage and source control config files not owned by the user.

One option to create a separate git repository and, on every change, copy/paste modified files into the configuration repository in the user’s home folder. This solution is troublesome at best as you need to perform few steps to source control the system files.

Another option…

Following on my previous article Run your own Video Conference Service with Jitsi I started looking for a reliable solution to monitor my instance that runs Jitsi. I needed basic information on RAM, CPU, Disk, Networking, and I/O to assess the performance bottleneck for the serve

I was familiar with the tools I used in the past, like Cacti, Nagios, and Zabbix. All these tools need extensive configuration, “Not sure about the current state, but in the past took me a while to set them up correctly.” …

Recently Zoom as a company is in the news daily, both in positive and negative notes. With current global lockdown, more and more PC dependent users start using Video Conferencing tools to keep interacting with the world and do their jobs from the remote location.

I am a long time Zoom user, and I used in the past many other VC tools like Skype, Google Meet, Bluejeans, MS Teams, etc. No tool is perfect. Zoom was working fine until news related to security and data privacy start to pop-up once the tool becomes popular. Zoom was standing out from the…

If you are a macOS owner and active user that spends good amount of time in the shell, you may notice OSX Shell by default is bear bone and not very productive to use on a daily bases.

Question is how we can make OSX shell more productive?

The first step is to install/deploy new terminal emulator iTerm2.

iTerm2 is a replacement for Terminal and the successor to iTerm that brings multiple new features and optimizations that can make users more efficient.

iTerm2 we can download from the official Web Site.

iTerm2 provides with a vast list of features like…

Part 1: Basic ArchLinux Installation

Part 2: X Window System and I3 Installation

Part 3: I3 Configuration and Operation

In the last two posts, we cover base Arch Linux installation on bare bone hardware and X Window Server installation and basic configuration.

In this post, we will cover the i3 Window Manager Configuration and also, we will cover some configuration for the ranger file manager.

What is an i3 ? is a tiling window manager. I3 is one of the fastest and customizable window managers that focuses primarily on efficiency and productivity. I3 provides very different user experience compared to…

Ion Mudreac

Leading Dev and DevOps/SRE teams

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store