Ahmad Gul Zadran

Ahmad Gul Zadran

IT Support Engineer – Active Directory, Microsoft 365 and identity.

Profile

in IT since 2008

I keep Windows environments working for the people who depend on them: accounts and access, Microsoft 365, endpoints, and the second-level problems that do not have an obvious answer. I have worked in IT since 2008, first supporting international organisations operating in difficult conditions in Afghanistan, and now in enterprise IT in Germany.

Alongside that I run a home laboratory that behaves less like a hobby and more like a small production environment: two Proxmox nodes running around twenty machines, kept standalone on purpose, a Windows Server 2025 Active Directory domain, pfSense and UniFi handling routing, firewalling, switching and VLANs, TrueNAS and ZFS storage replicated to a second NAS, Proxmox Backup Server, and Prometheus and Grafana watching all of it. I am currently building a Microsoft Configuration Manager site there, working through client management, distribution points, software updates, PXE and Windows 11 deployment end to end.

That is where the guides come from. Each one describes something I have built and finished myself, written down properly so the next person does not have to work it out twice.

Lab

nothing exposed inbound

The lab, right now

stalereported 12 h ago·as JSON

No sample in the last 45 minutes, so these numbers are the last known ones rather than current.

  • 10Guests running
  • 66%Memory in use
  • tunnelup
  • nasdown
  • backup-nassleeping
  • backupup
  • jellyfindown
  • immichdown
  • dnsup
  • proxmoxup
Last 30 days — 2 of 17 reported days with every service up.
  1. 2026-10-12: no samples
  2. 2026-10-13: no samples
  3. 2026-10-14: no samples
  4. 2026-10-15: no samples
  5. 2026-10-16: no samples
  6. 2026-10-17: no samples
  7. 2026-10-18: no samples
  8. 2026-10-19: no samples
  9. 2026-10-20: no samples
  10. 2026-10-21: no samples
  11. 2026-10-22: no samples
  12. 2026-10-23: no samples
  13. 2026-10-24: no samples
  14. 2026-10-25: 5 of 41 samples degraded
  15. 2026-10-26: 1 of 80 samples degraded
  16. 2026-10-27: all services up
  17. 2026-10-28: 1 of 77 samples degraded
  18. 2026-10-29: 4 of 79 samples degraded
  19. 2026-10-30: 1 of 61 samples degraded
  20. 2026-10-31: all services up
  21. 2026-11-01: 53 of 53 samples degraded
  22. 2026-11-02: 88 of 88 samples degraded
  23. 2026-11-03: 85 of 85 samples degraded
  24. 2026-11-04: 69 of 69 samples degraded
  25. 2026-11-05: 88 of 88 samples degraded
  26. 2026-11-06: 43 of 43 samples degraded
  27. 2026-11-07: 73 of 73 samples degraded
  28. 2026-11-08: 83 of 83 samples degraded
  29. 2026-11-09: 58 of 58 samples degraded
  30. 2026-11-10: 35 of 35 samples degraded
  • all up
  • degraded
  • no data

Pushed out by a signed agent every quarter hour. Nothing on this site can reach into the network, and nothing here is an address.

How the lab fits together

Built the way a small production environment is built: nothing exposed inbound, identity in front of anything that writes, and a copy of the data somewhere that cannot be reached from the machine holding the original. Select a box to read what it does.

Inbound
Nothing is port-forwarded. Internal services leave through a tunnel that dials out.
Identity
Access settles who you are before a request reaches any code, and the site checks the token itself.
Copies
The backup NAS pulls from the primary, so ransomware there cannot reach the copy.
CloudflareInternetDNS and WAFpublic entry pointZero Trust Accessguards /adminSite Workerthis site · D1 · R2Tunnelno open portspfSenserouting, VLANsTunnel connectoroutbound onlytunnel: upUniFi switch2.5G, one 10G uplinkDNS resolverfiltering, AD forwarddns: upProxmox · mainthe lab, around twenty guestsproxmox: upProxmox · pve2always-on, standaloneNAS · primaryTrueNAS, ZFSnas: downNAS · backuppulls, never pushesbackup-nas: sleepingUPSNUT, sharedDomain controllerNextcloud + OfficeHome AssistantEndpoint mgmt labDomain controller 2DNS resolver 2Backup serverbackup: upPrometheus + GrafanaStatus pageDisk healthWANservicesoutbound10G2.5GbackupsdatastorepullNUT
  • Internet

    A domestic cable line with a changing address. Nothing is port-forwarded to it, which is the single decision the rest of this diagram is built around.

  • DNS and WAF

    Every public request lands here first, never on a home address. The same zone is also an internal Active Directory domain, which needs a delegation to keep both halves resolving.

    Guide: how this one was built

  • Zero Trust Access

    Identity is settled before a request reaches any code. The site verifies the resulting token independently rather than trusting the header, so a misconfigured policy cannot quietly open the editor.

  • Site Worker

    The pages you are reading. Server-rendered at the edge, content in a SQL database, images in object storage, no server to patch.

    Guide: how this one was built

  • Tunnel

    Internal services are published by a connector that dials out. There is no inbound rule anywhere on the router, so there is no inbound rule to get wrong.

  • pfSense

    The LAN edge. Separate VLANs for trusted devices, IoT and guests, and every DNS query on the network is forced through the filtering resolvers, whatever a device has configured.

  • Tunnel connector

    A small container that holds the tunnel open from the inside. If it stops, published services disappear from the internet and nothing else changes.

  • UniFi switch

    Eight 2.5G ports and a single 10G uplink, which makes "what deserves the 10G port" a real decision: the hypervisor or the storage it reads from.

  • DNS resolver

    Filters for the whole network over encrypted upstreams and forwards the Active Directory zone to the domain controllers, so domain members and phones both resolve correctly. A second copy runs on the other node.

    Guide: how this one was built

  • Proxmox · main

    The main node, carrying the lab itself. Memory, not CPU, is the limit -- it was twice overcommitted until the guests were right-sized and page sharing was turned back on.

    Guide: how this one was built

  • Domain controller

    Active Directory and the authoritative internal DNS. Right-sized from 16 GB to 6 GB once its real committed memory turned out to be under 5 GB.

  • Nextcloud + Office

    The family cloud with Euro-Office for documents, in one VM with Docker Compose and published through the tunnel. It replaced OneDrive, behind strong passwords and two-factor sign-in.

    Guide: how this one was built

  • Home Assistant

    Home automation, including Matter and Thread devices -- the reason IoT gets its own VLAN and the reason multicast between VLANs had to be understood properly.

  • Endpoint mgmt lab

    A Configuration Manager site built alongside the domain to practise collections, application deployment, patching and bare-metal Windows deployment.

    Guide: how this one was built

  • Proxmox · pve2

    A small second node for everything that has to keep running while the main one is down for maintenance. Standalone on purpose: a two-node cluster loses quorum the moment either node stops.

  • Domain controller 2

    A second domain controller on the other node, so sign-ins and internal DNS survive the main node being down.

    Guide: how this one was built

  • DNS resolver 2

    A copy of the filtering resolver, kept in sync with the first, and handed out alongside it -- so DNS keeps working when either one, or the node under it, stops.

    Guide: how this one was built

  • Backup server

    Deduplicated nightly backups of every guest on both nodes, stored on the primary NAS. It lives on the second node so a broken main node never takes its own backups with it.

    Guide: how this one was built

  • Prometheus + Grafana

    Prometheus scrapes both nodes, the NAS, the network and the backups into its time-series database; Grafana draws it. The dashboards are what turned the swap problem from a feeling into a number.

    Guide: how this one was built

  • Status page

    Uptime Kuma checks every service each minute, sends phone alerts, and gives the family a page of green and red -- with an outside check watching the watcher.

    Guide: how this one was built

  • Disk health

    One page with the health and temperature of every disk in the house, fed by both NAS units, so a failing drive is a warning rather than a surprise.

    Guide: how this one was built

  • NAS · primary

    The pool everything else depends on: media, photos, and the backup datastore. Migrated off the vendor OS with rsync, keeping ownership and timestamps intact, so nothing had to be re-indexed afterwards.

    Guide: how this one was built

  • NAS · backup

    A second box that reaches out and pulls. A pull model means ransomware on the primary cannot reach the copy, because the copy holds the only credentials.

  • UPS

    Battery backup reporting over the network so more than one machine can shut down cleanly.

    Guide: how this one was built

Guides

22 published

Recent guides

Walkthroughs of work that is finished and running, written so the commands can be copied and run.

All 22 guides

Tools

runs in your browser

The arithmetic I keep redoing, written down once

Each calculator runs entirely in your browser. Nothing is submitted and nothing is stored.

  • ZFS and RAIDZ capacity calculator

    How much of a pool you actually get to use, once parity, the TB-to-TiB conversion and the 80% fill line have taken their share.

  • UPS runtime estimator

    How long the batteries hold at a given load, and whether that is long enough for everything to shut down cleanly.

  • Subnet and CIDR calculator

    Network, broadcast, usable range, mask and wildcard for any IPv4 prefix — including the /31 and /32 cases most calculators get wrong.

  • Proxmox memory overcommit planner

    Add up what the guests are allowed to take, subtract what the host and ARC need, and find out before the swapping starts.

Experience

since 2008

Germany

2024 – present

IT Support Engineer

Avaso Technology Solutions

Enterprise IT support across Germany: user accounts and permissions, Microsoft 365 and Okta administration, IT asset management, and second-level incidents resolved alongside the infrastructure, network and security teams.

present

Windows systems administration

Home laboratory, self-directed, Stuttgart

A Proxmox cluster of around twenty virtual machines and containers: a Windows Server 2025 Active Directory domain, pfSense routing and firewalling, UniFi switching and VLANs, TrueNAS SCALE and ZFS storage with scheduled replication to a second NAS, Proxmox Backup Server, and a Prometheus and Grafana monitoring stack. Currently building a Microsoft Configuration Manager site covering client management, distribution points, software updates, PXE and Windows 11 deployment.

Afghanistan

2016 – 2021

IT and Radio Operations

GIZ GmbH, Samangan

IT operations and end-user support for a provincial office, combined with radio communications keeping the office reachable when other links were not dependable.

2010 – 2016

IT Officer

GIZ GmbH, Kunduz

Windows workstations, accounts and access control, backups and updates, network and internet services, hardware lifecycle and software licensing. Coordinated the IT side of the move from the Kunduz office to Samangan.

2008 – 2010

IT Officer

Medical Emergency Relief International (Merlin), Kunduz

IT operations, end-user support, data protection and backups for a medical relief mission, with documentation, user training and vendor coordination.

Skills

8 areas

Windows Server and directory services

  • Windows Server 2025
  • Active Directory
  • DNS and reverse zones
  • LDAPS and channel binding
  • Okta
  • Entra ID
  • Joiner, mover, leaver
  • Permissions and access reviews
  • ADManager Plus

Endpoint management

  • Microsoft Configuration Manager
  • Distribution points
  • Software update management
  • PXE and OS deployment
  • Windows ADK and WinPE
  • Intune
  • Windows 10 and 11

Security

  • Zero Trust access control
  • Multi-factor authentication
  • Network segmentation and VLAN isolation
  • Firewall policy
  • BitLocker and recovery key management
  • Ransomware-resistant backup design
  • Least-privilege access control
  • Web application hardening
  • Secrets management
  • Dependency and vulnerability scanning

Virtualisation and storage

  • Proxmox VE
  • KVM and LXC
  • Proxmox Backup Server
  • TrueNAS SCALE
  • ZFS
  • Snapshots and replication
  • Docker

Networking

  • pfSense
  • UniFi
  • VLANs
  • LAN, Wi-Fi and VPN
  • Twingate & Tailscale
  • Cloudflare Tunnel

Microsoft 365

  • Microsoft 365
  • Teams
  • SharePoint
  • OneDrive
  • Outlook

Monitoring and service management

  • Prometheus
  • Grafana
  • Zabbix
  • ServiceNow
  • Jira Service Management
  • Incident and problem management
  • Asset lifecycle
  • Technical documentation

Languages

  • German (B2)
  • English

Get in touch

Questions about a guide, or about the lab? LinkedIn is where to find me.

LinkedIn