Infrastructure reference · desertmountaincorp.com

How DMM-000 is wired together

One machine, two access paths, and a workstation it talks to constantly. This is the map for anyone (including future-you) trying to remember why a request goes where it goes.

01

Getting to the server

Two doors into the same house — one public and narrow, one private and wide open.

Public internet any visitor, any scanner VPN client your phone / laptop, anywhere HTTPS :443 only OpenVPN tunnel Home router (TP-Link) port-forward 80/443 → 192.168.0.155 OpenVPN server to DMM-000 only to the whole LAN home LAN — 192.168.0.0/24 DMM-STATION020 .149 · dev workstation MySQL: pfc, viewmyhealth, rgsales Nightly backup tasks 2:00-2:20am RDP reachable via VPN only DMM-000 .155 (DHCP reservation) · Windows 11 Pro Traefik → pingate (PIN check) → site containers running in WSL2 (Docker), not a separate OS C: SSD — OS, Docker, site code, git repos D: parity array — 1.86TB, survives 1 drive failure nightly DB dumps land here RDP + admin.desertmountaincorp.com reachable via VPN only, not the internet SSH git-deploy
Public traffic is forwarded to DMM-000 alone, on ports 80/443 only. A VPN connection instead joins the whole LAN, which is how RDP and the admin page are reached without ever exposing them publicly.
public internet path VPN / private path
02

Inside DMM-000: one request's trip

What actually happens between a browser hitting a URL and a page coming back.

Browser dmm.desert- mountaincorp.com Traefik reverse proxy, auto HTTPS certs has valid PIN cookie? pingate checks / shows PIN page verified Site container php:8.3-apache runs the actual site C:\sites\dmm code on C: SSD, updated by git pull
Every public site shares this same chain. admin.desertmountaincorp.com skips the PIN step entirely and instead checks the caller's IP is inside the LAN or VPN range.
03

Dev ↔ server workflow

Everything moves through one SSH account, in both directions.

Code

Commit on either machine, push/pull through a shared bare repo.

DMM-STATION020 → git push →
C:\git-repos\<site>.git → git pull →
C:\sites\<site>

Databases

One-way, nightly. Never committed to git.

DMM-STATION020: mysqldump → zip → scp →
D:\Backups\<site>-db\ (14-day rotation)

Both travel over SSH as git-deploy — a dedicated, non-admin Windows account on DMM-000 with key-only login, scoped to C:\git-repos and the backup folders and nothing else on the machine.

04

Where each site actually lives

SiteAccessLive productionOn DMM-000
demopublic · PINgit + container
dmm (desertmm.com)public · PINSiteGroundgit + container
ylfboutiquepublic · PINSiteGroundgit + container
rgs (r-gsales.com)public · PINSiteGroundgit only, container pending
pfcinternal onlyDMM-STATION020git + nightly DB dump
viewmyhealthinternal · PHISiteGroundgit (no uploads/secrets) + nightly DB dump
rgs-toolsinternal onlySiteGroundgit + nightly DB dump

"Internal only" sites are listed by name on the admin page with no link and no PIN — reachable only if you already know the address, and only from the LAN or VPN.

05

Security calls made along the way