<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="Electron" agent="Standing Order Agent" version="24.7.17">
  <diagram name="Docker VPS to Local Chrome Tunnel" id="standing-order-docker-vps-to-local-chrome-tunnel">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1900" pageHeight="950" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="d1" value="uses" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="user" target="chrome"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d2" value="HTTPS" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="chrome" target="sns"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d3" value="controls" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="cdp" target="chrome"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d4" value="local target" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="sshclient" target="cdp"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d5" value="SSH -R" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="sshclient" target="internet"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d6" value="encrypted" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="internet" target="sshd"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d7" value="permitted listener" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="sshd" target="gateway"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d8" value="private network" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="worker" target="network"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d9" value="health probe" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="check" target="network"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d10" value="CDP request" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="network" target="gateway"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d11" value="DATABASE_URL" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="app" target="db"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d12" value="service network" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="app" target="network"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="d13" value="never expose" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C8755E;strokeWidth=2;dashed=1;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="gateway" target="public"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="user" value="Household user&#xa;sign in · MFA · review" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#DDF4E6;strokeColor=#4F8B6B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="40" y="90" width="230" height="110" as="geometry"/></mxCell>
        <mxCell id="chrome" value="Dedicated local Chrome&#xa;non-default profile" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#DDF4E6;strokeColor=#4F8B6B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="350" y="90" width="260" height="120" as="geometry"/></mxCell>
        <mxCell id="sns" value="Stop &amp; Shop website&#xa;local browser traffic" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FFFFFF;strokeColor=#80928B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="40" y="360" width="240" height="110" as="geometry"/></mxCell>
        <mxCell id="cdp" value="Loopback CDP&#xa;127.0.0.1:9222" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FDE7E0;strokeColor=#C8755E;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="350" y="360" width="250" height="110" as="geometry"/></mxCell>
        <mxCell id="sshclient" value="Local OpenSSH client&#xa;reverse forward + keepalive" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FFF1D6;strokeColor=#C58A2C;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="350" y="650" width="270" height="120" as="geometry"/></mxCell>
        <mxCell id="internet" value="Encrypted SSH connection&#xa;outbound from local network" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#E4EFFB;strokeColor=#5F88B5;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="730" y="650" width="270" height="120" as="geometry"/></mxCell>
        <mxCell id="sshd" value="VPS OpenSSH server&#xa;dedicated tunnel user" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FFF1D6;strokeColor=#C58A2C;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1090" y="650" width="250" height="120" as="geometry"/></mxCell>
        <mxCell id="gateway" value="Bridge-only listener&#xa;172.30.0.1:9223" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FDE7E0;strokeColor=#C8755E;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1450" y="650" width="260" height="120" as="geometry"/></mxCell>
        <mxCell id="network" value="Compose private bridge&#xa;172.30.0.0/24" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#F2F5F3;strokeColor=#80928B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1450" y="410" width="260" height="110" as="geometry"/></mxCell>
        <mxCell id="worker" value="Future browser worker&#xa;Playwright connectOverCDP" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#DDF4E6;strokeColor=#4F8B6B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1080" y="390" width="270" height="140" as="geometry"/></mxCell>
        <mxCell id="app" value="Prototype app container&#xa;dashboard · health" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#E4EFFB;strokeColor=#5F88B5;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1080" y="90" width="260" height="120" as="geometry"/></mxCell>
        <mxCell id="db" value="PostgreSQL container&#xa;durable MVP data" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#F2F5F3;strokeColor=#80928B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=14;" vertex="1" parent="1"><mxGeometry x="1450" y="90" width="260" height="120" as="geometry"/></mxCell>
        <mxCell id="check" value="chrome-check profile&#xa;CDP readiness probe" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#EEE9FA;strokeColor=#7D68AA;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1080" y="220" width="260" height="100" as="geometry"/></mxCell>
        <mxCell id="public" value="VPS public interface&#xa;CDP port not bound" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FDE7E0;strokeColor=#C8755E;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1450" y="810" width="260" height="90" as="geometry"/></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
