Files
owngit/docs/troubleshooting.md
T
2026-04-22 11:59:46 +10:00

6.0 KiB

Troubleshooting

1) https://git.papatramp.ru не открывается

Проверь DNS и маршрутизацию:

dig +short git.papatramp.ru
  • из интернета должен резолвиться во внешний IP;
  • из локалки лучше Split DNS на LAN IP HAProxy.

Проверь HAProxy:

sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl status haproxy --no-pager

2) 404 от HAProxy

Причина: не совпадает Host, запрос уходит в bk_http_default.

Проверка:

curl -I -H "Host: git.papatramp.ru" http://127.0.0.1

Убедись, что есть ACL:

  • acl host_git hdr(host) -i git.papatramp.ru
  • use_backend bk_gitea if host_git

3) 503 от HAProxy на Gitea

Причина: backend bk_gitea down.

Проверки:

curl -I http://192.168.128.100:3000
curl -I http://192.168.128.100:3000/api/healthz

Если не отвечает:

cd /opt/gitea
sudo docker compose ps
sudo docker compose logs --tail=200 gitea

4) SSH push не работает (Permission denied (publickey))

Проверь порт и доступ:

nc -zv git.papatramp.ru 2222
ssh -vvv -p 2222 git@git.papatramp.ru

Убедись:

  • публичный ключ добавлен в Gitea аккаунт;
  • в ~/.ssh/config правильный HostName, Port, IdentityFile;
  • backend bk_git_ssh смотрит на правильный IP/порт.

5) В локалке не работает, а из интернета работает

Обычно это DNS/NAT loopback:

  • настрой Split DNS (git.papatramp.ru -> LAN IP HAProxy);
  • либо включи Hairpin NAT на роутере.

6) Миграция не создает репозитории в Gitea

Проверь токен и права:

  • GITEA_TOKEN должен иметь право создавать репозитории;
  • для org нужен доступ к организации;
  • GITEA_OWNER_TYPE должен соответствовать user/org.

Проверка API:

curl -H "Authorization: token $GITEA_TOKEN" "$GITEA_URL/api/v1/user"

7) Private репозитории GitHub не видны в миграции

Проверь GITHUB_TOKEN:

  • токен должен иметь права на чтение приватных репозиториев;
  • GITHUB_OWNER и GITHUB_OWNER_TYPE должны быть корректными.

8) LFS не перенесся

Включи:

export MIGRATE_LFS=true

И проверь наличие git-lfs:

git lfs version

9) Кривые редиректы/URL в Gitea

Проверь ROOT_URL в app.ini:

[server]
ROOT_URL = https://git.papatramp.ru/

И заголовки от HAProxy в bk_gitea (X-Forwarded-Proto, X-Forwarded-Host, Host).

10) E: Unable to locate package docker-compose-plugin

Команды в этом репозитории используют Docker Compose v2 (docker compose …). Пакет docker-compose-plugin есть не на каждой установке Ubuntu: отключён репозиторий universe, минимальный образ, сторонняя сборка без полных источников apt.

Шаг 1: включить universe и обновить индекс

На официальных Ubuntu Desktop/Server пакет обычно в universe:

sudo apt-get install -y software-properties-common
sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install -y docker-compose-plugin

Если Docker ещё не ставили: sudo apt-get install -y docker.io (и снова docker-compose-plugin).

Шаг 2: официальный репозиторий Docker (если шаг 1 не помог)

Подходит для систем без нужного пакета в Ubuntu или если нужны актуальные docker-ce и плагины с одного источника. Полная инструкция и ключи — на странице установки Docker Engine для Ubuntu.

Кратко: добавляется репозиторий download.docker.com, затем:

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker

Важно: пакет docker.io (из Ubuntu) и метапакет docker-ce (из Docker) для демона конфликтуют: на одной машине держите что-то одно. Если уже установлен docker.io и менять не хотите, сначала попробуйте только шаг 1 и отдельно docker-compose-plugin из того же Ubuntu; иначе перейдите на docker-ce по документации Docker и удалите docker.io.

Шаг 3: плагин вручную из релиза Compose (без apt)

Если нужен только бинарник Compose v2 рядом с уже работающим docker:

  • Актуальная версия и архитектура — в релизах compose.
  • Пример для amd64 (подставьте версию и имя файла со страницы релиза):
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL "https://github.com/docker/compose/releases/download/v2.XX.YY/docker-compose-linux-x86_64" \
  -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
docker compose version

Путь …/cli-plugins/docker-compose — стандартный для подкоманды docker compose.

Проверка

docker compose version