Резервная копия с подвохом
GitHub и что он предлагает
GitHub — это сервис для хранения кода, где можно удобно хранить проекты и управлять их версиями, включая историю всех изменений и возможность отката при необходимости.
Git помогает легко отслеживать изменения и возвращаться к старым версиям сайта, если что-то пошло не так. Если хранить сайт на GitHub, даже в приватном репозитории, это даёт удобное и условно безопасное место для резервных копий.
Развернуть сайт на другом сервере или VPS становится гораздо проще — достаточно просто скопировать репозиторий и всё готово. Конечно, есть и специальные инструменты для бэкапов, но для моего простого статичного сайта такой способ с GitHub показался самым простым и подходящим.
Когда это хорошая идея
Статические сайты или код приложения. Хранить HTML/CSS/JS, шаблоны, конфиги без секретов в приватном репо — ок и удобно: есть история изменений, можно откатиться, легко деплоить.
С чем нужно быть осторожнее
Нельзя хранить чувствительные данные. Ключи, пароли, токены, .env, дампы баз, персональные данные пользователей — лучше выносить в отдельные хранилища, а не в GitHub, даже приватный
Неудобно для больших файлов и медиа. Для огромных загрузок, дампов БД, медиа-контента Git быстро раздувается, для этого лучше использовать отдельные бэкап-инструменты.
Как делать “по-взрослому”
-
Держать код сайта (без секретов) в приватном GitHub-репо.
-
Хранить чувствительные данные отдельно: API-key, логины и пароли, .env,.log и т.д., например в .gitignore.
-
Делать отдельные бэкапы БД и загрузок (выгрузка на другой сервер/облако).
-
Иметь ещё один независимый бэкап, помимо GitHub (локальный/другой облачный сервис), чтобы не зависеть от одной платформы.
1. Подготовка: Git и GitHub
-
На vps убедись, что Git установлен:
git --versionЕсли команды нет — установи Git с помощью пакетного установщика:
sudo apt install git -
Настраиваем имя и email для Git:
git config --global user.name "Твоё имя" git config --global user.email "you@example.com"Эти данные будут попадать в историю коммитов.
2. Создание приватного репозитория на GitHub
- Залогинься или зарегистрируйся на GitHub, если аккаунта ещё нет.
- Найди кнопку + (Create new…) и выбери new repository.
- Введи имя репозитория, например
404-page.ru. - Выбери тип Private, чтобы репо был приватным.
- Не добавляй README/.gitignore/LICENSE (.gitignore напишем ручками) — оставь всё пустым и нажми Create repository.
На странице нового репозитория появится блок с подсказками по командам git remote add origin ..., он пригодится дальше.
3. Инициализация Git на VPS
Дальше всё делается на сервере, где лежит сайт.
-
Перейди в папку сайта:
cd /home/hugouser/mysite -
Инициализируй репозиторий:
git initВ папке появится скрытая директория
.git— Git начнёт отслеживать файлы. -
Создай .gitignore, чтобы не тащить лишнее (временные файлы, логи, и уже сгенерированный сайт):
nano .gitignoreтуда:
# временные и системные файлы .DS_Store Thumbs.db # логи и кэш *.log cache/ tmp/ # сгенерированный сайт public/Сюда можно поместить все, что не должно попасть в репозиторий.
-
Добавь файлы в индекс и сделай первый коммит:
git add . git commit -m "Initial commit of 404-page.ru"Теперь текущее состояние сайта зафиксировано в Git.
4. Настройка доступа к GitHub (Я использую SSH, но можно и HTTPS)
Через SSH
-
Сгенерируй ssh-ключ:
ssh-keygen -t ed25519 -C "your_email@example.com"Нажимай Enter, там можно будет поменять путь к ключам и задать пароль, я оставляю все по умолчанию и без пароля.
-
Добавь ключ в ssh-agent:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 -
Скопируй публичный ключ:
cat ~/.ssh/id_ed25519.pubПоявившуюся строку нужно вставить в GitHub.
-
На GitHub зайди в Settings → SSH and GPG keys → New SSH key, вставь ключ и сохрани.
-
На странице репозитория нажми Code и выбери SSH, возьми ссылку вида:
git@github.com:1ntima/404-page.ru.git. -
На VPS привяжи удалённый репозиторий к локальному:
cd /home/hugouser/mysite git remote add origin git@github.com:username/404-page.ru.git
5. Первый пуш на GitHub
-
Убедись, что основная ветка называется
main(если нет — переименуй):git branch -M main -
Запушь код в приватный репозиторий:
git push -u origin mainПосле этого весь сайт из
/home/hugouser/mysiteокажется в приватном репо 404-page.ru на GitHub.
6. Дальнейшая работа
Для любых будущих изменений:
- Вносишь правки в
/home/hugouser/mysite. - Фиксируешь их:
git add . git commit -m "Краткое описание изменения" - Отправляешь на GitHub:
git push