Posts

My Home Network Setup

Image
It’s been 3 long years since I published anything to this blog …. 😳 The not so pretty setup ! In this article I’m gonna write about my home network setup. It’s important to note that the decisions and components used here were subjective to, Reuse of components from the previous setup What I could source conveniently without breaking the bank My technology preferences Before I start rambling about the technicalities, let’s highlight what I needed the setup to do. The basics like an internet connection, Wi-Fi for the mobile devices, Good connectivity throughout the house. Then the not so obvious need to run a lightweight web server, file server, different surveillance cameras, NVR system, IoT devices, home automation system, remote access for surveillance monitoring and lightweight administration. Let’s list them all. Reliable internet connections with enough juice Mesh capable WiFi solution  Ability to have multiple isolated networks  Easily extensible for future use cases Shareable w

Nextcloud and PHP8

Image
  PHP8 broke my Nextcloud instance !!! I run a Nextcloud instance on a self hosted Arch  linux server. Arch linux because I like the challenge 😁. Nextcloud due to privacy reasons. Recently Arch upgraded all php packages to php8 . Nextcloud 20.x, the version I'm using currently can't work on php8 thus my instance went offline. In this article I'm gonna describe how I managed to fix this issue. I run timeshift in my server via the cli. So I could have downgraded the php version. That would mean I would have to refrain from updating php and risk zero day vulnerabilities. That would nullify the whole purpose of running a self hosted Nextcloud instance for my sensitive data. Instead I went with dual php versions. I run php-fpm with Apache in my server so now I have to figure out how to run Fast CGI process manager with 2 php versions in the same Apache server. If you are thinking "well you are a SDE and you should know it", let me start by saying I neither use PHP

Minimalist Static Website

Image
 I wanted to build a minimalistic static website as the root of my domain. I have designed and built countless web applications using modern frameworks but nothing this simple. I wanted to use the least amount of tooling and keep things as simple as they can be. What I wanted to achieve was, A simple website as the root of my domain.  Needs to be mobile first and fully responsive. Modern design. Should work reasonably well with at least 80% of current web browser versions (caniuse) This needs to load as fast as it can without any bloat. The purpose of this root website is to direct the users into my various projects and articles. This will be hosted on my home server. So every byte, every style, every transformation counts. My first approach was to find a boilerplate. I was not able to find anything to my liking so I decided to start from scratch. What I used, Module bundler loader: webpack JS compiler: Babel CSS preprocessor: Dart Sass Design / UX : Material Design The code I'm di

Arch Install Desktop vs Server Differences

Image
  In my day to day life I use 4 devices running Arch Linux .  XPS13 laptop Ryzen 7 3700X on a B550 itx system Ryzen 3 3100 on a A520 as my home server Xeon E3-1260L on a LGA 1155 running Next Cloud and a web server In this post I will outline the differences in my Arch Linux install among these devices. Before proceeding I should point out that using a rolling release on a server environment poses additional challenges that generally cannot be justified for production systems. The first step is to boot using an Arch Linux USB. Then I generally start by creating a 260MB EFI partition using fdisk. The boot partition needs to be formatted as a Fat 32 partition.  mkfs.fat -F32 /dev/sda1 The rest of the partitions are going to be on LVM . First step is to create a partition in the remainder of the disk and choose LVM as the partition type. Once done I would create the physical volume and a volume group. pvcreate /dev/sda2 vgcreate vgmain /dev/sda2 Now I would create the root partition in t

How I used Udev with systemd to configure an AIO water cooler in Linux

Image
 Let me start by telling a little bit of the back story. Recently I build a mini ITX desktop PC to help me with my more resource intensive programming work. I used a all in one liquid cooler in this PC. ( Kraken X63 ). Setting something like this in Windows is quite straight forward, not so much in Linux. In this article I will detail what I did to get it working the way I wanted.  First problem to solve was to find a driver/controller software for the cooler, that works in Linux. These coolers come with only windows driver/controller software with no official Linux support. Thanks to the awesome open source community there is a cross platform tool that I can use to talk to the API of the liquid cooler which is called liquidctl . To be more specific I had to use an experimental branch of this tool that supported the API version of my hardware.  Installation is quite straight forward. My preferred Linux distro is Arch . I used an already ported AUR repository of the mainline and switch

Nextcloud on Arch Linux (Encrypted System) [Part 01 - Preparation]

Image
 In this series of posts I'm going to outline the process I used to create my own Nextcloud server.  Network Setup First step is to prepare my network. I'm planning to host this at home. Due to obvious security concerns I don't want to host this on my home network. I used pfSense  to achieve what I want. The pfSense setup is outside the scope of this post. If you do need help or is curious about setting up pfSense let me know. Given below is an overview diagram of my network,  The basic firewall rules in this network are Server can't talk to the switch.  Server can't talk to the pfSense router interface Server interface has Suricata IDS/IPS running.  Drive Preparation and Encryption Secure erase the drive.  Note: The drive I used was an old HDD. What I didn't notice was that the partition table was of type DOS. Had to change that to GPT and repeat this process in order for it to work. I'm going to use a 250GB HDD for my instalation (not a SSD). First step

Arch Linux install on XP3 13 9300 (Dual boot with Windows 10)

Image
 In this article I will detail the steps I followed to install Arch Linux in my XPS 13 9300. It came with windows 10 preinstalled.  My main references during the process was, installation_guide [Arch Wiki] Dell_XPS_13_(9300) [Arch Wiki] Prerequisites The first step is to change the SATA mode from "RAID" to "AHCI". Without doing this the linux installation can't identify the nvme drive on the laptop. This involves going through a few steps.  Boot into windows and run the following commands Open a command promt with admin rights bcdedit /set {current} safeboot minimal Restart into bios and change the SATA mode to AHCI Boot back to windows and open an admin command prompt bcdedit /deletevalue {current} safeboot When I run  bcdedit /enum it doesn't show "safeboot" any more.  Next I disabled fast startup on windows. I'm doing this as I may choose to mount windows partitions when I'm on linux, and fast startup setting is known to cause issues. I