Skip to content

Instantly share code, notes, and snippets.

View c0m4r's full-sized avatar
🐧
noot noot

c0m4r

🐧
noot noot
View GitHub Profile
@c0m4r
c0m4r / vyos_installation_hetzner_cloud.md
Last active April 20, 2025 19:18
VyOS installation on Hetzner Cloud VPS

VyOS installation on Hetzner Cloud VPS

This guide explains how to install the VyOS Rolling Release (free nightly builds) on Hetzner Cloud VPS. This might also work for other VPS providers with the proper rescue system in place.

First log into Hetzner Cloud, switch to your VPS control panel, select Rescue -> Enable Rescue and Power Cycle. It takes up to 1 minute to boot into rescue mode. Your login details will be displayed in the control panel after you activate the console. You can also use previously defined SSH keys.

Hetzner Rescue SSH

Download and write the ISO image in the Rescue environment:

@c0m4r
c0m4r / image_copy_without_copying_image.md
Last active January 19, 2024 16:25
How to copy an image without copying the image

How to copy an image without copying the image

Table of contents

An image

@c0m4r
c0m4r / gentoo_arm64_ipv6_hetzner_cloud.md
Last active December 7, 2024 19:31
Gentoo ARM64 IPv6 installation on Hetzner Cloud VPS

Gentoo ARM64 IPv6 quick-ish setup on Hetzner Cloud

image

This guide explains how to waste your time installing Gentoo on a Hetzner Cloud VPS.

Not only that, I use IPv6-only connected machine and Arm64 at the same time. If I'm not insane, I don't know who is.

Also, yes, I'm skipping lots of configuration steps.

@c0m4r
c0m4r / q3arena_ioquake3_linux.md
Last active February 2, 2024 01:39
Building Quake III Arena on Linux from ioquake3 source
@c0m4r
c0m4r / alpine_3.19_desktop_setup.md
Last active February 4, 2024 05:28
Alpine 3.19 desktop setup

Alpine 3.19 desktop setup

Install Alpine

  1. Get Standard ISO from https://alpinelinux.org/downloads/
  2. Boot the ISO and log in as root (no password required).
  3. Run setup-alpine and install using defaults. For partition layout use sys or lvmsys.

Desktop Setup

@c0m4r
c0m4r / lenovo_ideapad_gaming_3_bios_update_linux.md
Last active April 26, 2025 08:41
Update Lenovo ideapad Gaming 3 Laptop BIOS on Linux

Update Lenovo ideapad Gaming 3 Laptop BIOS on Linux

WARNING: flashing the new BIOS can brick your laptop, DON'T do it if you don't know what you're doing or just for the sake of having the latest firmware. Make sure you actually need it and that both your laptop's power AC adapter is plugged in and the battery is fully charged.

Preamble

If you've got one the ideapad gaming 3 laptops you might face the problem with updating the BIOS, if your model isn't covered via fwupd.

There are ways to workaround it with some crazy shit magic tools, but the safest way is just use the Windows environent in the absence of a BIOS update file for Linux.

@c0m4r
c0m4r / _whitelist_ddns_mikrotik_ip_iptables.md
Last active September 29, 2024 07:49
Whitelist DDNS Mikrotik IP iptables

Whitelist DDNS Mikrotik IP iptables

A python script solution to whitelist an IP address in iptables resolved with Mikrotik DDNS service (or any other).

In this example I have whitelisted Mikrotik DDNS IP to allow access to SSH and OpenVPN ports.

The script is scheduled in crontab to run every minute. It will resolve Mikrotik DDNS domain, flush the iptables WHITELIST chain and add the IP address if it changed.

@c0m4r
c0m4r / observium_on_alpine_linux.md
Last active September 29, 2024 23:35
Observium on Alpine Linux

Observium on Alpine Linux

WARNING: It's a draft. It doesn't cover security, permissions and other stuff.

Tested on Alpine Linux v3.20 / Observium CE 24.4

Installation

Derived from https://docs.observium.org/install_debian/

@c0m4r
c0m4r / _epic_free_games_email_notifications.md
Last active November 3, 2024 09:12
Email notifications with weekly Epic Store Free Games

Epic Store Free Games email notifications

OS Setup: Linux (any), Postfix as a forwarder

Depends on: nodejs + AuroPick/epic-free-games

It's best to run cron once every 2-3 days, so as not to miss the release time window. The script compares with the last run to avoid sending duplicate emails.

v2: JS only