65 lines
3.7 KiB
XML
65 lines
3.7 KiB
XML
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 420" font-family="Microsoft YaHei, PingFang SC, Helvetica, Arial, sans-serif">
|
||
|
|
<defs>
|
||
|
|
<filter id="shadow" x="-2%" y="-2%" width="104%" height="104%">
|
||
|
|
<feDropShadow dx="1" dy="1" stdDeviation="2" flood-opacity="0.12"/>
|
||
|
|
</filter>
|
||
|
|
<marker id="arrow" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
|
||
|
|
<path d="M 0 0 L 10 5 L 0 10 z" fill="#6c8ebf"/>
|
||
|
|
</marker>
|
||
|
|
<marker id="arrow-gray" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
|
||
|
|
<path d="M 0 0 L 10 5 L 0 10 z" fill="#999"/>
|
||
|
|
</marker>
|
||
|
|
<marker id="arrow-green" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
|
||
|
|
<path d="M 0 0 L 10 5 L 0 10 z" fill="#82b366"/>
|
||
|
|
</marker>
|
||
|
|
</defs>
|
||
|
|
|
||
|
|
<!-- User -->
|
||
|
|
<rect x="280" y="15" width="140" height="45" rx="8" fill="#dae8fc" stroke="#6c8ebf" stroke-width="1.5" filter="url(#shadow)"/>
|
||
|
|
<text x="350" y="43" font-size="14" fill="#333" text-anchor="middle" font-weight="bold">User</text>
|
||
|
|
|
||
|
|
<!-- Arrow: User → nginx -->
|
||
|
|
<line x1="350" y1="62" x2="350" y2="95" stroke="#6c8ebf" stroke-width="2" marker-end="url(#arrow)"/>
|
||
|
|
<text x="365" y="83" font-size="10" fill="#6c8ebf">HTTP</text>
|
||
|
|
|
||
|
|
<!-- Docker Compose 外框 -->
|
||
|
|
<rect x="80" y="100" width="540" height="170" rx="10" fill="none" stroke="#82b366" stroke-width="2" stroke-dasharray="8,4"/>
|
||
|
|
<text x="100" y="125" font-size="12" fill="#82b366" font-weight="bold">Docker Compose</text>
|
||
|
|
|
||
|
|
<!-- nginx 容器 -->
|
||
|
|
<rect x="110" y="140" width="200" height="60" rx="8" fill="#d5e8d4" stroke="#82b366" stroke-width="1.5" filter="url(#shadow)"/>
|
||
|
|
<text x="210" y="167" font-size="13" fill="#333" text-anchor="middle" font-weight="bold">nginx 容器</text>
|
||
|
|
<text x="210" y="187" font-size="10" fill="#666" text-anchor="middle">静态资源 + 反向代理</text>
|
||
|
|
|
||
|
|
<!-- Arrow: nginx → app -->
|
||
|
|
<line x1="312" y1="170" x2="370" y2="170" stroke="#82b366" stroke-width="2" marker-end="url(#arrow-green)"/>
|
||
|
|
<text x="340" y="162" font-size="10" fill="#82b366" text-anchor="middle">proxy_pass</text>
|
||
|
|
|
||
|
|
<!-- app 容器 -->
|
||
|
|
<rect x="373" y="140" width="200" height="60" rx="8" fill="#d5e8d4" stroke="#82b366" stroke-width="1.5" filter="url(#shadow)"/>
|
||
|
|
<text x="473" y="167" font-size="13" fill="#333" text-anchor="middle" font-weight="bold">app 容器</text>
|
||
|
|
<text x="473" y="187" font-size="10" fill="#666" text-anchor="middle">Go 二进制 + SQLite</text>
|
||
|
|
|
||
|
|
<!-- Port label -->
|
||
|
|
<text x="210" y="230" font-size="10" fill="#666" text-anchor="middle">暴露 8080 端口</text>
|
||
|
|
|
||
|
|
<!-- Arrow: app → 外部服务 -->
|
||
|
|
<line x1="473" y1="202" x2="473" y2="295" stroke="#999" stroke-width="2" stroke-dasharray="6,3" marker-end="url(#arrow-gray)"/>
|
||
|
|
|
||
|
|
<!-- 外部服务外框 -->
|
||
|
|
<rect x="140" y="300" width="420" height="100" rx="10" fill="#f5f5f5" stroke="#999" stroke-width="1" stroke-dasharray="6,3"/>
|
||
|
|
<text x="160" y="325" font-size="11" fill="#333" font-weight="bold">外部服务</text>
|
||
|
|
|
||
|
|
<!-- 七牛云 Kodo -->
|
||
|
|
<rect x="160" y="340" width="120" height="40" rx="6" fill="#fff2cc" stroke="#d6b656" stroke-width="1"/>
|
||
|
|
<text x="220" y="365" font-size="11" fill="#333" text-anchor="middle">七牛云 Kodo</text>
|
||
|
|
|
||
|
|
<!-- DeepSeek LLM -->
|
||
|
|
<rect x="295" y="340" width="120" height="40" rx="6" fill="#fff2cc" stroke="#d6b656" stroke-width="1"/>
|
||
|
|
<text x="355" y="365" font-size="11" fill="#333" text-anchor="middle">DeepSeek LLM</text>
|
||
|
|
|
||
|
|
<!-- Stability AI -->
|
||
|
|
<rect x="430" y="340" width="120" height="40" rx="6" fill="#fff2cc" stroke="#d6b656" stroke-width="1"/>
|
||
|
|
<text x="490" y="365" font-size="11" fill="#333" text-anchor="middle">Stability AI</text>
|
||
|
|
</svg>
|