Hi, I’m Pras

DevOps and platform engineer. I write about homelab, Kubernetes, storage, networking and the troubleshooting along the way.

Day 2 with my custom build NAS server for the homelab

Symptom A scheduled Proxmox Backup Server job had been running against one of my LXC containers every night since 2026-09-27. Every run reported TASK OK. The run on 2026-10-01 was incremental and reused 98.9% of the previous backup, which read as healthy. Line 7 of that same task log said something else: INFO: excluding bind mount point mp0 ('/mnt/immich-data') from backup (not a volume)I didn’t catch that line myself. Claude, who I was working through this with, is the one who flagged it. I wasn’t reading the log line by line looking for it. I’m OK with that: Claude catching the backup gap doesn’t bother me. ...

Hugo New Theme

This is the Hugo code I use to generate the HTML files of my blog. A DevOps/SysAdmin blog about web and network technology stacks, also provides tutorials and original writing of the author. This blog also covers exciting news in science and technology. Powered by Hugo is a general-purpose website framework. Technically speaking, Hugo is a static site generator. Unlike systems that dynamically build a page with each visitor request, Hugo builds pages when you create or update your content. Since websites are viewed far more often than they are edited, Hugo is designed to provide an optimal viewing experience for your website’s end users and an ideal writing experience for website authors. ...

Upgrading Self Hosted Stalwart Mail Experience

Steps Get the current version of Stalwart Mail. current version: v0.8.0 Check the documentation for the latest version. upgrading documentation: https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING.md Upgrade to the next major version incrementally next major version: v0.9.x next major version: v0.10.x next major version: v0.11.x next major version: v0.12.x Fix issues that arise during the upgrade process. issue: failed to start when using v0.11.0 root causes: https://github.com/stalwartlabs/stalwart/issues/1057 https://github.com/stalwartlabs/stalwart/issues/1104 resolution: use v0.11.3 when upgrading from v0.10 to v0.11 issue: cannot login to web admin after upgrading it to latest version when using the old version of stalwart mail root causes: https://www.reddit.com/r/stalwartlabs/comments/1ikfz8u/error_trying_to_log_in_admin/ resolution: finish the upgrade to the latest version v0.12.4 Export and backup the data before upgrading. export and backup data using stalwart mail CLI command backup the database data using the database management tool Get the current version of Stalwart Mail Check the docker-compose file to get the current version of Stalwart Mail. ...

Create Kubernetes Cluster in Proxmox Using Talos

Introduction Talos is a container optimized Linux distro; a reimagining of Linux for distributed systems such as Kubernetes. Designed to be as minimal as possible while still maintaining practicality. Installation Regardless of where you run Talos, the steps to create a Kubernetes cluster are: boot machines off the Talos Linux image define the endpoint for the Kubernetes API and generate your machine configurations configure Talos Linux by applying machine configurations to the machines configure talosctl bootstrap Kubernetes Pre-requisites talosctl is a CLI tool which interfaces with the Talos API. Talos Linux has no SSH access: talosctl is the tool you use to interact with the operating system on the machines. ...

Upgrade OpenStack Mitaka to OpenStack Newton using RDO

My OpenStack development environment is build using RDO’s packstack utility and consists of three nodes: one controller, network, and compute node, and two compute nodes. RDO website offers two scenario for upgrading OpenStack Mitaka to OpenStack Newton. The first scenario involves taking down all of the OpenStack services at once and will not bring them back up until the upgrade process is completed. The second scenario upgrades each OpenStack service one by one to avoid downtime by performing rolling upgrades of the compute hosts, taking advantage of the fact that nova-compute from Mitaka can communicate with a Newton control plane. ...

Using ProxySQL to Access and Manage Percona XtraDB Cluster

We will use ProxySQL as a gateway to access our Percona XtraDB Cluster. ProxySQL is a high-performance SQL proxy. ProxySQL runs as a daemon watched by a monitoring process. The process monitors the daemon and restarts it in case of a crash to minimize downtime. The daemon accepts incoming traffic from MySQL clients and forwards it to backend MySQL servers. Installing ProxySQL Node configuration Node Host IP Node 1 db1 192.168.50.31 Node 2 db2 192.168.50.32 Node 3 db3 192.168.50.33 Node 4 proxysql 192.168.50.34 Prerequisites Install CentOS 7 ...

Build Percona XtraDB Cluster using Ansible

Percona XtraDB Cluster is a database clustering solution for MySQL. It ensures high availability, prevents downtime and data loss, and provides linear scalability for a growing environment. Here we will try to install Percona XtraDB Cluster on a three nodes cluster configuration with the help from Ansible configuration management. Installing Percona XtraDB Cluster on Red Hat Enterprise Linux and CentOS 7 Node configuration Node Host IP Node 1 db1 192.168.50.31 Node 2 db2 192.168.50.32 Node 3 db3 192.168.50.33 Prerequisites Install CentOS 7 Update CentOS 7 Open firewall for TCP ports 3306, 4444, 4567, 4568: ansible -i hosts -bkKv db-cluster -m firewalld -a 'port=3306/tcp permanent=true state=enabled immediate=yes' ansible -i hosts -bkKv db-cluster -m firewalld -a 'port=4444/tcp permanent=true state=enabled immediate=yes' ansible -i hosts -bkKv db-cluster -m firewalld -a 'port=4567/tcp permanent=true state=enabled immediate=yes' ansible -i hosts -bkKv db-cluster -m firewalld -a 'port=4568/tcp permanent=true state=enabled immediate=yes' Disable or set SELinux to Permissive, set option below in /etc/selinux/config and /etc/sysconfig/selinux: ...

Building Linux Cluster for HPC using Ansible and SLURM

What is a Linux Cluster? Linux cluster is a group of computers running Linux which is interconnected in a local network so they can communicate with each other. Linux cluster is often used in high performance computing to do complex calculation of scientific problems because they can share the calculation load across all computers in the cluster. One example of the technology used to share the calculation load to all computers in the cluster is MPI or Message Passing Interface. There are many implementations of MPI, for example OpenMPI, MPICH, and Intel MPI. ...

Pembuatan File Image CentOS 7 Untuk Instance OpenStack Liberty

Salah satu fitur OpenStack adalah elastisitasnya yang memungkinkan kita untuk membuat dan menjalankan instance dengan cepat dan mudah menggunakan image dari sistem operasi yang sudah kita buat sebelumnya. Tutorial kali ini akan memberikan salah satu cara membuat sendiri image sistem operasi CentOS 7 untuk digunakan di OpenStack Liberty. Persiapan Host Environment Host yang kita gunakan untuk membuat image adalah host dengan sistem operasi CentOS 7. Pastikan sudah terinstall virtualisasi KVM/libvirtd dan tools yang diperlukan ...

Instalasi Virtualenv, Nodeenv Dan RVM Sebagai Development Environment

Virtualenv Virtualenv adalah aplikasi untuk membuat membuat environment virtual Python terisolasi. Aplikasi ini membuat sebuah environment virtual yang mempunyai direktori instalasi sendiri, yang tidak berbagi library dengan environment Virtualenv lainnya dan dapat dikonfigurasi untuk tidak mengakses library yang diinstal secara global. Instal pip di sistem operasi masing-masing, contohnya CentOS sudo yum update -y sudo yum install -y python-pip Instal virtualenv menggunakan pip sudo pip install virtualenv Buat environment virtual Python menggunakan virtualenv ...