Быстрый старт
Эта страница — короткий рабочий порядок для обновления статического сайта.
Подходит для обычной задачи: поправили текст, добавили страницу, обновили утилиту, собрали и безопасно выложили.
Цель простая: сначала собрать и проверить локальный dist/, потом выложить его в web-root, потом проверить HTTP-ответы.
Что важно перед началом
Не трогайте Nginx, HAProxy и другие сервисы, если меняется только контент сайта.
Для обычного обновления нужны только:
~/getsrv-static-src
/var/www/getsrv.app
npm run build
rsync dist/
nginx -t
systemctl reload nginx
1. Перейти в проект
cd ~/getsrv-static-src
Проверьте, что вы в правильной директории:
pwd
Ожидаемо:
/home/manowar/getsrv-static-src
2. Собрать сайт
npm run build
Нормальный результат заканчивается примерно так:
[build] Complete!
Если build упал — дальше не идти. Нельзя деплоить пустой или неполный dist/.
3. Проверить, что сборка похожа на рабочую
find dist -type f -name '*.html' | wc -l
find dist/assets -maxdepth 1 -type f | sort
Ожидаемо:
- HTML-страницы есть;
- CSS/JS лежат в
dist/assets/; - нет случайных файлов за пределами ожидаемой структуры.
4. Проверить внешние runtime-ссылки
grep -RInE 'https?://' dist --exclude='sitemap*.xml' --exclude='robots.txt' | grep -v 'https://getsrv.app' || true
Для этого сайта нормальный результат — пустой вывод.
Если появились сторонние URL, сначала надо понять, откуда они взялись.
5. Выложить сборку
sudo rsync -a --delete dist/ /var/www/getsrv.app/
sudo find /var/www/getsrv.app -type d -exec chmod 755 {} \;
sudo find /var/www/getsrv.app -type f -exec chmod 644 {} \;
sudo chown -R www-data:www-data /var/www/getsrv.app
--delete важен: он удаляет старые файлы, которых уже нет в новой сборке.
6. Проверить Nginx и перечитать конфиг
sudo nginx -t
sudo systemctl reload nginx
Если nginx -t не прошёл — reload делать нельзя.
7. Быстрый smoke-test
curl -kI https://getsrv.app/
curl -kI https://getsrv.app/ru/docs/
curl -kI https://getsrv.app/ru/tools/
curl -kI https://getsrv.app/no-such-page
Ожидаемо:
/ 200
/ru/docs/ 200
/ru/tools/ 200
/no-such-page 404
8. Проверить кэш и security headers
HTML-страницы должны отдавать короткую cache policy:
Cache-Control: public, must-revalidate
Ассеты в /assets/ должны отдавать долгий immutable cache:
ASSET="$(find /var/www/getsrv.app/assets -maxdepth 1 -type f | head -n 1 | sed 's#^/var/www/getsrv.app##')"
curl -kI "https://getsrv.app$ASSET"
Ожидаемо:
Cache-Control: public, max-age=31536000, immutable
Когда остановиться
Остановитесь и не деплойте, если:
npm run buildупал;dist/пустой или явно неполный;- появились неожиданные внешние URL;
nginx -tпоказывает ошибку;- smoke-test возвращает не те HTTP-коды;
- после выкладки пропали security headers.
Минимальный порядок одной командой
Когда процедура уже знакома:
cd ~/getsrv-static-src &&
npm run build &&
sudo rsync -a --delete dist/ /var/www/getsrv.app/ &&
sudo find /var/www/getsrv.app -type d -exec chmod 755 {} \; &&
sudo find /var/www/getsrv.app -type f -exec chmod 644 {} \; &&
sudo chown -R www-data:www-data /var/www/getsrv.app &&
sudo nginx -t &&
sudo systemctl reload nginx
После этого всё равно сделайте хотя бы короткий curl -kI.