Files
configure_nginx_manager/gitea-hooks/README.md
Dmitriy Fofanov 2f89d9e169
Some checks failed
Sync from Gitea / sync (push) Has been cancelled
Добавлено подробное руководство по тестированию SSL-сертификатов и скрипты автоматизации.
- Добавлено подробное руководство по тестированию SSL-сертификатов с использованием самоподписанных сертификатов.
- Добавлены инструкции по созданию тестовых сертификатов с помощью Makefile, Python и Bash-скриптов.
- Добавлены сравнение методов и подробные инструкции по настройке, проверке и использованию в Nginx.
- Задокументированы этапы перехода от тестовых сертификатов к рабочим.
- Создано руководство по получению сертификатов Let's Encrypt с DNS-запросом для провайдера reg.ru.
- Разработано подробное руководство по настройке использования глобального SSL-сертификата в Nginx Proxy Manager.
- Предоставлены инструкции по созданию и обновлению wildcard-сертификатов в Nginx Proxy Manager.
- Добавлены скрипты автоматизации для создания и обновления SSL-сертификатов с помощью API reg.ru.
- Реализованы Git-хуки для Gitea для синхронизации изменений с GitHub после отправки.
- Улучшено логирование и обработка ошибок в Git-хуках для улучшения мониторинга и устранения неполадок.
2025-10-27 22:18:32 +03:00

4.0 KiB
Raw Blame History

Git Hooks для Gitea

Автоматическая синхронизация с GitHub после push в Gitea.

📁 Файлы

  • post-receive - Hook для автоматического push в GitHub

🚀 Установка

1. Найдите путь к репозиторию на сервере Gitea

# Обычно это один из путей:
/var/lib/gitea/data/gitea-repositories/username/configure_nginx_manager.git
# или
/home/git/gitea-repositories/username/configure_nginx_manager.git

2. Скопируйте hook

# На сервере Gitea
cd /path/to/gitea-repositories/username/configure_nginx_manager.git/hooks/

# Скопируйте файл
cp /path/to/this/repo/gitea-hooks/post-receive ./

# Или загрузите напрямую
wget https://raw.githubusercontent.com/username/configure_nginx_manager/main/gitea-hooks/post-receive

3. Настройте hook

nano post-receive

Измените:

GITHUB_REPO="git@github.com:YOUR_USERNAME/configure_nginx_manager.git"

4. Сделайте исполняемым

chmod +x post-receive
chown git:git post-receive

5. Создайте директорию для логов

mkdir -p /var/log/gitea
chown git:git /var/log/gitea

🔑 Настройка аутентификации

Вариант A: SSH (Рекомендуется)

# На сервере Gitea под пользователем git
sudo su - git
ssh-keygen -t ed25519 -C "gitea-sync"

# Скопируйте публичный ключ
cat ~/.ssh/id_ed25519.pub

# Добавьте на GitHub:
# Settings → SSH and GPG keys → New SSH key

# Проверьте
ssh -T git@github.com

Вариант B: HTTPS с токеном

  1. Создайте Personal Access Token на GitHub

    • Settings → Developer settings → Personal access tokens
    • Scope: repo
  2. Используйте в hook:

GITHUB_REPO="https://YOUR_TOKEN@github.com/username/configure_nginx_manager.git"

Проверка

# Тестовый push
cd /tmp
git clone http://gitea.example.com/username/configure_nginx_manager.git
cd configure_nginx_manager
echo "test" >> README.md
git add README.md
git commit -m "Test sync"
git push

# Проверьте лог
tail -f /var/log/gitea/github-sync.log

# Проверьте GitHub - изменения должны появиться через 1-2 секунды

📊 Что делает hook

  1. Отслеживает push в ветки main и master
  2. Автоматически пушит в GitHub
  3. Синхронизирует теги
  4. Логирует все операции
  5. Показывает красивый вывод с эмодзи

🐛 Устранение проблем

Hook не срабатывает

# Проверьте права
ls -la post-receive
# Должно быть: -rwxr-xr-x

# Проверьте владельца
chown git:git post-receive

# Проверьте синтаксис
bash -n post-receive

Permission denied

# Для SSH
ssh -T git@github.com

# Проверьте права на ключ
chmod 600 ~/.ssh/id_ed25519

# Для HTTPS - проверьте токен

Не находит git

# Добавьте PATH в начало hook:
export PATH=/usr/bin:/usr/local/bin:$PATH

📝 Логи

# Просмотр логов синхронизации
tail -f /var/log/gitea/github-sync.log

# Очистка старых логов
> /var/log/gitea/github-sync.log

🔄 Альтернативы

Если Git Hook не подходит, см. другие методы в GITEA_SYNC.md:

  • GitHub Actions (каждый час)
  • Gitea Mirror (встроенная функция)
  • Двойной remote (локально)

См. также: GITEA_SYNC.md для подробной документации