Welcome

This site is automatically generated from a selection of my Joplin Notes using a Python script that can be found on my Gitea instance. The pages here are a living document of guides, tools and configurations that I use and expand on as my knowledge and workflows change. The majority of notes here are focused on SysAdmin, Self-Hosting, and IT systems, and their configuration and automation workflows.

If you have any comments, questions or are looking to hire a new IT Manager, you can contact me at: blog@zinchuk.xyz

~Yuriy

Quick Links


Last updated on September 01, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Resume

Summary

10 years working in a variety of technology related positions; including research, budgeting, purchasing, implementation of new technology services, complete IT infrastructure overhaul,software development, and assisting staff with their day to day IT needs.

Git Links

Technologies Worked With

  • Python, Autohotkey, Powershell, Bash, Excel VBA, Selenium
  • Ubuntu, Arch Linux, pfsense, TrueNAS, Ubiquiti Unifi
  • Windows Server, Windows 2000, Windows XP, Windows 10/11, Office365
  • Proxmox, VMWare, Hyper-V
  • Git Version Control, Docker, NGINX
  • Zabbix, Prometheus, Grafana

Professional Achievements

  • Completed Full IT Infrastructure Modernization & Overhaul for Paper Manufacturing Plant
    • Led the comprehensive overhaul and upgrade of the organization’s entire IT infrastructure, including servers, switches and workstations, transitioning from ~12 year old legacy equipment
    • Set up and Managed a 6-Node Proxmox Cluster with ~50 virtual machines running a mix of Windows and Linux-based systems, connected to ~20 VLANs
    • Migrated Existing Legacy Infrastructure of Physical and Virtual (Hyper-V 2008/2012 and VMware ESXi 5/6), Windows 2000, 2003, XP, and Windows 7 systems to Proxmox
    • Replaced undocumented flat network infrastructure with a VLAN-segregated architecture across entire site
    • Set up Device Monitoring and Alerting for all Networked IT Equipment using Zabbix
    • Documented the entire IT infrastructure from the ground up and successfully handed it over to the incoming IT Manager

Work History

Freelance Programmer

May 2024 - Present

  • Working as part of a small self-managed team writing web automation software utilizing Git, Selenium, Autohotkey, Python, Powershell and modern AI tools.

IT Manager @ REDACTED (Paper Mill Manufacturing Plant)

2022 - May 2024

  • Researched, Purchased and Setup servers, switches, workstations, virtual machines, and VOIP system
  • Setup and Managed multi-node Proxmox Hypervisor Cluster, Proxmox Backup Server systems, and interconnecting 10Gb VLAN’d networking
  • Managed Firewalls and Security rules for multiple segregated networks on the production floor
  • Wrote Automation software in multiple scripting languages to automate IT processes and Production Floor workflows
  • Provided on-call tech support to Business and Production Floor Teams

IT Manager @ REDACTED (Manufacturing + Retail Store Chain)

2021 - 2022

  • Managed IT Infrastructure for 5 retail locations and 1 Manufacturing Plant
  • Migrated entire infrastructure from Windows 7 to Windows 10
  • Migrated company from Windows Server 2008 to Fedora Linux
  • Wrote Automation Software to streamline POS processes
  • Migrated company to modern ERP and website system, saving company ~$100K/year in legacy licensing costs

Multiple Positions @ REDACTED (Non-Profit)

2013 - 2021

  • Managed employee interviewing, hiring, training, scheduling and day to day management,
  • Managed Accounts Payable + Monthly reconciliation of accounts through the use of Sage Business Accounting Software
  • Created and Managed an automated online time card system for out of office employees using Excel VBA + Google Sheets
  • Managed Company Website, Social Media Pages, and monthly email/facebook newsletters
  • Migrated Company Website to to new Management Framework
  • Automated Inventory Ordering Processes using Autohotkey, Selenium and Excel VBA
  • Assisted IT Manager with setting up workstations, printer configurations, and handling help desk tickets

Last updated on August 27, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

  1. Dell Wyse 5070 as Proxmox Node
  2. Home Automation with Zigbee and Node Red
  3. Homelab Topology Map
  4. Installing LineageOS on Google Pixel Tablet
  5. MeshCentral - Free, Open Source RDM
  6. Resume
  7. The Cost of Running a Home Lab
  8. Welcome

Dell Wyse 5070 as Proxmox Node

I got one of these little thin clients on ebay last year to use as a low power home media PC, but with the low specs it would struggle to play 1080p vidoes on Youtube/Plex/Jellyfin, and even at 720p would drop frames on a regular basis. I installed Proxmox on it to see how well it would handle being a hypervisor and it performs quite nicely for VMs that don’t need much resources. I set the Adguard Home and a couple other smaller virtual machines to Boot Linux into CLI by Default and it’s been chugging along for the last year or so without any issues.

Hardware

e61defae7d2197481ea103b509dc4fe1.png

General

  • Costs ~$60 on Ebay + $20 for a M.2 SSD
  • 4 Core J4105 CPU @ 1.5Ghz
  • Passively Cooled, No fan at all
  • Supports up to 16GB RAM (2x8GB DDR4-2400)
  • Supports 1xSATA M.2 SSD Drive as storage
  • Runs at ~10 Watts
  • Client can be configured to “Power On” on Power Restore through BIOS Options
    • BIOS Password: Fireport
    • 9d7556f5900fddc448dbe1c907b9af74.png

Pictures

a0ccdcf3e38bbda9910575ae7e7939c4.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Home Automation with Zigbee and Node Red

There’s something incredibly futuristic feeling about opening your front door and having the lights turn on automatically, or walking out of the house and all the lights in the house turn off behind you. It reminds me of the science fiction books that i used to read as a kid that would talk about automatic houses that would do your chores for you and turn on/off as you walked into different rooms. Sadly there are no robots that will make my bed, unload the dishes from the dishwasher, or fold my laundry like in those science fiction books, so for now i have to be content with just automated lights and sensors.

Setup

My Home Automation deployment has gone through a couple iterations over the last 5-6 years. I originally started out with a Raspberry Pi 3B running Home Assistant OS with the Phoscon Conbee II ZigBee USB Gateway plugged into the USB port, with the Deconz and NodeRed addons installed. As my homelab grew and I setup a home server and started playing around with virtualization I decided to virtualize and migrate Home Assistant to a Docker container within my physical Unraid Server. That worked without issue as well for a couple of years until I virtualized my Unraid Server a few months back and brought my configuration to what it is now.

My current setup looks like this: My Phoscon Conbee II ZigBee USB is plugged into one of my Proxmox nodes and the USB device is passed through to my Unraid virtual machine. The USB device then gets passed through again to the deCONZ docker container which exposes an API for NodeRed and Home Assistant to connect to for device triggers/controls.

HomeAutomationDiagram.drawio.svg

HomeAutomationDiagram.drawio

Automation Ideas

Some of my favorite automations:

Turn All Lights off When Leaving House

  • Trigger: When Front Door Opened > Delay 15 Minutes > Ping Phone IP Address > If Ping is greater than 1000 (Node Red Ping Failed) > Turn All Lights Off

2024-07-09_00-06.png

Dimming Lights in the Evening

  • I have dimable + temperature adjustable zigbee bulbs and in the evening i have them automatically dim / change to a warmer temperature to help with maintaining a natural circadian rhythm. 59888a3b601f57ebb3097ee05bab9239.png

Fingerbot for Pressing Physical Buttons

I bought one of these Zigbee Fingerbots Amazon Link a few months to control my AC Unit. It stores an internal ON/OFF variable within itself which makes it easy to check the status of my AC Unit and toggle it on/off based on that.

  • Add Picture of node flow

NTFY Notifications

  • Setup Directions: https://docs.ntfy.sh/examples/#node-red

Last updated on August 27, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Homelab Topology Map

I’m a huge fan of self hosting. I love having full control of my data, privacy, and not being at the mercy of large provider’s whims/mistakes for my account and data’s continued existance.

Over the last 5 years I’ve slowly grown my home lab environment to host almost 2 dozen services that I use on a regular basis as a replacement for mainstream, often privacy invading services like Gmail, Google Photos, OneDrive, Spotify, Netflix and a handful of others.

All the services below are running as docker compose containers on Linux Based VMs, within a 3 node Proxmox Cluster, with the majority of services routed through NGINX Proxy Manager reverse proxy for SSL Certificates + Encryption. The services that I regularly use while i’m out and about are whitelisted to be reachable through WAN and everything else is LAN only, but reachable through a Wireguard VPN tunnel if needed.

Network Topology Map:

SelfHostedServicesTopologyMap.drawio.svg (Might take a few seconds to load depending on your connection speed) Draw.io File:SelfHostedServicesTopologyMap.drawio

Hardware

The Cost of Running a Home Lab#equipment

Services

ServiceDescription
pfSenseFirewall
WireguardVPN Tunnel
Adguard HomeDNS Level Adblocker + Internal DNS Resolver
Adguard Home SyncSynchronizes Adguard Home instances’ configurations
NGINX Proxy ManagerReverse Proxy + SSL Encryption for Services
ntfy.shPush notification service
HeimdallWeb Dashboard for quick links
RadicaleCalDAV/CardDAV server
Node-Redflow editor for home automation
DeconzZigbee Controller for Home Automation
SyncthingContinuous File Synchronization
urBackupOpen Source Client/Server Backup Service
Paperless-NGXDocument Management System
Proxmox Backup ServerDeduplicating Proxmox VM Backups
File BrowserGraphical File Browser for NAS
AudiobookshelfAudiobook & Podcast Server
JellyfinMedia Server
PlexMedia Server
NavidromeMusic Streaming Server
KavitaEbook Server
ImmichSelf Hosted Google Photos Alternative

To Do List

  • Migrate from NGINX Proxy Manager to Caddy for Automatic SSL setup for new Docker services
  • Setup Unifi + Prometheus + Unifi Poller for Visual Monitoring
  • setup Crowdsec for crowd sourced host blacklisting

Last updated on August 27, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Installing LineageOS on Google Pixel Tablet

The Google Pixel Tablet has to be one of the best tablets that i’ve owned to date. It is the best option out there if you’re looking for an inexpensive yet high quality 11“ tablet with official LineageOS support, fingerprint scanner, and great looking screen.

The other options in the market:

  • Apple iPad: Running iPad OS, completely locked down and is a walled garden. No go for me
  • Samsung Galaxy Tab: Limited Custom ROM support, and custom ROMs are usually unofficial from random people and hard to trust. I’ve owned the Galaxy Tab s4 (No LineageOS support at all), and Tab S6 Lite (ONE LineageOS based ROM from a community member, no fingerprint scanner, subpar screen)
  • Generic Chinese Android Tablets: Limited custom ROM support if any, and the default system is most likely sending analytics about all your usage off to China

Unlocking the Bootloader

  • The LineageOS device directions do a great job of giving the step by step directions for the unlocking process
  • I usually do the adb process while booted into my Linux system. I’ve had much less issues with that than through Windows, which will sometimes recognize a device while the device is booted, but will not see it when it’s in fastboot or recovery mode
    • To install ADB on Arch Linux: sudo pacman -S android-tools

Flashing LineageOS with MicroG

  • Builds: https://download.lineage.microg.org/tangorpro/
    • Download all the files for the build date that you’re going to be installing, they will all be used as part of the flashing process 6bfaca4d61746ff7fb1a5df5bd71a003.png
  • Flash the LineageOS recovery and ROM step by step Instructions
  • After flashing, select Reboot Device to boot into LineageOS

Rooting with Magisk

  • Download the latest magisk.apk file from GitHub
  • Rename magisk.apk to magisk.zip
  • Boot into LineageOS Recovery on the Pixel Tab using: adb reboot recovery
  • Navigate down to Advanced Options > Enable ADP to enable ADB within LOS Recovery, then go back to the main screen
  • Select Install Update option and then push the magisk.zip file through adb using adb sideload magisk.zip
  • Magisk will automatically patch your boot image and install the magisk manager app on the device. Once the patching peocess is complete, reboot your device and open up the Magisk app. You should see the Magisk version number on the main screen. fb93135f7ebd3c2cfa0714a3d4a3a02f.png

Last updated on August 26, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

MeshCentral - Free, Open Source RDM

I discovered MeshCentral (a free open source Remote Device Management software) about a year and a half ago. After setting it up and playing around with it for a few weeks, I quickly replaced all my NoMachine and AnyDesk Remote Control installations at work & at home with it. It has became my de-facto way of interacting with remote systems for remote assistance, system setups and server patching.

Desktop ViewMobile View
41a2807bf2959b508f5658da68067489.png87fd46e2b9b6d04da7c06dc1dd5a42b8.png

Server Installation

Client Installation

Any 64 bit Linux system with systemd (Arch, Debian, RedHat, etc)

  • CD into downloads directory, download the meshagent linux installer and ignore the fact that the server has a self signed certificate. (Not needed if you’re using a reverse proxy)
cd ~/Downloads/ ; wget --no-check-certificate -O meshagent "https://10.0.0.201/meshagents?id=%40FGwJAr%40pZPmGfuvJ1N1IpjOWl4USZc8k8XEE1xI4DEDzuWkJchGQHgbHBwrkuwB&installflags=0&meshinstall=6" ; chmod +x ./meshagent ; sudo ./meshagent -install

64-BIT ARM (Raspberry Pi)

cd ~/Downloads/ ; wget --no-check-certificate -O meshagent "https://10.0.0.201/meshagents?id=OIXF2bCytM26I9MBLPSNsRI22d7k3HkcWfuzAJHAhp84ie51XIOxI6FV&installflags=0&meshinstall=26" ; chmod +x ./meshagent ; sudo ./meshagent -install

32-BIT ARM (Raspberry Pi)

wget --no-check-certificate -O meshagent "https://10.0.0.201/meshagents?id=40pZPmGfuvJGQHgbHBwrkuwB&installflags=0&meshinstall=25" ; chmod +x ./meshagent ; sudo ./meshagent -install

meshagents?id=#### sets the group that the My Devices Group the device get’s placed into.

meshinstall=# sets the binary type. You can find the binary number by selecting the appropriate OS in the Add Agent screen

2024-07-09_15-15.png

Cloning VMs - [Reference]

The MeshAgent has a "anti-cloning" system. When it runs, it will store the list of MAC addresses of all network interfaces into meshagent.db. Each time it starts, it looks to see if at least one network interface is the same as one in the list and updates the list. If none match, it will reset it's certificate and show up as a new device (with a new device identifier)
  • By default when a Proxmox VM gets cloned, it receives a new MAC address for each of it’s network interfaces, witch means that MeshCentral can safely be installed on Template VMs for management/updates without issues.
    • We can also force a device to reset it’s certificate and show up as a new device by deleting meshagent.db
  • Enable Hostname Sync in Group Settings screen > Features to have the Device Name automatically update whenever the hostname changes. I set this for my TMPLT group that all devices go into by default. I then move the device out of this group after i set it up and configure it’s permanant hostname on the host.
    • 4ed3090dae4993b308fbe6b7d42a3744.png

Check MeshCentral Agent Process Status

Linux

systemctl status meshagent

Windows w/Powershell

Get-Service -Name "Mesh Agent"

Multiple Networks / VLANS

At my previous jon we had a couple of VLANS that were for the Production floor and had no WAN access nor LAN access to any other networks. To install MeshCentral agents on these machines I had to do the following:

  1. Setup Firewall Allow Rule to allow one way traffic from the Firewalled Production LANs to the IP address of the MeshCentral server
  • Option 1:
    • Add a DNS entry to the server’s hosts file that pointed to the IP address of the MeshCentral server. (MeshCentral agents use DNS to find the Server) Linux: edit /etc/hosts and add your server’s DNS name, eg: meshcentral.zinchuk.xyz 10.0.0.240 Windows: Edit C:\Windows\System32\Drivers\etc\hosts and add your server’s DNS name, eg: 10.0.0.240 meshcentral.zinchuk.xyz
  • Option 2:
    • Setup a MeshCentral relay server on the firewalled LAN. This would have been my goto if we had more servers on the production LAN.

Sending Commands

With MeshCentral you can send commands to individual/groups of devices. Super handy if you need to push out an urgent patch to systems, do a bulk reboot of devices, or push out a program to multiple devices.

Steps: 2024-07-09_15-46.png

Example Commands

Update EndeavourOS Arch Linux System + Reboot

  • Update keyring, Update system packages, clear out package cache when done, and then reboot
sudo pacman -Sy archlinux-keyring endeavouros-keyring --noconfirm  --needed ; paru -Syu --noconfirm --needed && echo $(sudo ls /var/cache/pacman/pkg/ | wc -l) packages in cache ; sudo reboot

Update Proxmox Server + Reboot

apt-get update && apt-get dist-upgrade -y && reboot

Update Windows Packages with Chocolatey

choco upgrade all -y

Misc Usage

Using PowerShell in Terminal:

Right click when selecting terminal and select powershell OR type in powershell.exe to switch to Powershell from CMD

2024-07-09_15-52.png

Bugs/Workarounds/Extra info

Arch Linux Remote Desktop Bug

  • Remote Desktop view doesn’t work by default
  • Problem + Fix: https://github.com/Ylianst/MeshCentral/issues/602\
  • Workaround is automatically installed when setting up MeshCentral with my linux-setup-script

Device Getting Duplicated within MeshCentral

  • https://github.com/Ylianst/MeshCentral/issues/5726
  • edit /usr/local/mesh_services/meshagent/meshagent.msh and add skipmaccheck=1 to bottom of config file
  • 03f515cfd0fe7148a4606a07239777b6.png

Windows

  • In order to be able to type into Powershell/CMD when remoted in through meshCentral, the “Touch Keyboard and Handwriting Panel” service must be enabled through services.msc on the remote device. Otherwise you will not be able to type into the CMD/Powershell window directly. The terminal connection tab works just fine though.
    • https://github.com/microsoft/terminal/issues/9890

Last updated on December 24, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

The Cost of Running a Home Lab

One of the things that is often brought on /r/selfhosted and /r/homelab when people ask for advice about buying a server is the cost of powering that device over a year and over it’s lifetime. You can get a Dell Poweredge R710 with 16 cores and 64GB of ram for less than $100 on ebay, but the cost of powering that dinosaur 24/7, 365 days a year will quickly outgrow your initial investment.

I was reading through one of these discussions recently and it made me wonder how much my homelab was costing me. I’ve slowly accumulated all my equipment over the last 5 years or so, one piece/upgrade at a time, but have never stopped to calculate the totals or how much it cost to keep that equipment running 24/7. I went through my old receipts and bought one of these Watt Power Meters on Amazon to calculate the power usage of each of my home lab devices. Here are the totals:

Equipment + Power Cost

DeviceDevice Purchase
Cost
Average Power UsageAnnual Cost of Running
24/7/365 @$0.12582/kWh
Netgate 4100 Firewall$40013 Watts$14.33
Dell Wyse 5070$805.0 Watts$5.51
Beelink SER5$30910 Watts11.02
i7-5820K Desktop
5x12tb HDD Drives
2x1TB NVME
2x1TB SATA
$1,700122 watts$134.47
Unifi 8 Port Gigabit Switch$1094.5 Watts$4.96
Unifi WiFi Access Point$1598 Watts$8.82
TOTAL$2,757162 Watts$179.11

Overall i’m surprised that the total power cost is not higher. The biggest cost by far would be the amount of time and energy I put into home lab doing research, system upgrades, creating automation scripts and playing around with new projects. Luckily those skills are carried over to my professional work environments.


Last updated on September 01, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

  1. Arch Linux - Keyring Corrupted
  2. Expanding Linux VM Partitions within ProxMox
  3. Grub Customization
  4. Install virtio Guest Agent on Ubuntu Proxmox VM
  5. Installing EndeavourOS on Surface Pro 6
  6. Installing VirtIO Drivers on ProxMox VMs
  7. Migrating Virtual Machines to ProxMox using Macrium Reflect
  8. Office365 Office Suite - Installation & Configuration
  9. Running Unraid as a Proxmox VM
  10. Testing Read/Write Speed Linux using dd
  11. Trust Relationship Failed on AD Windows 11
  12. UniFi L2TP VPN - Setup & Config
  13. Windows XP - Disable Prompt to install new Hardware Wizard

Arch Linux - Keyring Corrupted

  • https://www.reddit.com/r/archlinux/comments/wbroq8/archinstall_error_on_updating_keyring/

Every so often EndevourOS/Arch Linux keyrings will expire/corrupt? and need to be reinitialized. When trying to do an upgrade with paru/pacman you will get a ...archlinux-keyring-20220727-1-any.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)) are you sure you want to remove it? Y/n error when this happens.

This is the solution that worked to fix that:

sudo killall gpg-agent

sudo rm -rf /etc/pacman.d/gnupg

sudo pacman-key --init

sudo pacman-key --populate archlinux
sudo pacman-key --populate endeavouros
# IF using chaotic-aur
sudo pacman-key --populate chaotic

Simple,

  • Update all the keyrings (arch, endeavour, chaotic-aur) and then install pacman updates through paru
sudo pacman -Sy --noconfirm ; sudo pacman -Sy archlinux-keyring --noconfirm ; sudo pacman -Sy endeavouros-keyring --noconfirm; sudo pacman -Sy chaotic-keyring --noconfirm; paru -Syu --noconfirm

Longer Process:

  • 1 liner WITH Chaotic-AUR and EndeavourOS
sudo pacman -Sy --noconfirm ; paru -Sy archlinux-keyring --noconfirm ; sudo pacman -Sy endeavouros-keyring --noconfirm; sudo pacman -Sy chaotic-keyring;  sudo killall gpg-agent ; paru -Sc --noconfirm ; sudo rm -rf /etc/pacman.d/gnupg ; sudo pacman-key --init ; sudo pacman-key --populate archlinux ; sudo pacman-key --populate endeavouros ; sudo pacman-key --populate chaotic ; sudo pacman-key --refresh-keys ; reboot

1 liner without chaotic-AUR

sudo killall gpg-agent ; sudo rm -rf /etc/pacman.d/gnupg ; sudo pacman-key --init ; sudo pacman-key --populate archlinux ; sudo pacman-key --populate endeavouros ; sudo pacman-key --refresh-keys

If you were using Chaotic-AUR, you will need to reinstall it most likely:https://aur.chaotic.cx/


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Expanding Linux VM Partitions within ProxMox

EndeavourOS/Arch Linux

GUI

  • Shut down the VM and within Proxmox go to Hardware > Hard Disk > Resize
    • Expand the Main disk, and secondary disk (linuxswap) as needed
  • Boot up the VM again, log into a user account and open up KDE Parition Manager paru -S partitionmanager
  • If Expanded the main disk, select it, right click on the main partition and click resize and then expand it to use up all the new disk space alloted to it.
    • Sometimes the extra disk space doens’t appear, a reboot of the VM usually fixes this.
  • If expanding the linux swap partition, you will need to delete the old partition and recreate it as a new linuxswap partition
    • right click on the partition, “deactivate swap”
    • Right click and click “delete partition”
    • Apply the changes
    • Right click on the empty partition and create new primary partition of the type linuxswap
    • Apply the changes
    • Right click on the newly created partition and select activate swap
    • Right click on the newly created partition and view it’s properties.
    • Copy the UUID to your clipboard. NOT the partition UUID.
    • open up your fstab file with sudo nano /etc/fstab and copy the new linux partition UUID and overwrite the old swap partition ID.
    • reboot the VM to make sure that the swap partition gets auto mounted.
    • easy way to check is open up htop in the terminal and see if the swap has a disk size to it.

Terminal

Ubuntu/Kubuntu

  • Run the following commands on the expanded drive:
    • https://unix.stackexchange.com/a/743682
  • Open up KDE Partition manager and expand the partition to use the full size

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Grub Customization

Fix Windows Missing in Dual Boot

  • https://forum.manjaro.org/t/warning-os-prober-will-not-be-executed-to-detect-other-bootable-partitions/57849
  • https://bbs.archlinux.org/viewtopic.php?id=279936
sudo nano /etc/default/grub

GRUB_DISABLE_OS_PROBER=false

and then run: 
grub-mkconfig -o /boot/grub/grub.cfg

Change Grub Timeout

sudo nano /etc/default/grub

- Change timeout to: 0
- Then Update grub config with:

grub-mkconfig -o /boot/grub/grub.cfg

Edit Grub Config to set default selected option

  • Change timeout, default option, hide grub menu unless shift pressed
  • https://www.maketecheasier.com/set-grub-remember-last-selection/
# - Save grub selection between reboots 
GRUB_DEFAULT=saved  
GRUB_SAVEDEFAULT=true 

GRUB_TIMEOUT=3 
GRUB_DISTRIBUTOR="EndevourOS"
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 nowatchdog"
GRUB_CMDLINE_LINUX=""
GRUB_FORCE_HIDDEN_MENU="true"


# Update grub config
# https://linuxhint.com/update_grub_arch_linux/
sudo grub-mkconfig -o /boot/grub/grub.cfg

Change Grub Background Image

  • https://forum.endeavouros.com/t/how-i-changed-grub-screen/29171
sudo cp IMAGEFILEPATHPNG /boot/grub/themes/EndeavourOS/IMAGEPNG

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Install virtio Guest Agent on Ubuntu Proxmox VM

One Liner to update apt cache, install agent, enable and start service:

sudo apt update && sudo apt install -y qemu-guest-agent && sudo systemctl enable qemu-guest-agent && sudo systemctl start qemu-guest-agent

Step by Step Directions

Open a terminal on your Ubuntu system.

Update the package list by running the following command:

sudo apt update

Install the virtio Guest agent package by running the following command:

sudo apt install qemu-guest-agent

During the installation, you may be prompted to configure some settings. You can choose the default options by pressing Enter or select any specific settings based on your requirements.

Once the installation is complete, start the virtio Guest agent service by running the following command:

sudo systemctl start qemu-guest-agent

Enable the virtio Guest agent service to start automatically on system boot by running the following command:

sudo systemctl enable qemu-guest-agent

Verify that the virtio Guest agent is running by checking the service status using the following command:

sudo systemctl status qemu-guest-agent

If the service is running, you should see a “active (running)” message. That’s it! The virtio Guest agent is now installed and running on your Ubuntu system.


Last updated on November 21, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Installing EndeavourOS on Surface Pro 6

I kept running into an error when trying to do an online install of EndeavourOS, so I ended up doing an offline install with xfce (at this moment, the EndeavourOS ISO comes with the xfce Desktop Environment preinstalled), booted into it and installed plasma packages using https://wiki.archlinux.org/title/KDE#Plasma

  • Then uninstall all XFCE packages with:
    • sudo pacman -Rns xfce4 xfce4-goodies
  • Then install Surface Pro kernel and packages to get the touchscreen working:
    • https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup#Arch

Last updated on August 13, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Installing VirtIO Drivers on ProxMox VMs

The following steps should work the same on any ProxMox Windows installation, including: - Windows 2000 - Windows 2003 - Windows XP - Windows 7 - Windows 10

  1. Mount the virtio-drivers.iso file as a CD Drive

  2. Open Up Device Manager by going to “My Computer” > right click on any white space and select “Properties” > Go to the Hardware Tab > click on “Device Manager” ba0d3114a6f3f21b2add7188e01f85f7.png

Right click on the device that has not been properly installed and select “install driver” or “re-install driver” 231e1b19d1939edfba02ac07d53e1089.png

Select “Search for suitable driver for my device” and scan the CD-ROM drives for the drivers. 4eccd309c1878b1a9ea17809e02e4953.png

Windows will either find the virtio driver and install it, or it will fail to find a comptaible driver which usually means the VM Windows Version is too old for that virtio driver and it can be uninstalled so that users won’t get nagged about installing a driver each time the VM reboots. 0cebd6f67431fb8bcbab3abf9c2dbf09.png


Error: Windows cannot load the device driver for this hardware. The driver may be corrupted or missing (Code 39) 37c928ff984a78d16e27b395ca8c1414.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Migrating Virtual Machines to ProxMox using Macrium Reflect

Macrium Reflect has been my default go to for the past 2-3 yearsfor desktop backups, and Virtual Machine migrations between Hypervisor Systems. Macrium takes care of all the registry changes that need to be made to older virtual machines 7,XP, Windows 2000 to prevent the virtual machine from blue screening and failing to boot after restores. Using Macrium i migrated ~20 virtual machines hosted on Windows Server 2008, 2012, and VMWare ESXI 5 and 6 to a modern Proxmox Cluster without too much difficulty.

Backing Up

  1. Install Macrium Restore on a desktop/server and create a custom Macrium Recovery Boot Image that will be mounted on the virtual machine and booted from to create the image backup.

Macrium Custom Boot Base WIM Breakdowns: 7f5963382b03c98041066638ddce946e.png

  • Install Macrium WorkStation or Macrium Server inside the Virtual machine you want to migrate
  • create a macrium backup of the machine to either a network drive, or if possible an external SSD drive.
    • ProxMox makes it very easy to pass through a USB device or USB port to a virtual machine, and SSDs are much faster to restore from than a network drive.
  • if a restore is happening a little while after a backup, do an incremental backup as well, and when doing a restore select the incremental backup file

Restoring/Migrating

  • create a new Windows Virtual Machine within ProxMox (https://pve.proxmox.com/wiki/Windows_10_guest_best_practices)
    • Use IDE as the drive type to start with, and Intel100 as the network device to start with
  • If Windows XP VM, Follow https://pve.proxmox.com/wiki/Windows_XP_Guest_Notes
  • mount Macrium Recovery Media (MRESCUE_) and VirtIO ISO as CD drives.
    • Choose Mrescue Version based on Windows System you’re restoring based image at the top of page
  • You can either pass through a USB external drive to the VM to restore the image form, or have the image on a network drive, eg TrueNas-01 - NAS Server (network drive is easier, but might be slightly slower)
  • Mount TrueNas-01 - NAS Server’s Macrium folder as a network drive
  • Restore the macrium image. Once restore is complete, click “other tools” menu at the top and select “Restore to dissimilar hardware”. Click through the options, the default ones work just fine.
  • Once restore is complete, select ReDeploy to New Hardware menu option and the “Fix windows boot problems” options and go through their menus as below:

20240308_130936_thorium.png

20240308_130939_thorium.png

20240308_130941_thorium.png

20240308_130944_thorium.png

20240308_130951_thorium.png

20240308_130958_thorium.png

20240308_131005_thorium.png

20240308_131008_thorium.png

20240308_131014_thorium.png

20240308_131022_thorium.png

20240308_131025_thorium.png

20240308_131031_thorium.png

20240308_131039_thorium.png

  • Once done, reboot to your cloned virtual machine.
  • Once booted into the virtual machine, open up device manager, find any devices with missing drivers, right click on them and select “Update Driver Software”, and select check the “Search removable media” option. Windows will look through the folders and usually find the appropriate driver.
  • For windows 2000/xp you might need to mount an older version of virtio drivers to find compatible drivers.

20240308_132230_thorium.jpg

20240308_132239_thorium.png

20240308_132244_thorium.png

20240308_132254_thorium.png

20240308_132258_thorium.png

20240308_132302_thorium.png

20240308_132308_thorium.png

20240308_132407_thorium.png

Notes

MRescue_WRE10_v2004_VirtIO.iso will not show virtIO SCSI hard drive when in rescue environment MRescue_WPE4.iso will not show virtio SCSI hard drive when in rescue environment

Tips/Tricks/Extas

Windows Server 2008 R2 refused to recognize virtIO SCSI drive, so you have to pass hard disk as SATA. 1f4b685679d4c3a1b82228ebc06fbdd8.png

  • To Disable the “Found New Hardware” popups for drivers that you no longer have access to, add the following registry item:
    • https://web.archive.org/web/20201021110316/https://www.computertechblog.com/how-to-disable-the-found-new-hardware-wizard-in-windows-xp/
      • Not: Different Parameters if x86 or x64 system
    • 035c311d1c9d1a965660724778835b5b.png

Windows Server 2000 Migration

Migrating Windows Server 2000 to ProxMox

  • Booted Macrium rescue iso from the VmWare Plum VM, and made a system image back to \Teak\Macrium, then created a VM on ProxMox with all the normal settings, booted into Macrium Rescue SERVER edition, WPE 4.0, 32 bit, restored the image file, then while still within the backup media, clicked through the “redeploy to new hardware” options.
    • Without the “redeploy to new hardware” through Macrium, the VM gives a bluescreen and boot loops
      • ProxMox Drive Settings:
        • SCSI Controller: VirtIO SCSI
        • Main Drive: BUS/DEVICE: IDE, Cache: Write back d2f48d3497f4856f6951d7f195c54004.png
      • After booting into Windows 2003, go to COmputer > right click on white part and Properties > Hardware > Device Manager > Right click on each missing driver and install the driver from virtIO CD. Use the “Search CD/DVD automatically” option PCIE Device = virtIO Balloon Driver fcc64df70b42a7e527e47594d46bffba.png
  • More infor: https://pve.proxmox.com/wiki/Windows_2003_guest_best_practices

Last updated on July 19, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Office365 Office Suite - Installation & Configuration

an ODT Config file is used for deploying Office365 installations through Windows Toolbox - Windows Setup Script

ODT (Office Deployment Tool)

Basic Usage: - https://support.microsoft.com/en-us/office/use-the-office-offline-installer-f0a85fe7-118f-41cb-a791-d59cef96ad1c#OfficePlans=signinorgid

Exclude Applications: - https://answers.microsoft.com/en-us/msoffice/forum/all/installing-only-particular-office-365-programs/9ebb27d4-1084-42e7-b84a-c5dd76e9232c

Sharepoint Excel Desktop Shortcut

“C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE” “sharepointURLHERE”

Microsoft Projects

  • Microsoft projects has it’s own standalone installer that downloads and installas the latest version of the application when it’s run
    • Local version can be found at: \\smb\Toolbox\Installs\Projects\MicrosoftOfficeProjectSetup.exe
    • Since the application doesn’t have any options that you need to select, you can install it remotely through powershell or CMD through MeshCentral by just running the full filepath through Terminal. It wiill silently download and install projects with no user intervention required.

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Running Unraid as a Proxmox VM

  • Unraid is meant to be run on bare metal.
    • It is installed to a USB Flash drive and the license key is tied to the USB device ID. is installed. The system is then booted from that flash drive into RAM.
  • It turns out it’s not difficult at all to run it as a VM though, all you have to do is pass through the Unraid USB drive to a Proxmox VM (Setup as Linux VM), and use a passed through LSI card if you want to have Unraid manage your drives
    • Passing through motherboard connected drives directly to the VM does not work. Reason
    • You CAN pass through a SATA controller to the VM to directly pass through the drives, but unless your motherboard has multiple SATA controllers, this isn’t an option because Proxmox is most likely utilizing the controller already for your boot/system drive.
    • Next option is a PCIE HBA Card, eg: LSI 9207-8i 8 Port 6Gb/s SATA/SAS PCIe 3.0 x8 HBA
      • Bought in 2023 and has been working without issues so far
      • Motherboard needs to support IOMMU for this to work. GUIDE

VM Setup Options

  • After creating the VM, make sure to remove the Hard Disk drive as it’s not needed for Unraid. 6b9b68f1d2f8c5fb607b3c5291ad789e.png

Options

3c1ed58da8f5c69b1d1d1fa1ba4117be.png

HBA Card

81b0a07289279ce103100e71563e0ecb.png

Passthrough Unraid USB

9d15aed4c1cf7ad8853b33ab0899aa76.png

Passthrough HBA Card with Drives Attached

c3b1f2c8f4e31f2a7be3f5144b642681.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Testing Read/Write Speed Linux using dd

  • https://www.baeldung.com/linux/disk-performance-test

Testing Sequential Write Speed

dd if=/dev/zero of=/DIRECTORYTOTEST/FILENAME bs=1M count=1024 conv=fdatasync

Preview: c94b8b7e0653c018834f76bd112ac808.png

Testing Read Speed

# clear buffer cache
sudo sh -c "/usr/bin/echo 3 > /proc/sys/vm/drop_caches"

dd if=/DIRECTORYTOTEST/FILENAME of=/dev/null bs=1M count=1024

Delete file used for Testing

rm /DIRECTORYTOTEST/FILENAME

Last updated on December 24, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Trust Relationship Failed on AD Windows 11

Problem:

After restoring a Proxmox VM snapshot, or restoring a desktop from a Macrium backup, the Active Directory integration gets broken and user gets a The trust relationship between this workstation and the primary domain failed error when trying to log in.

Fix

Logon to the VM using a local admin account and run powershell and execute

  • https://stackoverflow.com/questions/24775796/hyper-v-rollback-with-login-error-the-trust-relationship-between-this-workstati
Reset-ComputerMachinePassword -Server WSERVER -Credential yuriy@zinchuk.home ; shutdown /r /t 0 /f
Reset-ComputerMachinePassword -Server [MyDomainController] -Credential [MyDomain\administrator]

Fix 2

Instead of removing and readding, try this. Might save some time. This can be pushed out through a RDM like MeshCentral RDM

Test-ComputerSecureChannel -Verbose -Repair -Credential yuriy@zinchuk.home

Then Reboot

https://www.reddit.com/r/sysadmin/comments/11922e5/the_trust_relationship_between_the_workstation/j9kc08k/


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

UniFi L2TP VPN - Setup & Config

Windows 11 BUG - VERY SLOW Internet Speed while VPN is Connected

  • Ran into this issue recently after a user called me on their work from home day using their newly setup laptop complaining of unusable internet speed while their VPN was connected.
    • 8af02edff2d46abcb336e0472b1b394b.png
  • After doing a bit of research it seems like this is a recent but also a slightly recurring Windows 11 bug
  • Individual Device Fix: services.msc -> Routing and remote access -> change “start type” to Automatic (Delayed start) and click “Start” while in the user’s account SOURCE
  • Group Policy Fix(I ended up pushing this policy to all laptop devices without any issues): - Enable Routing and Remote Access to start automatically through System Services:
    • bf4f58f1d925c2f4ae218c6b4e8bf293.png
  • Possible other solution: Delete MiniWAN driver for L2TP VPN in device manager: - https://old.reddit.com/r/Windows11/comments/patot6/vpn_and_slow_speeds/hepti4t/

How to Setup UniFi VPN on UDM Pro

  • https://lazyadmin.nl/network/unifi-vpn/

Disable VPN Credentials For Network Resources

By default L2TP/IPSEC VPNs will try to use the VPN credentials for network resources like network shares. If you are not using Radius authentication with AD, you will need to disable this in the user’s VPN config file so the user’s login AD credentials get used instead of the VPN credentials.

  • https://serverfault.com/questions/322235/do-not-use-vpn-credentials-to-connect-to-network-resources
  1. Open Windows Run and open the following folder: %userprofile%\AppData\Roaming\Microsoft\Network\Connections\PBK
  2. Edit rasphone.pbk and change UseRasCredentials=1 to UseRasCredentials=0
    • If you do not do this, Windows will keep using the VPN credentials to connect to any network shares the user has mounted and will lock out the user’s AD account.
    • b4ed500d124f69d6226d557514d31110.png

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Windows XP - Disable Prompt to install new Hardware Wizard

Here is a “quick & dirty” way to get rid of the “Found New Hardware Wizard” if it’s popping up at every re-boot. I stumbled into this solution, even though when I searched a good bit for help, I never saw it.

Next time the Wizard pops up, go through the motions AS IF you were going to install the drivers.

At the first screen, pick “No, not this time” (as in don’t check with Microsoft for the drivers).

At the second screen, pick “Install from a specific location (as in don’t start searching the computer for the driver).

At the third screen, DE-select “Search removable media” and just below that, specify a folder on the computer that is EMPTY. This will cause the installation to immediately FAIL.

The fourth/failure screen – titled “Cannot Install This Software” – is the payoff. At the bottom of that screen, check off the box that says “Don’t prompt me again to install this software.” Click the Finish button.

  • https://superuser.com/questions/323391/how-can-i-disable-the-new-hardware-found-message-on-windows

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

  1. Android & ADB
  2. Autohotkey - Configuration
  3. Bitwarden Password Manager
  4. Blue Iris & Reolink Security Cameras
  5. Chocolatey Package Manager
  6. Flexo - Local Pacman Mirror Cache
  7. LineageOS on OnePlus 7 Pro
  8. irFanView

Android & ADB

ADB Commands

  • Install an APK file
adb install APKFILENAME
  • Reinstall/update app
adb install -r APKFILENAME
  • Uninstall an app
adb uninstall PACKAGENAME
  • Disable an APP
pm disable NAMEOFPACKAGE
  • List all enabled apps, filter by “calculator”:
pm list packages -e | grep 'calculator'
  • List all disabled apps
pm list packages -d
  • Get information about device and settings through ADB
    • https://technastic.com/adb-shell-commands-list/

Android Intents

  • https://android.stackexchange.com/questions/23687/finding-out-the-intents-an-app-uses-internally
You can use adb to check what intents an app uses. The steps to do this are:

Enable developer options
Under developer options turn on adb debugging
Connect phone to computer
Get adb logs and grep out intents: adb logcat | fgrep -i intent
Trigger the intent on your phone
Inspect logs to find the details of the intent

disable IPV6

  • https://github.com/ukanth/afwall/wiki/CustomScripts#important-notes-about-ipv4-and-ipv6-differences
If you do not need IPv6 or your provider does not support it (native) you can just disable it via net.ipv6.conf.all.disable_ipv6=1 in your build.prop or better in your sysctl.conf file which will be applied right after the boot.

Last updated on July 15, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Arch Linux Configurations

Autohotkey - Configuration

  • I use syncthing to sync all my files between my devices, including all the misc autohotkey libraries i use.
mklink /D C:\Users\yuriy\Documents\Autohotkey C:\Users\ity\Syncthing\Scripts\AutoHotKey

This way autohotkey scripts check my syncthing Authotkey lib folder for libraries instead of \Documents\Autohotkey\Lib, and i don’t have to constantly sync the two folders with each other.

Dark Theme for autohotkey.chm

  • Changing the autohotkey Documentation theme to a dark theme does not save it to the settings file, only sets the theme for the current instance.
  • When trying to save it you will receive an ActiveX Error, and then a failure due to chm not being run as administrator.
  • Fix: Copy chm_config.js to the following location:

e016f7b393e278698e99ae7322e79f0c.png


Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Bitwarden Password Manager

Bitwarden is a fantastic password manager for personal and business environements; the ability to share passwords with other employees/groups, and also send self destructing notes is so much more secure than sticky notes / printouts / sharing credentials over chat platforms.

Disabling Auto Updates Nag:

  • On Startup, Bitwarden will show a popup prompting users to install an update if there is one available, but to actually install the update the user needs admin privilages.
  • This is a useless nag that cannot be disabled any doesn’t provide any benefit at all when Bitwarden is installed/automatically pushed out through Chocolatey.
  • The below workaround disables the ability for Bitwarden to auto download updates itself, which will also ensure the “install update” popup will not appear anymore.
  • This workaround is automatically put into place whenever Bitwarden is installed through the Windows Toolbox Setup Script

Windows [Source]

Delete (if exists) the following folder
C:\Users\%username%\AppData\Local\bitwarden-updater

Then re-create it as a write-protected empty file instead.
Now Bitwarden won't be able to update itself.

Automatically using powershell:

# Get the current user's username
$username = [Environment]::UserName

# Define the folder path to delete/recreate
$folderPath = "C:\Users\$username\AppData\Local\bitwarden-updater"

# Check if the folder exists
if (Test-Path -Path $folderPath) {
    # Delete the folder if it exists
    Remove-Item -Path $folderPath -Recurse -Force
}

# Create the folder as a write-protected empty file
New-Item -Path $folderPath -ItemType File -Force
Set-ItemProperty -Path $folderPath -Name IsReadOnly -Value $true

Windows Auto Type

  • https://github.com/anonymous1184/bitwarden-autotype

Linux

  • https://github.com/mattydebie/bitwarden-rofi

Vaultwarden (Self Hosted Rust Based Bitwarden Backend)

  • https://github.com/dani-garcia/vaultwarden

Last updated on September 18, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Blue Iris & Reolink Security Cameras

Blue Iris NVR Configuration

  • Network Settings > Port Number: 808 -Change this from the default 80 so there is no web UI reachable by default if someone visits the IP address. This forces all the traffic through NGINX Reverse Proxy with SSL Encryption.
  • Remote WAN access set to 0.0.0.0 as there is no need for cameras to be accessed through WAN
  • Blue Iris background service has to be registered with windows local admin account, domain admin doens’t work. Source

Blue Iris Web Interface

URL Parameters Several URL parameters can change UI3’s startup behavior.

ParameterEffectExample
maximize=1UI3 loads with the left and top control bars hidden.ui3.htm?maximize=1
tab=liveThe “Live” tab is loaded.ui3.htm?tab=live
tab=alertsThe “Alerts” tab is loaded.ui3.htm?tab=alerts
tab=clipsThe “Clips” tab is loaded.ui3.htm?tab=clips
group=groupnameThe group with the specified name is loaded.ui3.htm?group=index
cam=shortNameThe camera with the specified “Short name” is loaded.ui3.htm?cam=porch

eg: http://cameras.wmpco.biz/ui3.htm?t=live&maximize=1

Networking

  • For Maximum compatability and best performenace on the Blue Iris server, set the following settings:
  • Camera > Display > Watermark > OFF
  • Camera > Display > Date & Time > Show
  • Camera > Display > Camera Name > Hide (Optional)
  • Camera > Stream > Fixed Frame Rate > On, Fluency First
  • Camera > Stream > Frame Rate (FPS) > 15
  • Camera > Stream > Max Bitrate (Kbps) > 4096
  • Camera > Fluent > Frame Rate (FPS) > 10
  • Camera > Stream > Max Bitrate (Kbps) > 1024
  • Camera > Info > Camera Name > RSC-## (Optional)
  • Network Settings > Avanced > Enable UID > OFF (Reolink Mobile App Access)
  • Network Settings > Avanced > Port Settings >
    • RTSP > ON > (Port 554)
    • ONVIF > ON > (Port 8000)
  • System > User Management > Change Password > Set custom Password

RLC-811A

Adding Reolink to Blue Iris: https://www.youtube.com/watch?v=cuLpDo-TVK8

Substreams 6d2b7592fc25f207cc61967d0aca7830.png

Ultra Wide Angle Camera

https://www.amazon.com/REOLINK-Security-Ultra-Wide-Detection-Duo/dp/B0B2P9RL53/144-4656760-4503224 e99791619ce33232ace8027fcaf00177.png b6197bc7af72b74374b2cf46f08ea8f9.png


Last updated on July 09, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Boot Linux into CLI or GUI by Default

Chocolatey Package Manager

General

  • Chocolatey is a command line Windows software management tool (similiar to Debian’s ‘’’apt’’’ and Arch Linux’ ‘’’pacman’’’)
  • https://community.chocolatey.org/courses/getting-started/how-to-use

Installation

  • https://chocolatey.org/install

Usage

  • Search for available packages:
    • https://community.chocolatey.org/packages
choco search PROGRAMNAME
  • to install a program
choco install PROGRAMNAME

To uninstall:

choco uninstall PROGRAMNAME

To update all installed software without confirmations

choco upgrade all -y

Chocolatey Auto Updates

choco install choco-upgrade-all-at --params "'/WEEKLY:yes /DAY:SUN /TIME:01:00 /ABORTTIME:05:00'"

Last updated on July 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

CopyQ

Flameshot

irFanView

Super snappy and lightweight image viewer for Windows. Faster than any other image viewer i’ve tested.

Scripting with Autohotkey

  • Command Line Scripting: https://www.etcwiki.org/wiki/IrfanView_Command_Line_Options
  • Utilizing the filepath of the image in the title of the window, we can run different actions on the currently open photo, for example, opening up the current photo in GIMP.
#IfWinActive, ahk_exe i_view64.exe
!E:: ; Alt + E
!O:: ; Alt + O
^P:: ; Control + P

WinGetTitle, ActiveWindowTitle, A
FileFilepath := StrSplit(ActiveWindowTitle, " - IrfanView")[1]

if(A_ThisHotkey = "!e"){ ; open file in GIMP
	run, "C:\Program Files\GIMP 2\bin\gimp-2.10.exe" "%FileFilepath%"
	Return
}

if(A_ThisHotkey = "^p"){ ; copy image filepath to clipboard
	Clipboard := FileFilePath
	Return
}

if(A_ThisHotkey = "~!O"){ ; Activate file in XyPlorer
	run, "C:\Program Files (x86)\XYplorer\XYplorer.exe" "%FileFilePath%"
	Return
}

#If

Settings

  • Enable Full Filepath in title bar so it can be used for scripting with autohotkey

    • 46601a4075c9e33ba91dedabec677a0b.png
  • Usability Settings:

  • irFanView_1.png

  • irFanView_2.png

  • irFanView_3.png

  • f9af64c9a8e0009399c8ae1c2ff26bf3.png

Configuration File Location

  • C:\Users\me\AppData\Roaming\IrfanView\i_view64.ini

Sync Settings between Computers

mklink "C:\Users\yuriy\AppData\Roaming\IrfanView\i_view64.ini" "C:\Users\yuriy\Syncthing\Configurations\irFanView\i_view64.ini"

Plugins

PlugIns are installed into IrfanView "PlugIns" directory 
 	C:\Program Files\IrfanView\Plugins

Last updated on July 20, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Jumpapp

KDE Dolphin

KDE Plasma Configuration

Keymapper - Linux

Librewolf & Firefox

LineageOS on OnePlus 7 Pro

Background

  • Analytics about Everything you do: https://www.chrisdcmoore.co.uk/post/oneplus-analytics/

General

  • Device Model: guacamole (guacamoleB is OP7)

Custom Roms

  • https://wiki.lineageos.org/devices/guacamole/
  • https://xdaforums.com/t/rom-14-0-0_r35-unofficial-evolution-x-9-0-05-28-2024.4673786/
  • https://download.lineage.microg.org/guacamole/

Install ADB and fastboot software on arch linux: sudo pacman -S android-tools

  • boot into bootloader
adb reboot bootloader
  • boot twrp image from bootloader
fastboot boot twrp.img
  • Install a zip file through adb while in recovery:
adb sideload filename.zip
  • Install a custom Android 12 ROM

    • https://forum.xda-developers.com/t/rom-12-official-arrowos-12-0-for-oneplus-7-pro.4355029/page-10#post-85935617
  • Magisk Installation:

    • https://topjohnwu.github.io/Magisk/install.html#patching-images
  • Payload Dumper: https://github.com/vm03/payload_dumper

    • Tool for getting the boot.img for patching with magisk
  • BlissROM Android 10 ROM: https://forum.xda-developers.com/t/rom-official-q-r41-blissroms-v12-11-7pro-08-21-20.3957341/

remove software Navigation Bar

Edit: /system/build.prop and append to the end of the file:

qemu.hw.mainkeys=1 

Last updated on September 13, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Local Pacman Mirror Cache

Pacman & Paru Commands Reference

ProxMox Notes, Settings & Solutions to Issues

ShareX

Sublime Text

Voidtools Everything

XYplorer File Manager

Contents

Click on a link in the list below to go to that page:

Contents

Click on a link in the list below to go to that page:

  1. IP Lookup API - ip-api.com
  2. Proxmox QM and PVESH CLI Reference
  3. linkding - API

Proxmox QM and PVESH CLI Reference

Clone a VM

qm clone VMIDTOCLONE NEWVMIDNUMBER --name "VMNAME" --full true
  • Set the macaddress for VM’s primary NIC
qm set 1001 --net0 virtio,macaddr=BC:24:11:6B:7D:2B,,bridge=vmbr0,firewall=1
  • Migrate a VM to a different node and specify the storage
qm migrate 1004 sandalwood --targetstorage NVME-01

Controlling VMs on different Nodes using pvesh

For controlling VMs on different nodes than the one you’re accessing the terminal from you have to use pvesh CLI tool

  • https://pve.proxmox.com/pve-docs/pvesh.1.html

  • Start a VM on different node

pvesh create /nodes/NODENAME/qemu/VMIDNUMBER/status/start
  • Reboot a VM on different node
pvesh create /nodes/sandalwood/qemu/1005/status/reboot
  • Forcefully reset a VM on different node (similiar to forcefully unplugging pc from power)
pvesh create /nodes/sandalwood/qemu/1005/status/reset
  • Shutdown a VM on a different node
pvesh create /nodes/sandalwood/qemu/1005/status/shutdown
  • Delete a VM on a different node.
  • Have to use the pvesh CLI to control the VMs on the different nodes
    • https://forum.proxmox.com/threads/issue-qm-shutdown-from-one-node-to-another.44150/
    • https://pve.proxmox.com/pve-docs/pvesh.1.html
pvesh delete /nodes/NODENAME/qemu/VMIDNUMBER ; 
  • Script to query the Proxmox API for VM name and set hostname of the VM accordingly
    • https://github.com/badsmoke/proxmox-auto-hostname

Last updated on September 30, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.

Contents

Click on a link in the list below to go to that page:

Gym Workout Routine

Back Day                          Weight
Barbell Rows5x5
Deadlift5x5225
Dumbell Rows3x8
Seated Rows3x81
Lat Pulldowns3x10
Shrugs3x1045
Pull Ups3x10

Shoulders + Triceps       Weight
Overhead Press5x5110
Seated Dumbbell Press4x645
Lateral Raises3x815
Bent Over Raises3x840
Skull Crushers3x1050
Rope Pressdowns3x1075
Face Pulls3x1090
Landmine Chest Press5x5

Legs                                 Weight
Squats5x5225
or Bulgarian Split Squat6x590
Front Squats5x5135
Deadlift5x5225
Leg Press4x12225
Leg Extension3x1270
Leg Curls3x12
Stiff Leg Deadlifts3x12
Calf Raises3x2090

Chest & Biceps               Weight
Bench Press5x5185
Incline Bench Press4x6185
Dumbell Press3x8
Incline Dumbell Fly3x8
EZ Bar Curls3x1060
Dumbell Hammer Curls3x10


Back Day

Pull Ups

3ae2c4bc73f9b190e2e03810fab77f0f.png

Shoulder Shrugs

6e003dfdefdb2b552be3c9b3c810d8d4.png

Barbell Rows

706280414.jpg

Lat Pulldowns

th(3).jpg

Dumbell Rows

th(4).jpg

Seated Rows

cf40969251dade5126db45bf82d13d5f.png

Chest and Biceps

Bench Press

5338aeb13829936d3f74a22d1dafead2.png

Incline Bench Press

5dbc38629bf98e9c81e9b1798ae52bf3.png

Landmine Chest Press

landmine-press-a-b.jpg

Dumbell Press

th(5).jpg

Incline Dumbell Fly

incline-dumbbell-flyes.jpg

EZ Bar Curls

5fc6893e420184b6dbc0eda7882ab1db.png

Dumbell Hammer Curl

e25a7d3e0c01a33f33fd0ca673c4a0bb.png

Legs

Squats

high-bar-squat-1536x893.png

Deadlift

deadlift-form-300x234.jpg

Front Squats

Screenshot_20230618-155453_Firefox Nightly_1.png

Leg Press

f364476bf10a5df6c1043867e5e4d83a.png

Leg Extension

588fca12edb1e94febdc50798e2c0f30.png

Leg Curl

588fca12edb1e94febdc50798e2c0f30.png

Stiff Leg Deadlifts

45d262ced9168709fc0c9414a2559205.png

Bulgarian Split Squats

f68abc137bea4b7c079c232c00b6c2e0.png

Calf Raises

standing-and-seated-calf-raises.jpg

Glute Extensions

a63aeb65d77baf35863c3606313afacb.png

Shoulder and Triceps

Face Pulls

ade4b08d118f9d8db052daddee46e92e.png

Overhead Press

OverheadPress.png

Lateral Raises

Lateral Raises

Bent over Raises

th(1).jpg

Skull Crushers

172314c5b3292257af3e16f1cae7feae.png

Rope Pressdowns

1879930e27a3e4252b9e1e37c980c0bd.png

Seated dumbbell press

th(2).jpg

Tricep Dips

triceps-dip-main_0.jpg

Bonuses

Alternate Sprinter’s Lunge

  • Glute Strenghtening (Anterior Pelvic Tilt Fix)

6aaa21f30e82a3a97092b4a6c2ba17a1.png

Kneeling Band Raises

  • Glute Strenghtening / Low Back Pain Prevention

7908aea90a250ce01f494b29566493d0.png

Russian Twists

c6ac6f0b0a396b050c3f689e0fabfeb6.png

Links

Add to workout:

https://www.youtube.com/watch?v=K-CrEi0ymMg&t=365

https://www.youtube.com/watch?v=gIhCuqtC0r0


Last updated on September 17, 2024. For any questions/feedback, email me at blog@zinchuk.xyz.