Linux Package Management
APT, DNF and Pacman side by side: updates, installs, repositories and signing keys, holds, kept-back packages and the error messages that stop an upgrade.
All 50 TechWilla guides on Linux administration, self-hosting, networking and VPNs, monitoring, IoT and AWS. Each one lists its read time and links the official documentation it relies on.
APT, DNF and Pacman side by side: updates, installs, repositories and signing keys, holds, kept-back packages and the error messages that stop an upgrade.
Practical guide to Linux file permissions covering rwx notation, octal numbers, ownership, and the real reasons why chmod 777 is never the right call.
Set up Nginx on Ubuntu, Debian, Fedora or Arch: server blocks, Certbot HTTPS, reverse proxying, caching, security headers, rate limiting and troubleshooting.
Headless Raspberry Pi OS setup with Raspberry Pi Imager customisation, SSH keys, a fixed IP with NetworkManager, updates, basic hardening and Docker.
Harden an OpenSSH server: key-only login, sshd_config settings checked with sshd -t, Ubuntu socket activation, and a Fail2Ban jail that works with journald.
Turn your scripts into proper systemd services that start on boot, auto-restart on crash, and run as managed daemons. No more fragile screen sessions.
Install AdGuard Home with Docker or the official script, set encrypted upstream DNS, use per-client rules, and fix port 53 conflicts with systemd-resolved.
A planning guide to self-hosting at home: hardware, power, operating system, Docker, networking, remote access, reverse proxy, backups and maintenance.
Run Nextcloud in Docker Compose with MariaDB and Redis behind an Nginx reverse proxy with HTTPS, then set up background jobs, sync, backups and upgrades.
Install Pi-hole v6 on Linux or in Docker, point your network at it, add blocklists and local DNS records, and fix port 53 and other common problems.
Proxmox VE 9 setup guide: install, no-subscription repositories, VMs, LXC containers, storage, backups, VLANs, passthrough and migrating from VMware ESXi.
Set up TrueNAS Community Edition: hardware sizing, installation, ZFS pool layouts, datasets, SMB and NFS shares, snapshots, replication, scrubs and apps.
Install and configure the IPFire firewall: hardware needs, colour-coded zones, firewall rules, port forwarding, intrusion prevention, VPNs, updates and backups.
Networking fundamentals for Linux users: IP addresses, RFC 1918 ranges, CIDR subnets, gateways, NAT, DNS, ports and DHCP, with a troubleshooting flow.
Install OpenWrt on a supported router: check the Table of Hardware, pick an image, set up LuCI, install packages (apk or opkg), upgrade and use failsafe mode.
Install OPNsense 26.7 on x86 or a VM, then set up firewall rules, VLANs, WireGuard, intrusion detection, Unbound DNS, Dnsmasq DHCP, updates and backups.
Turn a Raspberry Pi into a Wi-Fi access point with RaspAP on Raspberry Pi OS trixie or bookworm: install, change defaults, add a VPN and fix problems.
Turn a Linux machine with two network interfaces into a router: netplan, IP forwarding, nftables firewall and NAT, dnsmasq DHCP and DNS, port forwarding, CAKE.
Set up an OpenVPN server on an Ubuntu or Debian cloud VM with Easy-RSA certificates, UFW forwarding and NAT, client profiles, TCP 443 fallback and fixes.
Deploy a Pritunl VPN server: install Pritunl and MongoDB with the official commands, then set up organizations, users, servers, routes, WireGuard and backups.
Install Tailscale on Linux, macOS, Windows and phones, then set up MagicDNS, exit nodes, subnet routers, Tailscale SSH, access rules, Headscale and fixes.
Set up a WireGuard VPN server by hand on an Ubuntu 22.04, 24.04 or 26.04 cloud VM: keys, wg-quick, forwarding and NAT, clients, and fixing handshakes.
Deploy wg-easy v15 (WireGuard plus a web admin panel) with Docker Compose, put the admin panel behind HTTPS, add clients, and back up and update it safely.
Run a web app and its PostgreSQL database with Docker Compose: compose.yaml line by line, .env files, healthchecks, startup order, updates and overrides.
Install Docker Engine and the Compose plugin from Docker's repositories on Ubuntu, Debian, Fedora, RHEL and CentOS Stream, with non-root access and cleanup.
How Docker networking works: the default bridge, user-defined networks and DNS, publishing ports safely, why published ports bypass ufw, and a proxy layout.
Reduce what a compromised container can do: protect the Docker socket, run as non-root, drop capabilities, use a read-only filesystem and set resource limits.
Back up and restore Docker data properly: volumes versus bind mounts, consistent database dumps, volume archives, scheduled backups and a tested restore.
Write Dockerfiles that build fast and produce small, safe images: layer caching, .dockerignore, pinned bases, multi-stage builds, non-root users and secrets.
Probe websites, ports and DNS from outside with the Prometheus Blackbox Exporter: modules, the relabelling scrape config, certificate and downtime alerts.
Record CPU, memory, network and disk use for every Docker container with cAdvisor and Prometheus: lean setup, PromQL, limit and throttling alerts, Grafana.
Run Grafana Loki 3 with Grafana Alloy and Grafana in Docker Compose: a TSDB schema v13 config, host and container log collection, LogQL, retention and alerting.
Find out why a Linux server is slow: load average, vmstat, CPU per core and process, memory pressure, disk latency with iostat, network errors and sar history.
Monitor a Docker host with Prometheus, node_exporter, cAdvisor, Alertmanager and Grafana in Compose: validated configs, alert rules, notifications and backups.
Read SMART data from hard drives and NVMe SSDs with smartctl, know which attributes signal trouble, schedule self-tests and alerts with smartd.
Run Uptime Kuma with Docker Compose, pick the right monitor types, catch silent cron and backup failures with push monitors and publish a status page.
How to deploy an application to an existing AWS EC2 instance — code transfer, process managers, reverse proxy configuration, and keeping it running reliably.
Launch your first EC2 instance on AWS, restrict SSH to your IP, connect with a key pair and install Nginx, with current Free Tier notes and cleanup.
Secure an AWS account with root MFA, IAM Identity Center or an admin user, least-privilege policies, roles over access keys, CloudTrail and budget alerts.
Create your first AWS Lambda function and deploy serverless computing. Learn with practical examples, real-world triggers, and Python deployment patterns.
Serve a static site from a private S3 bucket through CloudFront with Origin Access Control, HTTPS and Route 53, then automate deploys and tear it down.
Build a 3-tier AWS VPC by hand: public, app and data subnets across two AZs, route tables, NAT gateway, ALB, NACLs, Session Manager and Flow Logs.
Run an ESP32 sensor on batteries for months: what deep sleep keeps, a realistic power budget, a fast-wake Arduino sketch, ESPHome and measuring current.
Build an ESP32 climate sensor with ESPHome: write the YAML, flash over USB, read the logs, add it to Home Assistant or MQTT and update it over Wi-Fi.
Run Home Assistant Container with Docker Compose: when to pick it over Home Assistant OS, host networking, a reverse proxy, Zigbee USB, backups and updates.
Wire a BME280 to an ESP32, confirm it with an I2C scan, and log temperature, humidity, station and sea-level pressure over USB with Arduino IDE or arduino-cli.
Train a three-gesture accelerometer model in Edge Impulse and run it offline on an Arduino Nano 33 BLE Sense or ESP32 with an MPU6050, int8 vs float32.
Install the Mosquitto MQTT broker on Linux or Docker, replace anonymous access with per-device passwords and ACLs, design topics, add TLS and test each step.
Control LEDs, buttons, PWM, relays and sensors from Python on any Raspberry Pi, including the Pi 5, with gpiozero: wiring, callbacks and running as a service.
Set up WLED 16 on an ESP32 LED strip controller: power budget, wiring, flashing with the web installer or esptool, Wi-Fi, lock-down settings and Home Assistant.