Files
cactoz.su/frontend/projects.html
T
cacto abd57e1cdf Добавить home_automatization_controllers в список проектов
Новый репозиторий на git.cactoz.su — прошивка ESP32 для зоны «Гроубокс»
(DHT22 + 3 реле, MQTT). home_automation_mobile пока не добавляю — репозиторий
пустой (0 коммитов).
2026-08-12 00:51:56 +05:00

100 lines
5.1 KiB
HTML

<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ls projects/ — cacto</title>
<meta name="description" content="Проекты Гаммеля Дмитрия: home automation platform и этот сайт." />
<link rel="canonical" href="https://cactoz.su/projects" />
<link rel="icon" type="image/svg+xml" href="/assets/cactus-logo.svg" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="/css/theme.css" />
<link rel="stylesheet" href="/css/projects.css" />
</head>
<body>
<canvas id="matrix-rain"></canvas>
<header class="site-header">
<div class="site-header__inner">
<a href="/" class="logo" aria-label="cacto — на главную">
<img src="/assets/cactus-logo.svg" width="20" height="20" alt="" />
cacto<span class="cursor">_</span>
</a>
<ul class="nav-links">
<li><a href="/">whoami</a></li>
<li><a href="/projects" aria-current="page">ls projects/</a></li>
<li><button id="lang-toggle" class="lang-btn" type="button">EN</button></li>
</ul>
</div>
</header>
<div class="container">
<!--
Статика ниже — серверный RU-рендер того же содержимого, что генерирует
frontend/js/projects.js (DATA.ru). projects.js не перерисовывает при
lang=ru — только при переключении на EN. При правке текста меняйте оба
места: DATA.ru в projects.js и разметку ниже.
-->
<main>
<section>
<h1 id="projects-heading" class="page-heading">ls projects/</h1>
<p id="projects-subheading" class="page-subheading">Пара вещей, которые я собрал сам, от идеи до продакшена.</p>
<ul id="project-list" class="project-grid">
<li class="project-card">
<div class="project-card__header">
<div class="project-card__name"><span class="project-card__perms">drwxr-xr-x</span> home_automatization</div>
<a href="https://git.cactoz.su/cacto/home_automatization" target="_blank" rel="noopener">открыть →</a>
</div>
<p class="project-card__desc">В разработке: архитектура и ТЗ готовы, микросервисы на Go и Laravel собираются. Первая зона — гроубокс (полив, свет, климат), дальше — весь дом.</p>
<ul class="tag-list">
<li class="tag">в разработке</li>
<li class="tag">Go</li>
<li class="tag">Laravel</li>
<li class="tag">Docker</li>
<li class="tag">RabbitMQ</li>
<li class="tag">ClickHouse</li>
<li class="tag">gRPC</li>
<li class="tag">MQTT</li>
</ul>
</li>
<li class="project-card">
<div class="project-card__header">
<div class="project-card__name"><span class="project-card__perms">drwxr-xr-x</span> home_automatization_controllers</div>
<a href="https://git.cactoz.su/cacto/home_automatization_controllers" target="_blank" rel="noopener">открыть →</a>
</div>
<p class="project-card__desc">Прошивка ESP32 для зоны «Гроубокс»: датчик DHT22 и три реле-актуатора (свет, полив, вентиляция), общается с платформой по MQTT.</p>
<ul class="tag-list">
<li class="tag">C++</li>
<li class="tag">ESP32</li>
<li class="tag">Arduino</li>
<li class="tag">MQTT</li>
<li class="tag">DHT22</li>
</ul>
</li>
<li class="project-card">
<div class="project-card__header">
<div class="project-card__name"><span class="project-card__perms">drwxr-xr-x</span> cactoz.su</div>
<a href="https://git.cactoz.su/cacto/cactoz.su" target="_blank" rel="noopener">открыть →</a>
</div>
<p class="project-card__desc">Личный сайт-визитка: резюме, проекты и мультиплеерная мини-игра про танки. Тема — Матрица.</p>
<ul class="tag-list">
<li class="tag">HTML/CSS/JS</li>
<li class="tag">C++</li>
<li class="tag">uWebSockets</li>
<li class="tag">Quintus.js</li>
<li class="tag">nginx</li>
<li class="tag">Docker</li>
</ul>
</li>
</ul>
</section>
</main>
</div>
<script type="module" src="/js/matrix-rain.js"></script>
<script type="module" src="/js/projects.js"></script>
</body>
</html>