Skip to content

Instantly share code, notes, and snippets.

View mortn's full-sized avatar
🐙

Morten Abildgaard mortn

🐙
  • IKEA
  • Europe, mostly
View GitHub Profile
@mortn
mortn / netbird-quadlets-setup.sh
Created February 20, 2026 22:32 — forked from LeMoonStar/netbird-quadlets-setup.sh
Netbird Quadlet Setup
#!/bin/bash
set -e
# NetBird Setup for Podman Quadlets
# Target: /etc/containers/systemd
# Based on https://github.com/netbirdio/netbird/blob/614e7d5b90667b807e788dd3f0d7421dac4a8cac/infrastructure_files/getting-started.sh
# Mainly translated using GEMINI 3 PRO (After weeks of trying to get Netbird to work, this Finally worked...)
# ORIGINAL LICENSE:
@mortn
mortn / hickorydns.container
Last active September 12, 2025 21:57
HickoryDNS Podman Quadlet (rootless, yea baby!)
# .config/containers/systemd/hickorydns.container
[Container]
ContainerName=hickorydns
Image=docker.io/hickorydns/hickory-dns:latest
PublishPort=53:53/udp
UserNS=keep-id:uid=100,gid=100
Volume=%h/hickory/etc:/etc:ro
Volume=%h/hickory/zones:/var/named:ro
AutoUpdate=registry
AddCapability=NET_BIND_SERVICE
@mortn
mortn / 10-wgsrv.netdev
Created March 15, 2025 15:53
Wireguard setup with plain systemd networkd
# /etc/systemd/network/10-wgsrv.netdev
[NetDev]
Name=wgsrv
Kind=wireguard
Description=WireGuard wgsrv
[WireGuard]
ListenPort=51820
PrivateKeyFile=[path-to-private-key]
@mortn
mortn / flatpak-setup-gnome.sh
Created March 11, 2025 20:02
Flatpak setup on Debian-based distro with Gnome
sudo apt install flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# reboot system, and all flatpaks are available
@mortn
mortn / dhcp-leases.py
Created March 11, 2025 18:40
Show current DHCP leases for all interfaces when using systemd networkd as DHCP server
#!/usr/bin/env python3
import json
from os import listdir, path
from datetime import datetime
# this is the default path on Debian-based distros
DHCP_DIR = '/var/lib/systemd/network/dhcp-server-lease'
def main():
lfiles = [path.join(DHCP_DIR,lf) for lf in listdir(DHCP_DIR)]
@mortn
mortn / gnome-terminal-ubuntu-profile.toml
Last active March 20, 2025 21:57
Gnome terminal with Ubuntu colours and palette
[/]
default='aaaaaaaa-8fd6-47c6-a14e-6b2769bf2e5e'
list=['aaaaaaaa-8fd6-47c6-a14e-6b2769bf2e5e']
[:aaaaaaaa-8fd6-47c6-a14e-6b2769bf2e5e]
audible-bell=false
background-color='#300924'
bold-is-bright=true
foreground-color='#FFFFFF'
palette=['#2E3436', '#CC0000', '#4E9A06', '#C4A000', '#3465A4', '#75507B', '#06989A', '#D3D7CF', '#555753', '#EF2929', '#8AE234', '#FCE94F', '#729FCF', '#AD7FA8', '#34E2E2', '#EEEEEC']
@mortn
mortn / kubernetes.sources
Last active November 25, 2024 22:38
Kubernetes Debian/Ubuntu APT repo in deb822 format
Types: deb
Architectures: amd64
URIs: https://pkgs.k8s.io/core:/stable:/v1.31/deb/
Suites: /
Signed-By:
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBGMHoXcBCADukGOEQyleViOgtkMVa7hKifP6POCTh+98xNW4TfHK/nBJN2sm
u4XaiUmtB9UuGt9jl8VxQg4hOMRf40coIwHsNwtSrc2R9v5Kgpvcv537QVIigVHH
WMNvXeoZkkoDIUljvbCEDWaEhS9R5OMYKd4AaJ+f1c8OELhEcV2dAQLLyjtnEaF/
@mortn
mortn / mongodb.container
Last active November 20, 2024 21:18
MongoDB CE quadlet
[Container]
Image=docker.io/percona/percona-server-mongodb
AutoUpdate=registry
PublishPort=27017:27017/tcp
Volume=%h/mongodb/data:/data/db
Volume=%h/mongodb/init/:/docker-entrypoint-initdb.d/:ro
EnvironmentFile=%h/.config/containers/systemd/mongodb.env
Environment=PUID=101000
[Service]
@mortn
mortn / postgres.container
Last active December 2, 2024 21:53
Postgres quadlet
[Container]
Image=docker.io/postgres:latest
ContainerName=postgres
UserNS=keep-id:uid=999,gid=999
AutoUpdate=registry
PublishPort=5432:5432/tcp
Volume=%h/pgdata:/var/lib/postgresql/data
EnvironmentFile=%h/.config/containers/systemd/postgres.env
[Service]
@mortn
mortn / jellyfin.container
Last active February 7, 2025 22:43
Jellyfin Quadlet
[Container]
Image=docker.io/jellyfin/jellyfin:latest
ContainerName=jellyfin
AutoUpdate=registry
PublishPort=8096:8096
Volume=%h/jellyfin/cache:/cache:Z
Volume=%h/jellyfin/config:/config
Volume=/data/video:/media/video
#Mount=type=bind,source=/data/audio,destination=/media/audio,ro=true