Self Hosted Kubernetes

Over the years I have dabbled with Kubernetes on-and-off a bit, and mostly learned theoretical stuff surrounding it. I also managed and deployed few of the EKS based clusters on AWS at work, so I know certain operational things as well. To be honest, I haven’t really done any “cool and amazing” things with it. Those were mostly bare Amazon EKS setups, no ArgoCD or something fancy like that. Fanciest things I managed were Horizontal Pod Autoscaler and AWS ALB ingress controller on those clusters....

September 20, 2023 · 7 min · Ivan Tomica

Setting Up Nextcloud

After setting up Intel NUC with Debian 12 on top of it, I have decided to configure Nextcloud as my first application on this new setup. In order to have a successful setup for my needs, I have decided on the following: DNS name for accessing the installation (static DNS entry on the network + valid TLS certificate) HAProxy for terminating TLS and forwarding traffic to the Nextcloud installation Nextcloud and required services in the container Above noted requirements came from the experimentation, but I somewhat knew what I want to do with the setup, and how to make it more clean for the new services....

August 26, 2023 · 13 min · Ivan Tomica

Reboot with kexec on Ubuntu 18.04

First off, what is kexec? - It is a system call that enables you to load and boot into another kernel from currently running kernel. That effectively means; doing reboot without going through the whole POST/Firmware load process. To use kexec we can rely on systemd to handle process for us. The only work we need to do is to install kexec-tools package and adjust some configs sudo apt-get update sudo apt-get install kexec-tools Since Ubuntu usually relies on booting from grub we can tweak some settings to default to loading default grub kernel when we run kexec....

March 16, 2019 · 2 min · Ivan Tomica

Atlassian Confluence in Docker

Recently I’ve been tasked to set up Confluence server installation. One of my friends was in need and I decided it would be nice to play a bit with the whole setup. As this is pro-bono and really not quite production install (meaning they use it, but it is not so downtime critical) there was a place to experiment with it a bit thus I decided to run Confluence in a Docker....

January 29, 2019 · 2 min · Ivan Tomica

Fixing URxvt copy/paste

URxvt, or if you wish to call it rxvt-unicode, has this weird thing turned on by default where it binds ctrl+shift keys to all sorts of insanity (keycap picture insert mode and stuff like that). Dammit, I want my “normal” terminal behavior back! By “normal” I think that if I press: Ctrl + Shift + V -> paste contents of my main clipboard (from X) Ctrl + Shift + C -> copy current selection to clipboard So to restore that functionality here’s the magic thing you need in your ....

January 23, 2019 · 1 min · Ivan Tomica

Useful bash shortcuts

Moving around: CTRL + A # beginning of the current line CTRL + E # end of the current line Alt + F # one word forward Alt + B # one word back Text manipulation: CTRL + U # delete characters before cursor CTRL + K # delete characters after cursor CTRL + W # delete word before cursor Alt + D # delete word after cursor Alt + U # word after cursor to uppercase Alt + L # word after cursor to lowercase Alt + C # capitalize a word

May 20, 2018 · 1 min · Ivan Tomica

Hide other users processes on Linux

By default proc is mounted in a way that allows inspection of other users processes by any account on the system. This can be a security risk if attacker gets hold of one of the accounts on the machine as it can freely inspect processes and gather information that it perhaps shouldn’t have. In order to restrict access we can add hidepid mount option to /etc/fstab: proc /proc proc defaults,hidepid=2 0 0 To re-mount current /proc you can use:...

April 22, 2018 · 1 min · Ivan Tomica

Using File Descriptors to calculate progress in Linux

ProcFS in Linux has many useful information about process and its status. In this particular case I’ll show you how to determine progress while copying the file with cp. Same principle can be used for many other situations as well; like importing MySQL dump or whatever you comes up on your mind :-) So in this situation I am copying the ~98GB file to another directory: cp -a /input/archive.tar.gz /output/ First, let’s find PID of this process....

April 21, 2018 · 2 min · Ivan Tomica