Hi šŸ¤—

Welcome to my website!

Easily Deploy Virtual Machines in Hetzner Cloud Using Terraform: A Step-by-Step Guide

Deploying virtual machines can be manual, boring, and repetitive, but with the right tools, it becomes a seamless process. In this article, I’ll guide you through using Terraform to deploy 5 virtual machines in Hetzner Cloud. All the infrastructure component will be defined in Terraform files and stored in Git, adhering to Infrastructure As Code (IAC) principles. All commands below are run on Ubuntu 24.04 OS, but it should be same on any other Linux distro or MacOS. ...

May 4, 2025 Ā· 8 min

Send Emails From The Terminal

Intro This article will show how to set-up a local email relay on a Linux machine with msmtp to send emails through Gmail. 2 approaches will be shown: Simple approach: msmtp and App Password. More complex approach with msmtp and mailctl that uses OAuth 2.0 instead of a password. Both of the methods will require a Google account and some patience since there will be some jumping through hoops to obtain correct credentials. ...

March 9, 2024 Ā· 4 min

Monitoring Best Practices

Introduction This article is a summary of monitoring best practices as outlined in the book ā€œPractical Monitoringā€ by Mike Julian. I did not add my thoughts and experience to it, it’s just a simple summary of core concepts from first 3 chapters of the book. The whole book is tool-agnostic and focuses on common themes that occur in different kinds of monitoring systems, so the article also tries to follow this concept. ...

November 14, 2023 Ā· 6 min

Installing Protonvpn on Gentoo Linux

Proton team does not build packages for Gentoo Linux, so we have to figure out how to install it on our own. From what I have gathered, there are 3 ways to go about it: download OpenVPN and Wireguard configuration files from the ProtonVPN UI, install GUI and CLI apps from sources or use community CLI. Configuration Files In the ProtonVPN personal settings configuration files can be downloaded both for OpenVPN and Wireguard. To find them, go to: ...

September 24, 2023 Ā· 2 min

Automating Flutter/Firebase APK build with Github Actions

This blog post will cover a way to publish APK files with GitHub Actions for Flutter mobile app with Firebase backend. Workflow example. GitHub Repository Secrets Flutter/Firebase apps have 3 files that hold sensitive information: services.json - Google Cloud credentials in JSON format, this is used by Firebase keystore.jks - Key used to sign the app key.properties - Key properties, such as key password, alias and it’s location All of the above will be encoded (not encrypted!) in BASE64 and save in GitHub Actions secrets. It must be encrypted for consistency, for example services.json contains a log of tabs and whitespaces that might be incorrectly stored in secrets. ...

September 2, 2023 Ā· 3 min

Final GSoC Report

Project Goals Main goal of the project was to write an app that will automatically handle updates on Gentoo Linux systems and send notifications with update summaries. More specifically, I wanted to: Simplify the update process for beginners, offering a safer and more intuitive method. Minimize time experienced users expend on routine update tasks, decreasing their workload. Ensure systems remain secure and regularly updated with minimal manual intervention. Keep users informed of the updates and changes. Improve the overall Gentoo Linux user experience. Progress Here is a summary of what was done every week with links to my blog posts. ...

August 27, 2023 Ā· 5 min

gentoo_update User Guide

Introduction This article will go through the basic usage of gentoo_update CLI tool and the mobile app. But before that, here is a demo of this project: āš ļø CLI was rewritten in version 0.2.2 and the video is slightly outdated Commands in this article were updated to the new CLI standard Video will be updated soon 😼 ...

August 26, 2023 Ā· 4 min

GSoC 2023: Weeks 11 and 12

This article is a summary of all the changes made on Automated Gentoo System Updater project during weeks 11 and 12 of GSoC. Project is hosted on GitHub ( gentoo_update and mobile app), blog post can be also found on Gentoo Blogs. Progress on Weeks 11 and 12 During last 2 weeks I’ve completed app UI and Firebase backend. Most of the work is done! I’m not entirely pleased with how the backend works. In Firebase, I ended up using: ...

August 18, 2023 Ā· 3 min

GSoC 2023: Week 10

This article is a summary of all the changes made on Automated Gentoo System Updater project during week 10 of GSoC. Project is hosted on GitHub ( gentoo_update and mobile app), blog post can be also found on Gentoo Blogs. Progress on Week 10 I have finalized app architecture, here are the details: The app’s main functionality is to receive notification from the push server. For each user, it will create a unique API token after authentication (there is an Anonymous option). This token will be used by gentoo_update to send the encrypted report to the mobile device using a push server endpoint. Update reports will be kept only on the mobile device, ensuring privacy. ...

August 6, 2023 Ā· 2 min

GSoC 2023: Week 9

This article is a summary of all the changes made on Automated Gentoo System Updater project during week 9 of GSoC. Project is hosted on GitHub, blog post can be also found on Gentoo Blogs Progress on Week 9 This week, much of my time was devoted to improving Dart and Flutter skills, preparing to develop the mobile app and researching app architecture. I have made some gentoo_update code improvements as well: Parse update log into dataclass instead of a dictionary. Remove y/n option for CLI flags, now if the flag is present it automatically means y Read multiple mount point disk usage stats, instead of just / Simplify package info parsing by replacing complex regular expressions with string splitting Challenges It was very challenging to create a suitable app architecture, and this task is still not 100% complete. ...

July 30, 2023 Ā· 3 min