Files

80 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# servaki.online — расширение лендинга
Подготовлено и опубликовано 28 сентября 2026 на существующем Beget-хостинге `infogypa`. Сертификат Let's Encrypt перевыпущен: при проверке 28 сентября HTTPS прошёл стандартную проверку цепочки, срок действия нового сертификата — до 27 декабря 2026, 12:31 UTC.
## Состав
- Главная с 12 тематическими иллюстрациями под описаниями карточек и ссылками на профильные страницы.
- 12 статей-лендингов: 3 подхода, 6 услуг, 3 отрасли. 3525 слов основного содержания с FAQ.
- Каталоги `/approach/`, `/services/`, `/industries/`.
- Автор, дата, хлебные крошки, оглавления, связанные материалы, контакты.
- Уникальные title/description/canonical, Open Graph, Article/Service/FAQPage/BreadcrumbList, sitemap, robots.
- 12 тематических AI-иллюстраций для карточек главной и 12 тёплых фотореалистичных AI-изображений для внутренних страниц, с WebP-версиями 480/960/1536 px. У каждой статьи своё изображение и подпись о том, что оно создано ИИ без данных и фотографий клиентов.
- На страницах услуг — конкретные пояснения о согласовании доступа, ограничении видимости данных и бережной работе в действующем офисе или на объекте. Это описание подхода, а не обещание абсолютной безопасности.
- На четырёх тёплых иллюстративных фото уточнены надписи: «ГОСТЕВОЙ ДОМ» и «КАФЕ» на вывесках, «СЕРВАКИ» на одежде специалистов. Написание проверено на полном размере и в WebP. Исходные и отредактированные PNG хранятся отдельно; для новых файлов используется суффикс `-ru`, чтобы браузер не показывал старую закешированную версию.
- В тексте каждой из 12 статей — тематическая схема работы оборудования: индикаторы приборов и движение сигнала между ними. Схемы состоят из компактных SVG и CSS, не загружают GIF или видео. При настройке «уменьшить движение» индикаторы и путь остаются статичными.
- На 12 иллюстрациях карточек главной, в каталогах и блоках связанных решений поверх WebP добавлены короткие маршруты сигнала и индикаторы работы оборудования. Они не содержат данных клиентов. Анимация включается только при появлении карточки на экране и выключается при настройке «уменьшить движение»; изображение остаётся доступным без JavaScript. Общий вес новых CSS и JS — 2 404 байта. Самая тяжёлая иллюстрация: 37,1 КБ при 480 px, 116,7 КБ при 960 px и 236,2 КБ при 1536 px.
- Описания под всеми 12 карточками главной переписаны: задача клиента, способ работы и результат; условия отклика указаны без обещания устранить любой сбой за 15 минут. У трёх каталогов и главной — отдельные поисковые описания.
## Просмотр и сборка
Текущий предпросмотр: http://127.0.0.1:5186/ . Использовать HTTP-сервер, не открывать index.html как file://: пути начинаются от корня сайта.
Python 3.12+, зависимости в `requirements.txt`: Pillow для экспорта изображений, Paramiko для SFTP и cryptography для проверки сертификата. HTML генерируется стандартной библиотекой, Node и npm для этой сборки не нужны.
```
python -m pip install -r requirements.txt
python prepare_images.py
python prepare_photos.py
python build.py
python -m http.server 5186 --bind 127.0.0.1 --directory public
python verify.py
```
`content/pages.json` — тексты; `content/card-copy.json` — тексты карточек; `content/flow-scenes.json` — подписи и оборудование для анимированных схем; `content/image-motion.json` — иллюстративные маршруты сигнала на карточках; `content/image-prompts.json` и `content/photo-prompts.json` — промпты исходной генерации; `content/photo-edit-prompts.json` — точные русские надписи и промпты локализации; `content/photo-alt.json` и `content/privacy-notes.json` — описания фото и редакционные пояснения; `artwork/` — оригиналы и отредактированные фото; `assets/` — CSS, JS и WebP; `public/` — готовый сайт; `reference/original.html` — сохранённая исходная главная.
## Фактическая основа
Внутренние заметки используются только как подтверждение исторического инженерного опыта, без имён заказчиков, адресов, паролей и топологии:
- fleet-vault/daily/2026-09-28-antosha-fleet-traffic-audit.md — диагностика туннелей по реальному трафику, сохранение настроек и проверка зависимостей.
- fleet-vault/memory/vesovaya-bitarov-most-remzona-2026-07-21.md — обследование связи весовой и ремонтной зоны, сопоставление доступности и uptime.
- fleet-vault/memory/mpo-inform-site-2026-07-01.md — работа со схемами камер и СКУД, необходимость отделять условные модели от точных монтажных данных.
- fleet-vault/projects/controllers-energy-digest-bot.md — Wiren Board/MQTT, показатели энергии, существующие сценарии и отдельно запланированные функции.
- fleet-vault/inventory/fleet-hosts.md — опыт серверной виртуализации и контейнеров. Наличие каждого старого сервиса сейчас не заявляется.
Для HoReCa описана применимость сетевого и серверного опыта, не придуманы гостиничные кейсы, отзывы, гарантированные результаты или количество клиентов. 28 сентября 2026 по прямому указанию владельца цены трёх тарифов увеличены втрое: «Старт» — 9 000 ₽/мес., «Бизнес» — 21 000 ₽/мес., «Премиум» — 45 000 ₽/мес. Состав тарифов не менялся; отклик и срок устранения разделены.
## SEO и ИИ-поиск
Основа: доступный HTML-текст, нормальная внутренняя навигация, точные описания, вопросы и ответы, изображения и соответствующая видимому тексту разметка. Специальный файл llms.txt не нужен для показа в AI-функциях Google и не представлен как условие индексации или гарантия цитирования.
Источники: https://developers.google.com/search/docs/appearance/ai-features и https://developers.google.com/search/docs/appearance/snippet . Попадание в индекс и ответы ИИ не гарантируется. FAQ-разметка описывает видимый FAQ, не обещает расширенный сниппет.
## Проверки
`verification.json`: 16 HTML-страниц локально HTTP 200, побайтная сверка, уникальные title и description, H1, JSON-LD, все внутренние ссылки/якоря и изображения, 16 адресов sitemap. На 12 статьях проверены схемы с тремя приборами и двумя путями сигнала; мобильные фото весят не более 38,7 КБ, общий CSS — 12,6 КБ. Отрицательный контроль: намеренно сломанная ссылка на изображение обнаруживается.
`live-verification.json`: 21 публичный URL отдал 200 и байт-в-байт совпал со сборкой. Старый сертификат истёк 17.09.2026, заявка на бесплатный перевыпуск принята панелью Beget 28.09.2026. Повторная проверка в тот же день подтвердила действующий сертификат с окончанием срока 27.12.2026, 12:31 UTC. Диагностический скрипт отдельно проверяет HTTPS стандартной цепочкой доверия.
Выпуск анимации 28.09.2026: локальная проверка подтвердила 12 анимированных иллюстраций, 16 доступных HTML-страниц, лимиты размеров WebP и неизменные цены. В Chrome проверены каталоги при ширине 1280 и 500 px, а также режим «уменьшить движение». Скрипт `deploy_beget.py update-motion` перед заменой сравнивает все файлы предыдущего выпуска с боевым сайтом и сохраняет изменяемые HTML вне публичного каталога.
Выпуск русских надписей 28.09.2026: четыре фото получили версионированные файлы `photo-*-ru-{480,960,1536}.webp`; заменены только четыре профильные статьи, исходные WebP сохранены для отката. Перед загрузкой 100 файлов прежнего выпуска сверены с Beget, после неё 27 публичных адресов побайтно совпали со сборкой, TLS действителен. Предыдущие HTML сохранены вне webroot в `/home/i/infogypa/servaki.online/backup-2026-09-28-before-russian-photos/`. Все 289 исходных и готовых файлов с проверенными SHA-256 сохранены в Яндекс Диске `servaki.online/лендинги/servaki.online site/2026-09-28-russian-image-text/`; облачная синхронизация отдельно не подтверждена.
Браузер: главная и статья на обычном экране и 390×844; горизонтального переполнения нет, responsive images загружаются, оглавление и FAQ работают. Анимированная схема сети визуально проверена на 1280 px и в мобильном окне 390 px: устройства выстраиваются вертикально, путь сигнала сохраняется. Исходная форма на главной остаётся демонстрационной; все новые CTA ведут прямо в Telegram или на телефон, сообщения автоматически не отправлялись.
## Публикация и откат
- Боевой каталог подтверждён по SFTP: `/home/i/infogypa/servaki.online/public_html`. Перед публикацией его `index.html` побайтно совпал с `reference/original.html`; новые каталоги `approach`, `services`, `industries`, `assets/editorial` отсутствовали. Семь прежних изображений в `img/` совпали с исходными и не перезаписывались.
- `deploy_beget.py audit` сохранил изменяемые исходные файлы в `release-backups/2026-09-28-before-landing/`; дубликат главной размещён на Beget вне публичного каталога: `/home/i/infogypa/servaki.online/backup-2026-09-28-before-landing/`.
- `deploy_beget.py deploy` загрузил и сверил SHA-256 всех 98 файлов. Сначала были загружены графика и внутренние страницы, главная заменена последней. Скрипт фиксирует SSH-отпечаток хостинга и не перезаписывает посторонние файлы.
- `deploy_beget.py reprice` меняет только главную: перед загрузкой проверяет, что шесть изменений касаются исключительно трёх видимых цен и трёх цен в JSON-LD. Предыдущая главная сохраняется локально в `release-backups/2026-09-28-before-tripled-prices/` и на Beget вне публичного каталога в `backup-2026-09-28-before-tripled-prices/`.
- `.htaccess`, DNS, почта и другие сайты не менялись. Исходный репозиторий сайта — `german/site-servaki-online` в Gitea; в `servaki-monitor` есть чужие незакоммиченные изменения, они не затрагивались. Публикация выполнялась напрямую на существующий Beget-хостинг, без автоматического деплоя из Gitea.
- Для отката вернуть из резервной копии прежний `index.html`; у нового релиза были добавлены `robots.txt`, `sitemap.xml` и каталоги `approach`, `services`, `industries`, `assets/editorial`. Удалять общие каталоги `img` и другие сайты нельзя.
## Хранение генераций на Яндекс Диске
По указанию владельца все результаты генерации для сайта сохраняются также в папке Яндекс Диска соответствующего выпуска: исходные изображения и варианты, промпты и манифесты, оптимизированные медиа и готовая сборка. Для выпуска 28.09.2026 архив находится в `D:\YandexDisk\servaki.online\лендинги\servaki.online site\2026-09-28-landing-generations\`: 251 файл, 173 297 271 байт. `MANIFEST.json` содержит SHA-256 каждого файла и связи исходных генераций с сохранёнными оригиналами; все файлы после копирования сверены повторно.
Для следующих выпусков запустить `save_generations_yadisk.py` сначала в режиме плана, затем с `--copy`, указав `--raw-dir` папки текущего генератора и новый `--target` внутри `servaki.online site`. Скрипт не заменяет существующий файл с отличающейся контрольной суммой. Копирование в локальную папку Яндекс Диска проверено; статус облачной синхронизации следует проверять отдельно в клиенте Яндекс Диска.