<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://docs.devopsawi.com/</loc>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/shelves/proxmox-tutorials</loc>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/shelves/building-a-kubernetes-platform-on-proxmox</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/shelves/core-lab-infrastructure</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/shelves/devops-internship-program</loc>
    <lastmod>2026-06-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/shelves/ha-services-tutorials</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/public-vm-connectivity-on-hetzner-via-pfsense</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/planning-capacity</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/kubernetes-cluster-kubeadm-calico</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cluster-storage-with-nfs-csi</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/networking-the-api-gateway</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cicd-the-container-registry</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/data-observability</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-lab-end-to-end</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/edge-networking-with-pfsense</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-ssh-bastion-jump-host</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/golden-image-vm-provisioning</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/ubuntu-vm-baseline-tuning</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-git-with-gitea</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/documenting-with-bookstack</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/monitoring-with-influxdb-grafana</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/centralized-logging-with-loki</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-private-registry</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/principles-lessons-learned</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-1-networking-fundamentals</loc>
    <lastmod>2026-05-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/start-here-program-overview</loc>
    <lastmod>2026-05-09</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-2-linux-fundamentals</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-3-shell-scripting</loc>
    <lastmod>2026-05-15</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-4-git-version-control</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-5-common-linux-services</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-6-containerization-docker-podman</loc>
    <lastmod>2026-05-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-8-cicd</loc>
    <lastmod>2026-05-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-9-infrastructure-as-code</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-11-observability-monitoring</loc>
    <lastmod>2026-06-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-10-helm-charts</loc>
    <lastmod>2026-05-30</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13/page/assumptions-debian-13-setup</loc>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13/page/installing-proxmox-ve</loc>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13/page/configuring-the-network-bridge</loc>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13/page/security-hardening</loc>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13/page/proxmox-helper-scripts</loc>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13/page/further-optimization</loc>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/public-vm-connectivity-on-hetzner-via-pfsense/page/overview-choosing-your-method</loc>
    <lastmod>2026-04-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/public-vm-connectivity-on-hetzner-via-pfsense/page/method-1-single-extra-ip-with-mac-reservation</loc>
    <lastmod>2026-04-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/public-vm-connectivity-on-hetzner-via-pfsense/page/method-2-extra-subnet-routed-to-host</loc>
    <lastmod>2026-04-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/public-vm-connectivity-on-hetzner-via-pfsense/page/method-3-hetzner-vswitch</loc>
    <lastmod>2026-04-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking/page/architecture-prerequisites</loc>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking/page/hetzner-robot-vswitch-setup</loc>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking/page/network-configuration-on-each-node</loc>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking/page/creating-the-proxmox-cluster</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking/page/deploying-pfsense-on-the-cluster</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking/page/vm-network-setup</loc>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-lab-end-to-end/page/start-here-what-this-lab-is</loc>
    <lastmod>2026-05-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-lab-end-to-end/page/the-big-picture</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-lab-end-to-end/page/how-a-request-reaches-an-app</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-lab-end-to-end/page/the-address-plan-and-naming</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-lab-end-to-end/page/service-map</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/kubernetes-cluster-kubeadm-calico/page/why-kubeadm-and-not-k3s-or-a-managed-service</loc>
    <lastmod>2026-05-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/kubernetes-cluster-kubeadm-calico/page/preparing-the-nodes</loc>
    <lastmod>2026-05-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/kubernetes-cluster-kubeadm-calico/page/bootstrapping-the-control-plane</loc>
    <lastmod>2026-05-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/kubernetes-cluster-kubeadm-calico/page/joining-the-workers-and-the-firewall-that-blocked-them</loc>
    <lastmod>2026-05-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/kubernetes-cluster-kubeadm-calico/page/the-network-layer-calico-installed-from-a-manifest</loc>
    <lastmod>2026-05-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/kubernetes-cluster-kubeadm-calico/page/keeping-workloads-off-the-control-plane</loc>
    <lastmod>2026-05-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/planning-capacity/page/why-size-things-at-all</loc>
    <lastmod>2026-05-10</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/planning-capacity/page/the-host-and-the-numbers</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/planning-capacity/page/the-thing-that-quietly-eats-your-ram-zfs-arc</loc>
    <lastmod>2026-05-10</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/planning-capacity/page/making-room-right-sizing-live-vms</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/planning-capacity/page/lessons-from-sizing-this-lab</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cluster-storage-with-nfs-csi/page/why-nfs-for-cluster-storage</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cluster-storage-with-nfs-csi/page/the-nfs-server</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cluster-storage-with-nfs-csi/page/the-csi-driver-and-the-default-storageclass</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cluster-storage-with-nfs-csi/page/proving-it-actually-works</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cluster-storage-with-nfs-csi/page/lessons-on-lab-storage</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/networking-the-api-gateway/page/the-bare-metal-loadbalancer-problem</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/networking-the-api-gateway/page/metallb-in-l2-mode</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/networking-the-api-gateway/page/why-an-api-gateway-not-just-an-ingress</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/networking-the-api-gateway/page/kong-backed-by-postgresql</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/networking-the-api-gateway/page/securing-the-admin-surface-the-loopback-trick</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/networking-the-api-gateway/page/tls-lives-at-the-edge-not-in-the-gateway</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cicd-the-container-registry/page/the-build-half-of-the-platform</loc>
    <lastmod>2026-05-22</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cicd-the-container-registry/page/the-gitea-actions-runner</loc>
    <lastmod>2026-05-22</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cicd-the-container-registry/page/docker-out-of-docker-and-custom-job-images</loc>
    <lastmod>2026-05-22</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cicd-the-container-registry/page/pulling-private-images-the-bit-people-trip-on</loc>
    <lastmod>2026-05-22</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cicd-the-container-registry/page/a-pipeline-end-to-end</loc>
    <lastmod>2026-05-22</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/cicd-the-container-registry/page/lessons-on-the-build-pipeline</loc>
    <lastmod>2026-05-22</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/data-observability/page/three-databases-on-purpose</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/data-observability/page/tuning-a-database-for-the-hardware-it-has</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/data-observability/page/every-app-gets-its-own-credentials</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/data-observability/page/seeing-what-the-cluster-is-doing-logs-to-loki</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/data-observability/page/lessons-on-data-and-observability</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/edge-networking-with-pfsense/page/the-front-door</loc>
    <lastmod>2026-04-16</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/edge-networking-with-pfsense/page/nat-how-private-vms-reach-the-world</loc>
    <lastmod>2026-04-16</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/edge-networking-with-pfsense/page/haproxy-one-door-many-rooms</loc>
    <lastmod>2026-04-16</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/edge-networking-with-pfsense/page/tls-terminates-here-once</loc>
    <lastmod>2026-04-16</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/edge-networking-with-pfsense/page/a-gotcha-that-cost-an-afternoon</loc>
    <lastmod>2026-04-16</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-ssh-bastion-jump-host/page/why-a-jump-host</loc>
    <lastmod>2026-04-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-ssh-bastion-jump-host/page/the-proxyjump-pattern</loc>
    <lastmod>2026-04-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-ssh-bastion-jump-host/page/hardening-and-a-host-key-surprise</loc>
    <lastmod>2026-04-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/the-ssh-bastion-jump-host/page/lessons-on-bastion-access</loc>
    <lastmod>2026-04-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/golden-image-vm-provisioning/page/why-golden-images</loc>
    <lastmod>2026-04-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/golden-image-vm-provisioning/page/the-template</loc>
    <lastmod>2026-04-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/golden-image-vm-provisioning/page/injecting-per-vm-identity-with-cloud-init</loc>
    <lastmod>2026-04-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/golden-image-vm-provisioning/page/grow-on-first-boot-and-a-clean-teardown</loc>
    <lastmod>2026-04-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/golden-image-vm-provisioning/page/lessons-on-provisioning</loc>
    <lastmod>2026-04-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/ubuntu-vm-baseline-tuning/page/why-a-baseline-at-all</loc>
    <lastmod>2026-04-23</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/ubuntu-vm-baseline-tuning/page/whats-in-the-baseline</loc>
    <lastmod>2026-04-23</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/ubuntu-vm-baseline-tuning/page/lessons-on-the-baseline</loc>
    <lastmod>2026-04-23</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-git-with-gitea/page/why-self-host-git</loc>
    <lastmod>2026-04-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-git-with-gitea/page/the-server</loc>
    <lastmod>2026-04-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-git-with-gitea/page/the-api-where-automation-hooks-in</loc>
    <lastmod>2026-04-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-git-with-gitea/page/lessons-on-the-git-server</loc>
    <lastmod>2026-04-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/documenting-with-bookstack/page/why-a-wiki-and-why-this-one</loc>
    <lastmod>2026-04-29</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/documenting-with-bookstack/page/the-stack-behind-it</loc>
    <lastmod>2026-04-29</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/documenting-with-bookstack/page/shelves-books-pages</loc>
    <lastmod>2026-04-29</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/documenting-with-bookstack/page/the-fun-part-these-docs-wrote-themselves-via-the-api</loc>
    <lastmod>2026-04-29</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/documenting-with-bookstack/page/lessons-on-documenting-the-lab</loc>
    <lastmod>2026-04-29</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/monitoring-with-influxdb-grafana/page/why-metrics</loc>
    <lastmod>2026-05-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/monitoring-with-influxdb-grafana/page/the-pipeline</loc>
    <lastmod>2026-05-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/monitoring-with-influxdb-grafana/page/two-pillars-one-pane-of-glass</loc>
    <lastmod>2026-05-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/monitoring-with-influxdb-grafana/page/lessons-on-monitoring</loc>
    <lastmod>2026-05-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/centralized-logging-with-loki/page/why-one-place-for-every-log</loc>
    <lastmod>2026-05-04</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/centralized-logging-with-loki/page/loki-the-store</loc>
    <lastmod>2026-05-04</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/centralized-logging-with-loki/page/promtail-everywhere-and-good-labels</loc>
    <lastmod>2026-05-04</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/centralized-logging-with-loki/page/lessons-on-centralized-logging</loc>
    <lastmod>2026-05-04</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-private-registry/page/why-run-your-own-registry</loc>
    <lastmod>2026-05-06</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-private-registry/page/the-stack</loc>
    <lastmod>2026-05-06</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-private-registry/page/garbage-collection-without-races</loc>
    <lastmod>2026-05-06</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/self-hosted-private-registry/page/lessons-on-the-registry</loc>
    <lastmod>2026-05-06</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/principles-lessons-learned/page/read-this-one-even-if-you-skip-the-rest</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/principles-lessons-learned/page/least-privilege-everywhere</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/principles-lessons-learned/page/one-edge-one-door</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/principles-lessons-learned/page/capacity-is-just-arithmetic-done-early</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/principles-lessons-learned/page/reproducible-disposable-observable</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/principles-lessons-learned/page/the-mistakes-the-honest-part</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/principles-lessons-learned/page/if-you-are-new-to-this</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13/page/why-we-build-it-this-way</loc>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/setting-up-proxmox-ve-on-hetzner-root-servers-on-debian-13/page/lessons-learned-gotchas</loc>
    <lastmod>2026-04-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/public-vm-connectivity-on-hetzner-via-pfsense/page/why-we-do-it-this-way</loc>
    <lastmod>2026-04-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/public-vm-connectivity-on-hetzner-via-pfsense/page/lessons-learned-gotchas</loc>
    <lastmod>2026-04-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking/page/why-we-designed-it-this-way</loc>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/building-a-3-node-proxmox-cluster-on-hetzner-with-vswitch-networking/page/lessons-learned-gotchas</loc>
    <lastmod>2026-04-14</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-1-networking-fundamentals/page/lesson-ip-addresses-how-machines-find-each-other</loc>
    <lastmod>2026-05-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-1-networking-fundamentals/page/lesson-subnetting-cidr</loc>
    <lastmod>2026-05-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-1-networking-fundamentals/page/lesson-tcp-udp-ports</loc>
    <lastmod>2026-05-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-1-networking-fundamentals/page/lesson-icmp-network-troubleshooting</loc>
    <lastmod>2026-05-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-1-networking-fundamentals/page/assignment-1-map-the-lab-network</loc>
    <lastmod>2026-05-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-1-networking-fundamentals/page/assignment-2-diagnose-a-broken-connection</loc>
    <lastmod>2026-05-11</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/start-here-program-overview/page/how-this-program-works</loc>
    <lastmod>2026-05-09</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/start-here-program-overview/page/the-12-week-syllabus-timeline</loc>
    <lastmod>2026-05-09</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/start-here-program-overview/page/whats-expected-after-each-module</loc>
    <lastmod>2026-05-09</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/start-here-program-overview/page/how-youll-be-assessed</loc>
    <lastmod>2026-05-09</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-2-linux-fundamentals/page/lesson-how-linux-is-structured</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-2-linux-fundamentals/page/lesson-the-linux-directory-tree</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-2-linux-fundamentals/page/lesson-the-everyday-command-toolkit</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-2-linux-fundamentals/page/lesson-who-can-do-what</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-2-linux-fundamentals/page/lesson-whats-running-and-why</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-2-linux-fundamentals/page/assignment-1-explore-and-explain-a-linux-host</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-2-linux-fundamentals/page/assignment-2-manage-a-service-and-read-its-logs</loc>
    <lastmod>2026-05-13</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-3-shell-scripting/page/lesson-your-first-bash-scripts</loc>
    <lastmod>2026-05-15</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-3-shell-scripting/page/lesson-streams-redirection-exit-codes</loc>
    <lastmod>2026-05-15</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-3-shell-scripting/page/lesson-conditionals-tests</loc>
    <lastmod>2026-05-15</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-3-shell-scripting/page/lesson-loops-arguments-functions</loc>
    <lastmod>2026-05-15</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-3-shell-scripting/page/lesson-scripts-you-can-trust</loc>
    <lastmod>2026-05-15</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-3-shell-scripting/page/assignment-1-a-system-health-check-script</loc>
    <lastmod>2026-05-15</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-3-shell-scripting/page/assignment-2-a-safe-backupparameterised-script</loc>
    <lastmod>2026-05-15</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-4-git-version-control/page/lesson-gits-mental-model</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-4-git-version-control/page/lesson-status-add-commit-log</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-4-git-version-control/page/lesson-branches-merges-conflicts</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-4-git-version-control/page/lesson-working-with-gitea</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-4-git-version-control/page/assignment-1-version-your-module-3-scripts-on-gitea</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-4-git-version-control/page/assignment-2-branch-conflict-resolve-and-open-a-pr</loc>
    <lastmod>2026-05-17</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-5-common-linux-services/page/lesson-web-server-reverse-proxy</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-5-common-linux-services/page/lesson-mysqlmariadb-postgresql</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-5-common-linux-services/page/lesson-a-document-database</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-5-common-linux-services/page/lesson-redis-memcached</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-5-common-linux-services/page/assignment-1-stand-up-nginx-in-front-of-an-app-database</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-5-common-linux-services/page/assignment-2-cache-it-add-redis-and-measure-the-difference</loc>
    <lastmod>2026-05-19</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-6-containerization-docker-podman/page/lesson-images-containers-layers</loc>
    <lastmod>2026-05-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-6-containerization-docker-podman/page/lesson-two-engines-one-standard</loc>
    <lastmod>2026-05-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-6-containerization-docker-podman/page/lesson-how-containers-talk</loc>
    <lastmod>2026-05-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-6-containerization-docker-podman/page/lesson-multi-service-apps-with-compose</loc>
    <lastmod>2026-05-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-6-containerization-docker-podman/page/lesson-dockerfiles-best-practices</loc>
    <lastmod>2026-05-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-6-containerization-docker-podman/page/assignment-1-containerize-an-app-and-push-it-to-the-registry</loc>
    <lastmod>2026-05-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-6-containerization-docker-podman/page/assignment-2-compose-a-multi-service-stack</loc>
    <lastmod>2026-05-21</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/lesson-what-kubernetes-is-and-why</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/lesson-pods-deployments-daemonsets-statefulsets</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/lesson-one-shot-and-scheduled-work</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/lesson-sidecars-init-containers</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/lesson-services-ingress</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/lesson-configmaps-secrets</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/lesson-volumes-pvs-pvcs-storageclasses</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/assignment-1-deploy-a-stateless-app-and-expose-it</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-7-kubernetes-orchestration/page/assignment-2-run-a-stateful-workload-with-a-pvc</loc>
    <lastmod>2026-05-24</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-8-cicd/page/lesson-continuous-integration-delivery</loc>
    <lastmod>2026-05-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-8-cicd/page/lesson-pipelines-with-github-actions</loc>
    <lastmod>2026-05-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-8-cicd/page/lesson-bitbucket-pipelines-jenkins</loc>
    <lastmod>2026-05-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-8-cicd/page/lesson-pull-based-deployment-with-argo-cd</loc>
    <lastmod>2026-05-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-8-cicd/page/assignment-1-build-and-push-pipeline-on-the-lab-runner</loc>
    <lastmod>2026-05-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-8-cicd/page/assignment-2-gitops-deploy-your-app-with-argo-cd</loc>
    <lastmod>2026-05-26</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-9-infrastructure-as-code/page/lesson-what-infrastructure-as-code-means</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-9-infrastructure-as-code/page/lesson-provisioning-with-terraform</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-9-infrastructure-as-code/page/lesson-configuration-management-with-ansible</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-9-infrastructure-as-code/page/lesson-first-boot-bootstrap-and-code-native-iac</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-9-infrastructure-as-code/page/lesson-when-to-use-which</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-9-infrastructure-as-code/page/assignment-1-write-a-cloud-init-config-for-a-new-vm</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-9-infrastructure-as-code/page/assignment-2-a-small-ansible-playbook-or-terraform-plan-walkthrough</loc>
    <lastmod>2026-05-28</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-11-observability-monitoring/page/lesson-logs-metrics-traces</loc>
    <lastmod>2026-06-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-11-observability-monitoring/page/lesson-dashboards-exploring-alerts</loc>
    <lastmod>2026-06-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-11-observability-monitoring/page/lesson-the-collector</loc>
    <lastmod>2026-06-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-11-observability-monitoring/page/lesson-loki-mimir-tempo</loc>
    <lastmod>2026-06-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-11-observability-monitoring/page/assignment-1-capstone-ship-a-full-stack-end-to-end</loc>
    <lastmod>2026-06-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-11-observability-monitoring/page/assignment-2-build-a-dashboard-and-a-working-alert</loc>
    <lastmod>2026-06-01</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-10-helm-charts/page/lesson-what-helm-is-and-why</loc>
    <lastmod>2026-05-30</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-10-helm-charts/page/lesson-anatomy-of-a-chart</loc>
    <lastmod>2026-05-30</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-10-helm-charts/page/lesson-installing-managing-releases</loc>
    <lastmod>2026-05-30</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-10-helm-charts/page/lesson-writing-your-first-chart</loc>
    <lastmod>2026-05-30</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-10-helm-charts/page/assignment-1-install-an-app-from-a-public-chart</loc>
    <lastmod>2026-05-30</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/module-10-helm-charts/page/assignment-2-package-your-app-as-a-chart</loc>
    <lastmod>2026-05-30</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy/page/overview-architecture</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy/page/environment-prerequisites</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy/page/etcd-the-distributed-configuration-store</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy/page/postgresql-18-patroni-install-configure</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy/page/bootstrapping-the-cluster</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy/page/haproxy-connection-routing</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy/page/failover-recovery-testing</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
  <url>
    <loc>https://docs.devopsawi.com/books/postgresql-high-availability-with-patroni-etcd-haproxy/page/production-hardening-troubleshooting</loc>
    <lastmod>2026-06-08</lastmod>
  </url>
</urlset>
