Резервная копия с подвохом

Timur Gilmanov

linuxvps

632 Words Ты потратишь: 2 Minutes, 52 Seconds

2025-12-04 11:04 +0000


GitHub и что он предлагает

GitHub — это сервис для хранения кода, где можно удобно хранить проекты и управлять их версиями, включая историю всех изменений и возможность отката при необходимости.

Git помогает легко отслеживать изменения и возвращаться к старым версиям сайта, если что-то пошло не так. Если хранить сайт на GitHub, даже в приватном репозитории, это даёт удобное и условно безопасное место для резервных копий.

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

Когда это хорошая идея

Статические сайты или код приложения. Хранить HTML/CSS/JS, шаблоны, конфиги без секретов в приватном репо — ок и удобно: есть история изменений, можно откатиться, легко деплоить.

С чем нужно быть осторожнее

Нельзя хранить чувствительные данные. Ключи, пароли, токены, .env, дампы баз, персональные данные пользователей — лучше выносить в отдельные хранилища, а не в GitHub, даже приватный

Неудобно для больших файлов и медиа. Для огромных загрузок, дампов БД, медиа-контента Git быстро раздувается, для этого лучше использовать отдельные бэкап-инструменты.

Как делать “по-взрослому”

  • Держать код сайта (без секретов) в приватном GitHub-репо.

  • Хранить чувствительные данные отдельно: API-key, логины и пароли, .env,.log и т.д., например в .gitignore.

  • Делать отдельные бэкапы БД и загрузок (выгрузка на другой сервер/облако).​

  • Иметь ещё один независимый бэкап, помимо GitHub (локальный/другой облачный сервис), чтобы не зависеть от одной платформы.

1. Подготовка: Git и GitHub

  1. На vps убедись, что Git установлен:

    git --version
    

    Если команды нет — установи Git с помощью пакетного установщика:

    sudo apt install git
    
  2. Настраиваем имя и email для Git:

    git config --global user.name "Твоё имя"
    git config --global user.email "you@example.com"
    

    Эти данные будут попадать в историю коммитов.


2. Создание приватного репозитория на GitHub

  1. Залогинься или зарегистрируйся на GitHub, если аккаунта ещё нет.
  2. Найди кнопку + (Create new…) и выбери new repository.
  3. Введи имя репозитория, например 404-page.ru.
  4. Выбери тип Private, чтобы репо был приватным.
  5. Не добавляй README/.gitignore/LICENSE (.gitignore напишем ручками) — оставь всё пустым и нажми Create repository.

На странице нового репозитория появится блок с подсказками по командам git remote add origin ..., он пригодится дальше.


3. Инициализация Git на VPS

Дальше всё делается на сервере, где лежит сайт.

  1. Перейди в папку сайта:

    cd /home/hugouser/mysite
    
  2. Инициализируй репозиторий:

    git init
    

    В папке появится скрытая директория .git — Git начнёт отслеживать файлы.

  3. Создай .gitignore, чтобы не тащить лишнее (временные файлы, логи, и уже сгенерированный сайт):

    nano .gitignore
    

    туда:

    # временные и системные файлы
    .DS_Store
    Thumbs.db
    
    # логи и кэш
    *.log
    cache/
    tmp/
    
    # сгенерированный сайт
    public/
    

    Сюда можно поместить все, что не должно попасть в репозиторий.

  4. Добавь файлы в индекс и сделай первый коммит:

    git add .
    git commit -m "Initial commit of 404-page.ru"
    

    Теперь текущее состояние сайта зафиксировано в Git.


4. Настройка доступа к GitHub (Я использую SSH, но можно и HTTPS)

Через SSH

  1. Сгенерируй ssh-ключ:

    ssh-keygen -t ed25519 -C "your_email@example.com"
    

    Нажимай Enter, там можно будет поменять путь к ключам и задать пароль, я оставляю все по умолчанию и без пароля.

  2. Добавь ключ в ssh-agent:

    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519
    
  3. Скопируй публичный ключ:

    cat ~/.ssh/id_ed25519.pub
    

    Появившуюся строку нужно вставить в GitHub.

  4. На GitHub зайди в Settings → SSH and GPG keys → New SSH key, вставь ключ и сохрани.

  5. На странице репозитория нажми Code и выбери SSH, возьми ссылку вида:
    git@github.com:1ntima/404-page.ru.git.

  6. На VPS привяжи удалённый репозиторий к локальному:

    cd /home/hugouser/mysite
    git remote add origin git@github.com:username/404-page.ru.git
    

5. Первый пуш на GitHub

  1. Убедись, что основная ветка называется main (если нет — переименуй):

    git branch -M main
    
  2. Запушь код в приватный репозиторий:

    git push -u origin main
    

    После этого весь сайт из /home/hugouser/mysite окажется в приватном репо 404-page.ru на GitHub.


6. Дальнейшая работа

Для любых будущих изменений:

  1. Вносишь правки в /home/hugouser/mysite.
  2. Фиксируешь их:
    git add .
    git commit -m "Краткое описание изменения"
    
  3. Отправляешь на GitHub:
    git push