feat(landing): hand-drawn pipeline SVG diagram; v0.1.12

This commit is contained in:
“Naeel”
2026-08-16 19:11:17 +04:00
parent 6f609eca4b
commit a0e73b0b7a
4 changed files with 138 additions and 4 deletions
+48 -3
View File
@@ -143,6 +143,41 @@ pre code { background: none; border: none; padding: 0; }
line-height: 1.7;
}
.hint-box code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }
/* Схема пайплайна */
.flow {
display: flex;
flex-wrap: wrap;
gap: 4px;
align-items: stretch;
margin: 10px 0 4px;
}
.flow-node {
border: 1px solid var(--brand-gray);
border-radius: 10px;
background: #fff;
padding: 10px 12px;
min-width: 110px;
text-align: center;
box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.flow-node .fn-title { font-weight: 600; font-size: 13.5px; }
.flow-node .fn-sub {
font-family: ui-monospace, Menlo, Consolas, monospace;
font-size: 11.5px;
color: var(--text-muted);
margin-top: 3px;
word-break: break-all;
}
.flow-node.acc { border-color: #bfdbfe; background: #eff6ff; }
.flow-node.acc .fn-title { color: var(--brand-primary); }
.flow-arrow {
align-self: center;
color: var(--text-muted);
font-size: 16px;
padding: 0 2px;
}
.flow-caption { color: var(--text-muted); font-size: 12px; margin-top: 6px; }
.pipeline { width: 100%; max-width: 760px; display: block; margin: 12px auto 4px; }
</style>
</head>
<body>
@@ -172,10 +207,20 @@ pre code { background: none; border: none; padding: 0; }
<div class="card-body">
<p>Устройство (датчик, бойлер, счётчик) отправляет показания по протоколу
MQTT. Дальше показания проходят по цепочке и попадают в базу данных:</p>
<div class="hint-box">
устройство → <code>MQTT (wss)</code> → очередь <code>iot-telemetry</code>
→ <b>PostgreSQL</b> → API / консоль
<img class="pipeline" src="/static/pipeline.svg" alt="Схема пайплайна IoT">
<div class="flow-caption">
Между брокером и базой работают бридж и потребитель (части iot-service):
бридж кладёт показания в очередь, потребитель пишет их в базу.
</div>
<p style="color:#374151">
Очередь <code>iot-telemetry</code> — внутренний буфер сервиса: она
защищает показания от потерь при всплесках и сбоях базы. Пользователю
креды очереди НЕ нужны — сервис ходит в неё сам. Если требуется
посмотреть сообщения вручную — консоль очереди:
<a href="https://sqs.containerk8s.dev.nubes.ru/ui">sqs.containerk8s.dev.nubes.ru/ui</a>
(вход по API-токену Nubes; описание — на
<a href="https://sqs.containerk8s.dev.nubes.ru/">sqs.containerk8s.dev.nubes.ru</a>).
</p>
<p style="color:#374151">
У каждого устройства — свои логин и пароль, поэтому чужое устройство не
сможет писать в ваш топик. Данные разных проектов (namespace) лежат в