Skip to content
View reprodev's full-sized avatar

Block or report reprodev

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
reprodev/README.md

Hi, I’m ReproDev (Khurram). Taking technology apart since I was a kid. These days I basically run a home data centre. I write down how it works so you can do it yourself and learn along the way.

Live architecture dashboard at khurramnazir.com Guides and knowledge base at reprodev.com

Hashnode Bluesky Reddit


Start here, whatever your level

Everything I write is for all skill levels, from complete beginner to expert. The guides run from your very first container through to zero-trust networking, infrastructure as code and Kubernetes.

New to self-hosting? The Docker series takes you from nothing installed to a running stack, one part at a time. No prior experience needed.

Start the Docker series


GitHub stars on LGTV-Firmware-Downgrade 9 fleet nodes 65 or more services 12 self-built tools


Think Pieces

Weekly, on where tech is heading. Written by someone who has been pulling technology apart since he was a kid, and still is.

The Corporate Creep of Plex: Why It May Be Time to Move to Jellyfin Ad-supported tiers, centralised auth and a $750 lifetime pass. What you give up when the media server you run at home starts answering to someone else.

New piece every Thursday.

All think pieces


Guides

Read more at reprodev.com


Featured work

LGTV-Firmware-Downgrade Downgrading webOS firmware on LG TVs so you can root them. The guide the rooting community forks.

Capo2Keys Converts guitar chord charts to piano keys and keeps the lyrics lined up. Built with Python and Flask.

PowerCSR A GUI for generating certificate signing requests, so you don’t have to remember the OpenSSL flags. Built with PowerShell.

Exchange-ToolboxV2 Menu-driven mailbox administration for Microsoft Exchange.

More tools

The homelab

A home data centre that runs itself. Every machine is configured from code, so nothing is set up by hand and then forgotten about.

flowchart TB
  NET["Internet"] --> CF["Cloudflare Tunnel<br/>HA pair"]
  NET -. admin VPN .-> TS["Tailscale"]
  CF --> PVE["Proxmox VE"]
  TS --> PVE
  ANS["Ansible · GitOps"] -. declarative state .-> PVE
  PVE --> DOCK["Docker stacks"]
  PVE --> PI["Bare-metal control node"]
  DOCK --> OBS["Grafana · Prometheus"]
  DOCK --> SVC["DNS · Vaults · Media"]
Loading
  • Nothing is exposed to the internet. Traffic arrives through a redundant pair of Cloudflare tunnels, and I get in over a private Tailscale network. No ports open on the router.
  • Two layers of hardware. A Proxmox hypervisor runs the virtual machines, and a Raspberry Pi (pibuster4) sits alongside it on bare metal as the control node.
  • Configured from a git repo. Ansible pushes the same declared state to every machine, so rebuilding one is a command rather than an afternoon.
  • DNS that survives a reboot. Two Pi-hole resolvers kept in sync, so ad-blocking and name resolution don’t die with one box.
  • The monitoring lives somewhere else. The main status monitor runs on its own separate hardware, so when a machine goes down the thing watching it is still up to tell me.
  • CI checks the infrastructure hasn’t drifted. A nightly pipeline compares what Terraform says should exist against what actually does, and flags the difference.

Tech stack

Virtualisation and compute

Proxmox VE LXC Hyper-V Raspberry Pi Linux Ubuntu Server Debian DietPi Windows Server

Containers and orchestration

Docker Docker Compose Portainer Watchtower cAdvisor K3s Argo CD

Automation and infrastructure as code

Ansible Terraform Packer Bash PowerShell Python GitLab CI Git

Networking and zero trust

Cloudflare Tunnel Cloudflare Zero Trust Tailscale WireGuard Pi-hole OPNsense Nginx Proxy Manager Apache Guacamole

Full stack including observability, security, storage, Microsoft, media and web

CI/CD and DevSecOps

Trivy Checkov Gitleaks pre-commit Dependabot

Observability

Prometheus Grafana Alertmanager Node Exporter Blackbox Exporter Uptime Kuma Dozzle Glances

Storage, backup and security

OpenMediaVault Samba and NFS Veeam Cockpit Vaultwarden OpenSSL and PKI

Microsoft and enterprise

Azure Azure Monitor and KQL Azure Arc Exchange Active Directory

Media and self-hosting

Plex Jellyfin Tautulli Kometa Sonarr Radarr Lidarr Prowlarr qBittorrent NZBGet Slskd Threadfin TubeArchivist Gluetun

Dev and web

Node.js and Express React and Vite Flask Ghost Code Server

Currently migrating core services from Docker to Kubernetes (K3s).


Tools I built for the lab

Twelve small web portals I wrote to run the place: restore verification, DNS failover health, container-to-Kubernetes resource sizing and hardware allocation. They run on the control node and aren’t public, but they are the reason the fleet is manageable by one person.

Node.js and Express React and Vite


Also building

Service Desk Sim, a game about the job. servicedesksim.com


khurramnazir.com reprodev.com

Away from the terminal I make music at allcloudsrun.com.

Pinned Loading

  1. LGTV-Firmware-Downgrade LGTV-Firmware-Downgrade Public

    A guide on downgrading the firmware on LG TVs containing webOS so that you can root the TV

    145 1k

  2. Capo2Keys Capo2Keys Public

    Tool to convert guitar capo chord charts into piano-ready keys while preserving lyrics and chord structure. Flask-based Web UI with a Docker version for ease of deployment

    Python

  3. PowerCSR PowerCSR Public

    A GUI form built in Powershell to efficiently generate a CSR and Private Key file using OpenSSL for quick and easy cert generation

    PowerShell 20 3

  4. Exchange-ToolboxV2 Exchange-ToolboxV2 Public

    A menu-based GUI toolbox built in Powershell to efficiently perform Admin Tasks for Mailboxes and Calendars for Service Desk Analysts and Deskside Engineers in Microsoft Exchange

    PowerShell 1

  5. GIPHY-Linker GIPHY-Linker Public

    A GUI tool built in Powershell to quickly generate the line of HTML code to embed a GIF into a Blog like Dev.To from a GIF site like GIPHY.com

    PowerShell 2

  6. DevToEmbedder DevToEmbedder Public

    A GUI tool built in Powershell to help with embedding content onto Dev.To and other blogs

    PowerShell