docs/ops/gitea (5 доков миграции и бэкапа Gitea) + docs/support (YC SSH-тикет) в историю. .gitignore: локальные бэкапы settings.json, эталон-снимки, Ctemp-дампы - чтобы не висели в untracked. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.0 KiB
Настройка off-box зеркала (push-mirror) из Gitea
Зачем: второй уровень бэкапа. Если виртуальная машина с Gitea умрёт, копия репозитория останется на стороннем хостинге. Часть комплекта — см. runbook шаги 9-10.
Исполнитель: 🧑💼 владелец (аккаунт/токен стороннего хостинга) + 📋 настройка в Gitea.
1. Выбрать сторонний российский хостинг
| Хостинг | Заметки |
|---|---|
| GitVerse (СберТех) | Managed RU-хостинг, GitHub-подобный. ⚠️ проверить актуальные лимиты приватных репозиториев и условия |
| GitFlic | Managed RU-хостинг, есть импорт из GitHub. ⚠️ проверить актуальные лимиты/условия |
Достаточно одного как зеркало. Это только резервная копия — CI/основная работа остаются на своём Gitea.
⚠️ проверить: актуальное состояние, тарифы и лимиты выбранного хостинга на момент настройки (вживую не подтверждено).
2. На стороне зеркала (🧑💼 владелец)
- Завести аккаунт на выбранном хостинге.
- Создать пустой приватный репозиторий под зеркало (напр.
liderra/portal-mirror), БЕЗ инициализации README. - Создать токен доступа (personal access token) с правом записи в репозитории. Сохранить — это секрет, в общий доступ/репозиторий не класть.
3. В Gitea настроить push-mirror (📋 по комплекту)
В веб-интерфейсе Gitea: открыть репозиторий → Настройки → раздел Зеркала (Mirrors) → добавить Push Mirror:
- Remote Repository URL:
https://<MIRROR_HOST>/<OWNER>/<REPO>.git - Authorization: имя пользователя + токен со стороннего хостинга (из п.2.3).
- Sync interval: напр. каждые 8 часов (или по желанию).
- Сохранить.
Gitea будет автоматически дозаливать новые коммиты/ветки на зеркало по расписанию.
4. Проверить, что зеркало реально синхронизировалось (📋 по комплекту)
Это обязательный шаг — сохранения настройки НЕДОСТАТОЧНО:
- В Gitea на странице зеркал нажать Synchronize Now (запустить синхронизацию вручную).
- Дождаться завершения (статус без ошибки).
- Открыть репозиторий на стороне зеркала (GitVerse/GitFlic) и убедиться, что:
- репозиторий не пустой, ветки на месте;
- последний коммит в
mainсовпадает с тем, что в Gitea.
Только после успешной сверки считать off-box бэкап рабочим.
Траблшутинг
- Sync падает с ошибкой авторизации — перепроверить токен стороннего хостинга и право записи.
- Зеркало пустое после sync — проверить, что URL указывает на существующий пустой репозиторий и что исходный репозиторий в Gitea не пуст (сначала выполнить заливку, runbook шаги 7-8).