This guide deploys a small VPN gateway on a public Ubuntu virtual machine. Traefik is the only container that publishes host ports:
TCP 80 and 443 for HTTPS and Let’s Encrypt; UDP 51820 for WireGuard; WireGuard UI and the Traefik dashboard are available only over HTTPS. This setup does not require a separate router or port forwarding. The virtual machine must have a public IP address, and its cloud firewall must allow incoming TCP 80, TCP 443, and UDP 51820 traffic.
Forcing an ext4 Filesystem Check on the Next Reboot with tune2fs Sometimes you need to verify an ext4 filesystem, but the filesystem is mounted and cannot safely be repaired online. This is especially common when the filesystem is the root filesystem, such as /dev/md0 mounted as /.
Running fsck directly on a mounted filesystem is not a safe way to repair it:
1 sudo fsck -n -f /dev/md0 The -n option makes it read-only, so it will not fix anything.
Display the host architecture
1 2 uname -m x86_64 Let’s try run image with arm64. We’ve got an error
1 2 3 docker run --rm -t arm64v8/ubuntu uname -m WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested exec /usr/bin/uname: exec format error Install the qemu packages
1 sudo apt-get install qemu binfmt-support qemu-user-static This step will execute the registering scripts
Tested on: Ubuntu 26.04 LTS (Resolute), x86_64, UEFI
This guide installs a minimal Ubuntu system directly on ZFS. It supports three root-pool layouts:
Layout Minimum disks Disk failures tolerated Rough RAID equivalent Mirror 2 1 RAID1 RAIDZ1 3 1 RAID5 RAIDZ2 4 2 RAID6 The installation flow is the same for every layout. Only the zpool create command changes.
The procedure follows the official ZFSBootMenu Ubuntu UEFI guide, adapted for redundant pools and an EFI System Partition (ESP) on every disk.
| Ubuntu 22.04
It doesn’t work on Wayland, only on Xorg
Install devilspie2 an create test config for Mozilla Firefox
1 2 3 4 5 6 7 8 9 10 11 sudo apt install devilspie2 mkdir -pv ~/.config/devilspie2 cat <<EOF > /home/goto/.config/devilspie2/firefox.lua if (string.match(get_window_name(), "Mozilla Firefox")) then stick_window(); -- maximize(); end EOF devilspie2 --debug Mozilla Firefox should open in maximize and be visible on all workspaces
Find name of the windows:
| Ubuntu 22.04
All of users’ systemd have to place in directory ~/.config/systemd/user/
If you want start user systemd unit when user login, run:
1 systemctl --user enable <service> List of available types of systemd units:
1 2 3 4 5 6 7 8 9 10 11 12 13 systemctl -t help Available unit types: service mount swap socket target device automount timer path slice scope Create user systemd file to make ssh connection: