diff --git a/DEPLOY_INSTRUCTIONS.md b/DEPLOY_INSTRUCTIONS.md new file mode 100644 index 0000000..becb8e5 --- /dev/null +++ b/DEPLOY_INSTRUCTIONS.md @@ -0,0 +1,81 @@ +# Инструкция по публикации сайта через rsync + +## Описание + +Этот документ описывает процесс публикации сгенерированного сайта (папка `public`) на хостинге через `rsync`. + +## Учетные данные и параметры подключения + +Для работы используются следующие параметры, задаваемые в Makefile: +- **Хост**: kpa39l.myjino.ru +- **Порт SSH**: 2222 +- **Пользователь**: kpa39l_dedinit +- **Целевой путь**: /domains/dedinit.ru + +## Установка зависимостей + +Для работы скрипта деплоя требуются: +1. **rsync** - обычно предустановлен в большинстве Linux-систем, для Windows может потребоваться установка через Git Bash или WSL +2. **SSH-клиент** - для подключения к серверу +3. **Make** - для выполнения команд из Makefile + +## Использование Makefile + +### Сборка сайта +```bash +make build +``` +Команда генерирует сайт в папку `public/`. + +### Деплой сайта +```bash +make deploy +``` +Команда сначала собирает сайт, затем загружает содержимое папки `public/` на удаленный сервер. + +### Симуляция деплоя +```bash +make deploy-dry-run +``` +Команда сначала собирает сайт, затем симулирует загрузку на сервер без фактического копирования файлов. + +### Очистка +```bash +make clean +``` +Команда удаляет папку `public/`. + +### Полная пересборка +```bash +make rebuild +``` +Команда удаляет папку `public/`, затем заново собирает и деплоит сайт. + +### Справка +```bash +make help +``` +Показывает список доступных команд. + +## Конфигурация + +Все параметры подключения находятся в начале файла Makefile: +- HOST - адрес сервера +- PORT - порт SSH +- USERNAME - имя пользователя +- REMOTE_PATH - путь на удаленном сервере + +При необходимости вы можете изменить эти параметры в файле Makefile. + +## Настройка SSH + +Для удобства рекомендуется настроить SSH-ключи для подключения к серверу. Также можно настроить подключение через SSH config, добавив в ~/.ssh/config: + +``` +Host myjino + HostName kpa39l.myjino.ru + Port 2222 + User kpa39l_dedinit +``` + +После такой настройки можно будет использовать сокращенное имя хоста. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..28f904e --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +.PHONY: build deploy + +# Параметры подключения к серверу +HOST = kpa39l.myjino.ru +PORT = 2222 +USERNAME = kpa39l_dedinit +REMOTE_PATH = /domains/dedinit.ru + +build: + hugo --minify + @echo "Сайт успешно собран в папку public/" + +deploy: build + rsync -avz --delete -e 'ssh -p $(PORT)' public/ $(USERNAME)@$(HOST):$(REMOTE_PATH)/ + +deploy-dry-run: build + rsync -avn --delete -e 'ssh -p $(PORT)' public/ $(USERNAME)@$(HOST):$(REMOTE_PATH)/ + +clean: + rm -rf public/ + @echo "Папка public удалена" + +rebuild: clean deploy + +help: + @echo "Доступные команды:" + @echo " make build - собрать сайт" + @echo " make deploy - собрать и задеплоить сайт" + @echo " make deploy-dry-run - симуляция деплоя" + @echo " make clean - удалить папку public" + @echo " make rebuild - полная пересборка сайта" + @echo " make help - показать это сообщение" \ No newline at end of file diff --git a/README.md b/README.md index 006eca4..fd58953 100644 --- a/README.md +++ b/README.md @@ -45,4 +45,21 @@ Для генерации сайта и просмотра его в браузере используйте следующие команды: - `hugo` - генерирует статический сайт в папку `public` -- `hugo server` - запускает локальный сервер для предварительного просмотра сайта в браузере (обычно доступен по адресу http://localhost:1313) \ No newline at end of file +- `hugo server` - запускает локальный сервер для предварительного просмотра сайта в браузере (обычно доступен по адресу http://localhost:1313) + +## Деплой сайта + +Для автоматизации процесса деплоя созданы специальные файлы: + +- `Makefile` - содержит команды для сборки и публикации сайта на хостинге +- `DEPLOY_INSTRUCTIONS.md` - инструкция по использованию команд деплоя + +Для публикации сайта на хостинге используйте команду: +``` +make deploy +``` + +Для получения полного списка доступных команд используйте: +``` +make help +``` \ No newline at end of file