Skip to content
Projects
Live in operation2026AnsibleBashLinuxProxmox VEDebian

Hybrid Self-Hosted Infrastructure & Operations

An Ansible-managed hybrid infrastructure lab that separates public ingress from private administration across Linux and Windows systems, with Azure Arc governance, monitoring and representative recovery validation.

Role

I designed, configured and now operate this hybrid infrastructure lab, including its public/private boundaries, Linux and Windows administration, Ansible automation, host firewalls, Azure Arc integration, monitoring and recovery validation.

Key results

Public / private split
Ingress and administration
Linux + Windows
Ansible-managed configuration
Outbound HTTPS
Azure Arc governance
Restore tested
Isolated recovery evidence

Problem

Selected web workloads needed a controlled public entry point while administration remained private across local and external compute. The environment also needed repeatable Linux and Windows configuration, runtime visibility, protected backups with recovery evidence, and cross-environment governance without moving the systems into Azure.

Architecture overview

The lab spans a Public Edge VPS, an on-site Proxmox and Debian platform, and an external Windows Server environment. Tailscale carries private administration and the edge-to-application path; Git and Ansible provide version-controlled desired state and automated Linux and Windows configuration. Azure Arc adds outbound-only inventory and governance without hosting the managed systems.

Figure 1 — High-level Hybrid Infrastructure

High-level view of the hybrid infrastructure, showing public ingress, local and external compute, private configuration management, and cross-environment governance and operations.

Open full diagram
High-level hybrid infrastructure overview showing a Public Edge VPS, an on-site Proxmox and Debian platform, a private Windows Server lab, Tailscale with Git and Ansible for administration, and Azure Arc, monitoring, backup and recovery as cross-environment operational capabilities.

Design decisions

  • Public Edge VPS: keeps public HTTP/HTTPS ingress separate from the main application host and exposes no administrative service publicly
  • Tailscale: provides encrypted private connectivity for administration and distributed system paths without opening management services to the internet
  • Proxmox and the On-site Server: separate the local virtualization layer from Debian and Docker Compose application workloads
  • Hybrid Windows Lab: adds practical Windows Server administration and hardening while remaining isolated from public ingress
  • Git and Ansible: provide version-controlled desired state, repeatable Linux and Windows configuration, check-mode review, audits and idempotency checks
  • Azure Arc: adds inventory and governance across environments without replacing Ansible, Tailscale or the underlying compute platforms

Architecture and trust boundaries

Figure 2 — Architecture and Trust Boundaries

Hybrid infrastructure deployment showing public ingress, private administration over Tailscale, and outbound Azure Arc governance.

Open full diagram
Detailed hybrid infrastructure architecture showing Internet and public DNS, a Public Edge VPS, an on-site Proxmox-hosted Debian server, private Tailscale administration, an external Windows Server lab, monitoring, and outbound Azure Arc governance.
Application, management and control-plane paths

Implementation and automation

Git stores the desired configuration and operational documentation. Ansible applies Linux configuration through SSH and Windows configuration through WinRM over Tailscale. Relevant changes are reviewed with syntax checks, check mode and diffs before application; assertions, post-change verification and repeated runs cover connectivity-sensitive firewall, SSH and RDP changes. The Administration Controller also acts as the first canary for reviewed Linux hardening changes.

Security model

The security model uses defense in depth: public ingress is separated from administration, management paths use Tailscale, and host firewalls restrict inbound access. The Public Edge VPS uses UFW and Fail2ban; the On-site Server combines UFW with a persistent Docker-aware firewall policy that limits the private web listeners to the trusted edge peer. CrowdSec consumes reverse-proxy logs with the preserved client address for detection and community threat intelligence; no active bouncer is claimed. On Windows, Microsoft Defender and Windows Firewall remain enabled, RDP requires Network Level Authentication, WinRM Basic authentication and unencrypted communication are disabled, SMBv1 is disabled, insecure SMB guest logons are blocked, and IIS remains private.

Hybrid Windows Lab and Azure Arc Governance

The separate Windows Server 2022 Datacenter environment broadens the lab beyond Linux and Docker operations. Azure Arc represents both the Hybrid Windows Lab and On-site Debian Server as connected hybrid machines through outbound HTTPS for inventory, tags and control-plane visibility. Tailscale remains the private administration path, while paid Azure extensions and Azure benefits remain disabled.

Implementation

  • Tailscale provides the private administration path. Public RDP, WinRM and IIS access was tested and confirmed closed; Windows Firewall restricts RDP, WinRM and the private IIS site to the administration workstation.
  • Ansible manages Windows roles and firewall state over PowerShell and WinRM with NTLM message encryption. Basic authentication and unencrypted WinRM payloads are disabled, while credentials remain in an encrypted vault outside Git.
  • A dedicated hardening playbook creates the restricted RDP rule before disabling broad built-in RDP rules, verifies the resulting firewall state and connectivity, and restores the prior rules on verification failure.
  • A read-only security audit checks Defender, firewall profiles, RDP with Network Level Authentication, SMB settings, local administration, TLS configuration and update state. SMBv1 server support and insecure SMB guest logons are disabled.
  • Azure Arc onboarding for the On-site Debian Server and Hybrid Windows Lab, the private IIS configuration, security audit and remote-access hardening are documented as code.

This enterprise-inspired lab demonstrates practical Windows Server 2022 administration, Azure Arc onboarding for Windows and Debian, and PowerShell/WinRM automation. It is not a production Windows workload or an Azure-hosted compute environment and does not carry public application traffic.

Operations, automation and recovery

Figure 3 — Operations, Automation and Recovery

Infrastructure operations workflow covering version-controlled configuration, validation, Ansible automation, monitoring, backup integrity, and representative recovery testing.

Open full diagram
Infrastructure operations workflow from Git-based desired state through pre-deployment validation, Ansible configuration management, post-change verification, continuous monitoring, recurring backups, and representative application/data recovery validation.

Verification evidence

  • Debian Azure Arc audit: changed=0, unreachable=0, failed=0.
  • Windows security audit: no baseline violations; changed=0, unreachable=0, failed=0.
  • Windows remote-access hardening idempotency check: changed=0, failed=0.
  • Private IIS validation: public access remained blocked while private access over Tailscale returned HTTP 200.
  • Recovery validation: SHA-256 and archive checks passed; PostgreSQL was restored to an isolated temporary container and ClickHouse filesystem extraction was verified.

Monitoring and operations

Uptime Kuma monitors internal service availability, Better Stack provides an external website check and an independent host heartbeat, Netdata provides host metrics, and CrowdSec contributes detection visibility. A recurring systemd health check covers disk state and backup freshness, with operational notifications sent through Telegram.

Figure 4 — Sanitized Operations Dashboard

Sanitized operational overview showing documented service management, security visibility, hybrid governance, and recovery validation.

Open full diagram
Sanitized operations dashboard showing three managed environments, private administration, Azure Arc governance, configuration automation, monitoring, security controls, and representative application/data recovery validation.

Backup and recovery

The backup workflow uses fail-fast execution, locking, atomic archive publication, restricted permissions, integrity checks and SHA-256 checksum sidecars. Recovery checks go beyond backup creation: Restic repository integrity and full-data-read checks passed, PostgreSQL was restored to an isolated temporary container with 50 application tables present, and ClickHouse filesystem extraction was verified before temporary plaintext staging data was removed. This is representative application/data recovery evidence, not a completed full-infrastructure disaster-recovery test.

Backups are not treated as sufficient until recovery has been tested.

Current limitations

The environment is intentionally small and does not provide high availability or automatic failover. The external Restic copy is operator-triggered rather than scheduled, and current recovery evidence covers application and database data rather than complete infrastructure reconstruction. Some resource provisioning remains outside Ansible-managed configuration.

Next improvement

Add a second rotated or independent immutable backup destination and establish a verified recurring VPS backup.

Engineering takeaways

  • Architecture diagrams are clearer when compute, connectivity, configuration management, governance and observability are shown as distinct concerns.
  • Private administration reduces public attack surface, but it still requires host-level firewall and authentication controls.
  • Configuration automation becomes more reliable when paired with review, read-only audits, post-change checks and idempotency verification.
  • Backup integrity is incomplete until representative data has been restored and checked in isolation.
  • Hybrid governance does not require centralizing every workload on one cloud platform.

Technology

Compute & operating systems

Proxmox VEUbuntu Server 22.04Debian 13Windows Server 2022

Containers & ingress

Docker ComposeNginxNginx Proxy Manager

Automation & private management

GitAnsibleBashTailscalePowerShellSSHWinRM

Hybrid governance

Azure ArcAzure Resource Graph

Security

UFWFail2BanCrowdSecMicrosoft DefenderWindows Firewall

Monitoring & Recovery

Uptime KumaNetdatasystemdResticTelegram