docs: migrate to Gitea over HTTPS when no SSH key on server

Made-with: Cursor
This commit is contained in:
PTah
2026-04-22 15:44:25 +10:00
parent 0898634fab
commit f6c805163a
4 changed files with 23 additions and 1 deletions
+3 -1
View File
@@ -10,10 +10,12 @@ GITEA_OWNER=your_gitea_user_or_org
GITEA_OWNER_TYPE=user GITEA_OWNER_TYPE=user
# Push strategy # Push strategy
# На своём ПК можно оставить true (SSH-ключ уже в Gitea).
# Если скрипт запускается НА СЕРВЕРЕ с Gitea/root — ставьте false и задайте GITEA_USERNAME (ключ на сервере часто отсутствует).
PUSH_WITH_SSH=true PUSH_WITH_SSH=true
GITEA_SSH_HOST=git.papatramp.ru GITEA_SSH_HOST=git.papatramp.ru
GITEA_SSH_PORT=2222 GITEA_SSH_PORT=2222
# Required only for HTTPS push mode # Обязательно при PUSH_WITH_SSH=false — логин владельца в Gitea (пуш по HTTPS с GITEA_TOKEN как пароль)
GITEA_USERNAME=your_gitea_username GITEA_USERNAME=your_gitea_username
# Optional behavior # Optional behavior
+3
View File
@@ -262,6 +262,8 @@ ssh -T git-papatramp
- делает `git clone --mirror` + `git push --mirror`; - делает `git clone --mirror` + `git push --mirror`;
- умеет мигрировать LFS (опционально). - умеет мигрировать LFS (опционально).
Пуш в Gitea по умолчанию идёт по **SSH**. Если скрипт запускается **на самом сервере Gitea** (или под `root`) и там **нет SSH-ключа**, добавленного в ваш аккаунт Gitea, будет `Permission denied (publickey)`. Тогда используйте пуш по HTTPS: **`export PUSH_WITH_SSH=false`** и **`export GITEA_USERNAME=`** ваш логин в Gitea (пароль — ваш **`GITEA_TOKEN`**).
Пример запуска: Пример запуска:
```bash ```bash
@@ -279,6 +281,7 @@ export GITEA_OWNER_TYPE='user' # или org
export PUSH_WITH_SSH='true' export PUSH_WITH_SSH='true'
export GITEA_SSH_HOST='git.papatramp.ru' export GITEA_SSH_HOST='git.papatramp.ru'
export GITEA_SSH_PORT='2222' export GITEA_SSH_PORT='2222'
# При PUSH_WITH_SSH=false добавьте: export GITEA_USERNAME='ваш_логин_gitea'
export MIGRATE_LFS='true' export MIGRATE_LFS='true'
./scripts/migrate-github-to-gitea.sh ./scripts/migrate-github-to-gitea.sh
+14
View File
@@ -259,3 +259,17 @@ dpkg -l | grep -E 'docker.io|docker-ce|containerd|compose'
Gitea в Docker обычно слушает только **HTTP :3000**; **:443** пустой, пока не настроен TLS-прокси на хосте. При схеме из [`docs/haproxy-kalinamall.cfg`](haproxy-kalinamall.cfg) на узле Gitea должен слушать кто‑то **HTTPS на 443** (чаще **nginx** с вашим wildcard). Gitea в Docker обычно слушает только **HTTP :3000**; **:443** пустой, пока не настроен TLS-прокси на хосте. При схеме из [`docs/haproxy-kalinamall.cfg`](haproxy-kalinamall.cfg) на узле Gitea должен слушать кто‑то **HTTPS на 443** (чаще **nginx** с вашим wildcard).
Пошаговая установка: **[`docs/gitea-nginx-https.md`](gitea-nginx-https.md)**. Пошаговая установка: **[`docs/gitea-nginx-https.md`](gitea-nginx-https.md)**.
## 14) Миграция GitHub → Gitea: `Permission denied (publickey)` при push
Скрипт [`migrate-github-to-gitea.sh`](../scripts/migrate-github-to-gitea.sh) по умолчанию делает **`git push`** в Gitea по **SSH**. На машине должен быть **SSH-ключ**, добавленный в ваш аккаунт Gitea. Если миграцию запускают на **сервере с Gitea** под **root**, своего ключа там обычно нет.
Сделайте пуш по **HTTPS** с токеном:
```bash
export PUSH_WITH_SSH=false
export GITEA_USERNAME='ваш_логин_в_Gitea'
# GITEA_TOKEN уже с правами на репозитории
```
См. также [.env.example](../.env.example) и раздел про миграцию в [`README.md`](../README.md).
+3
View File
@@ -3,6 +3,9 @@ set -euo pipefail
# Массовая миграция репозиториев GitHub -> Gitea. # Массовая миграция репозиториев GitHub -> Gitea.
# Переносит всю git-историю через mirror push. Может переносить LFS (опционально). # Переносит всю git-историю через mirror push. Может переносить LFS (опционально).
#
# Пуш в Gitea: PUSH_WITH_SSH=true — нужен SSH-ключ на ЭТОЙ машине (добавлен в Gitea).
# На сервере без ключа — PUSH_WITH_SSH=false и GITEA_USERNAME + GITEA_TOKEN (HTTPS).
: "${GITHUB_TOKEN:?Set GITHUB_TOKEN}" : "${GITHUB_TOKEN:?Set GITHUB_TOKEN}"
: "${GITHUB_OWNER:?Set GITHUB_OWNER (user or org on GitHub)}" : "${GITHUB_OWNER:?Set GITHUB_OWNER (user or org on GitHub)}"