🏛️

Аудит сайта и хостинга музея с демо-стендом нового сайта

для музейного комплекса в Москве: три сайта на общем ядре, показ до договора

Технический аудит сайта и хостинга музейного комплекса в Москве, комплект документов и демо-стенд нового сайта: три сайта на общем ядре, закрытый от индексации и копирования.

В разработкеNDA
31 позиция
технического аудита сайта в 11 разделах, у каждой указан файл или запись в базе
3 сайта
музей, ресторан и игры на общем ядре в 2 081 строку
0 внешних
запросов со страниц демонстрации: шрифты, картинки и карта лежат на своём сервере

Задача

Руководству музейного комплекса в Москве нужно было понять, в каком состоянии находится действующий сайт, какие у него риски, что и в каком порядке стоит делать и как выглядел бы результат. Договор ещё не подписан, поэтому обещаний на словах недостаточно: заказчик хочет увидеть и потрогать итог заранее.

Отдельные условия:

  • под одной крышей три бизнеса: музей, ресторан с банкетами и игровой отдел, а сайт нужен каждому;
  • иностранные туристы нужны только музею, ресторану достаточно двух языков, игровому отделу одного;
  • сайт должен открываться при любых ограничениях доступа, без обращений к зарубежным сервисам;
  • демонстрацию нельзя выпускать в поиск вместо действующего сайта, а также нельзя отдавать целиком на копирование.

Решение

Работа состоит из трёх частей: аудит, комплект документов и демо-стенд. Демо-стенд — это работающий образец нового сайта, который не принимает заявок и личных данных и служит только для показа.

Что сделано:

  • Технический аудит сайта по резервной копии: 11 разделов, 31 позиция.
  • Аудит хостинга и домена: что оплачивается и что реально работает.
  • Комплект документов для руководства: коммерческое предложение на 8 разделов и 6 этапов, шесть приложений, решения и открытые вопросы, протокол перепроверки, 11 шаблонов и памяток.
  • Служебные записки и отчёты: семь документов в формате DOCX, те же документы в интерактивном HTML со светлой и тёмной темой и в PDF.
  • Демо-стенд из четырёх страниц: разбор целиком и три направления, музей, ресторан и игры.
  • Пульт демонстрации: пять готовых сценариев, семь обликов, одиннадцать шрифтов, светлая и тёмная тема, три языка, двенадцать переключаемых модулей, автопоказ и QR-код для телефона.

Как это устроено

Три сайта на общем ядре

Общее ядро — код, который один раз описывает сетку, шапку, карточки, формы, плашку cookie, пульт и доступность. В нём нет ни одного цвета, ни одного шрифта и ни одного названия зала или программы: направления отличаются только переменными и данными. Ядро занимает 2 081 строку, банкетное направление добавляет 361, игровое 535. Музейная сборка старше ядра и живёт своей, на ядро у неё перенесены переключатель направлений, полоса группы и шрифты.

Пульт демонстрации для показа без объяснений

Пульт выезжает справа, а на телефоне листом снизу. Пять сценариев собирают сочетание настроек одним нажатием: «Только фундамент», «Всё включено», «На телефоне», «Витрина» и свой у каждого направления. Выключенный модуль убирается из дерева доступности целиком, а не гасится прозрачностью, поэтому видно, как сайт выглядит без него. Таблицы «Показать подробно» объясняют, что видит поисковик, какие внешние загрузки есть у страницы и откуда взята каждая цифра.

Демо, где всё можно потрогать без личных данных

В музейной демонстрации есть сеансы на сегодня по московскому времени и покупка билета в три шага без оплаты и без полей с личными данными. Ресторан показывает меню из восьми разделов с прикидкой стола и кнопкой «В заявку». Игровое направление считает итог брони для групп до 15 человек и даёт своей ссылкой каждую программу. Названия, длительность и часть цен взяты с действующего сайта без изменений, а время сеансов и остатки мест условные.

Защита демо-стенда от индексации и копирования

Индексация закрыта мета-тегом, robots.txt и заголовком X-Robots-Tag, последний действует и на файлы. Страж без JavaScript и cookie не пускает дальше своей страницы. Закрытый список скачивалок и роботов языковых моделей получает отказ 403, частота запросов ограничена, встраивание страницы в чужую рамку запрещено. Ответ curl без браузера на саму страницу поэтому 302 или 403, и это не поломка. Это порог, а не замок: человек с инструментами разработчика увидит разметку. Для настоящей закрытости в конфигурации есть готовый блок защиты паролем.

Политика Content-Security-Policy без единого внешнего адреса

Content-Security-Policy (CSP) — заголовок, который перечисляет, откуда браузеру можно загружать ресурсы. Здесь стоит default-src 'self': любой чужой адрес запрещён. Шрифты (24 семейства, 218 начертаний под свободной лицензией) и снимок карты хранятся на своём сервере, счётчик Яндекс.Метрики в демонстрации работает в режиме «витрина» и лишь пишет события в журнал пульта. В боевом режиме счётчик молчит до согласия на cookie, а вебвизор выключен, потому что он записывает заполнение полей форм.

Комплект документов для руководства

Документы написаны для людей вне IT. В приложении «До и после» 12 сопоставлений без технических терминов, реестр правок перевода сверяет английскую и китайскую версии с русским оригиналом по 44 позициям, реестр данных отмечает 22 замечания к ценам, форматам и заголовкам. Основные документы лежат в Markdown, HTML и PDF, на подпись КП идёт в печатном виде.

Результат

  • Руководство получило технический аудит, где у каждой из 31 позиции указан файл или запись в базе.
  • Заказчик видит будущий сайт до договора и сам решает, какие модули нужны.
  • Демо открывается на телефоне как обычный сайт, проверено на размерах трёх айфонов.
  • Демо не отправляет данные наружу: форм с личными данными и оплаты нет, внешних запросов со страниц нет.
  • Общая сопровождаемость: правка сетки, доступности или плашки cookie делается один раз для всех трёх сайтов.
  • Автотестов в репозитории нет, проверка ручная по критериям приёмки.

Технологии: что и зачем

  • HTML, CSS и JavaScript без сборки и фреймворков — демонстрация открывается любым веб-сервером и не тянет зависимостей.
  • nginx — раздача статики, страж, заголовки безопасности, политика CSP и ограничение частоты запросов.
  • Docker и docker-compose — запуск стенда одной командой на сервере сайтов студии, отдельный контейнер и отдельная сеть.
  • Let's Encrypt — HTTPS на входном nginx, который держит порты 80 и 443.
  • Markdown, HTML, PDF, DOCX — комплект документов в форматах для печати, показа на экране и внутреннего документооборота.
  • Real-ESRGAN и AVIF — восстановление кадра первого экрана нейросетью и перевод в современный формат: 136 КБ на большом экране и 84 КБ на телефоне при вдвое большем разрешении, чем у прежнего кадра.

Статус

Версия демо-стенда 3.5.0 от 22 сентября 2026 года, работа в процессе. Стенд с 18 сентября 2026 года размещён на сервере сайтов студии в Москве и закрыт от поисковых систем. Комплект документов подготовлен и перепроверен в начале сентября. Открыто: решение заказчика по коммерческому предложению, в репозитории отметок о статусе работ нет. Живой чат-бот на языковой модели в демо не входит: там ответы записаны заранее, а живой бот оценивается отдельно. Другие детали заказчика не раскрываются.

Вопросы по проекту

Как показать заказчику результат нового сайта до начала работ?
Собирается демонстрационный стенд, на котором можно менять облик, шрифт, язык и тему, а двенадцать модулей включать и выключать. Так видно, что именно даёт каждая позиция предложения и как выглядит сайт без неё. Стенд не принимает заявок, оплаты и личных данных, его показывают отдельно от действующего сайта.
Можно ли сделать один сайт для музея, ресторана и игр?
В проекте это три сайта на общем ядре. Сетка, шапка, формы, плашка cookie и доступность написаны один раз, а всё, чем направления отличаются, вынесено в переменные и данные каждого направления. Правка ядра сразу применяется на всех сайтах, поэтому сопровождение дешевле, чем у трёх отдельных копий.
Как закрыть демонстрационный сайт от индексации и автоматического копирования?
Индексация закрыта на трёх уровнях: мета-тег, robots.txt и заголовок X-Robots-Tag, который действует и на картинки, видео и шрифты. Дополнительно стоит страж, который без JavaScript и cookie не пускает дальше, отказ известным скачивалкам и роботам языковых моделей и ограничение частоты запросов. Это порог, а не сейф: человек с инструментами разработчика увидит разметку.
Как сделать сайт без обращений к зарубежным серверам?
Шрифты, картинки, видео и снимок карты лежат в репозитории и отдаются с того же сервера. Политика Content-Security-Policy со значением default-src 'self' запрещает браузеру любой чужой адрес. Кнопка «Внешние загрузки» в пульте показа считает обращения прямо в браузере смотрящего.
Что входит в аудит сайта и хостинга музея?
Технический аудит из 11 разделов и 31 позиции, где у каждой указан файл или запись в базе. Реестр правок перевода на 44 позиции, реестр замечаний к данным на 22 позиции и 12 сопоставлений «сейчас и после работ» без технических терминов. Отдельно проверены хостинг и домен: что оплачивается и что реально работает.
Как показывать технические выводы людям вне IT?
В демонстрации есть автопоказ из 22 шагов простыми словами: шаги «сейчас» показывают настоящий снимок действующего сайта, шаги «после» показывают живую страницу. В карточке сказано, откуда взят каждый факт. Отдельная сноска объясняет оценки Lighthouse: что это за проверка и где граница между «хорошо» и «плохо».

Ещё по этому направлению

В разработке

BruDgital: платформа онлайн-курсов с защищённым видео и живыми эфирами

онлайн-школа по маркетингу: свой сайт, вход через ботов, оплата и эфиры вместо Zoom

В продакшенеNDA

Интернет-магазин рубашек на Nuxt 4 с админкой для владельца

магазин рубашек в Чебоксарах: владелец сам ведёт товары, цены и заказы

В продакшене · собственный продукт

UNLOCK: интерактивные открытки и адвент-календарь

собственный сервис студии: открытка по ссылке с паролем, управление из Telegram

Нужно похожее?

Расскажите о задаче — покажем, как решали такое, и прикинем объём работ.