Files
configure_nginx_manager/gitea-hooks
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
..

Git Hooks for Gitea

Automatic synchronization with GitHub after push to Gitea.

📁 Files

  • post-receive - Hook for automatic push to GitHub

🚀 Installation

1. Find Repository Path on Gitea Server

# Usually one of these paths:
/var/lib/gitea/data/gitea-repositories/username/configure_nginx_manager.git
# or
/home/git/gitea-repositories/username/configure_nginx_manager.git

2. Copy Hook

# On Gitea server
cd /path/to/gitea-repositories/username/configure_nginx_manager.git/hooks/

# Copy file
cp /path/to/this/repo/gitea-hooks/post-receive ./

# Or download directly
wget https://raw.githubusercontent.com/username/configure_nginx_manager/main/gitea-hooks/post-receive

3. Configure Hook

nano post-receive

Change:

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

4. Make Executable

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

5. Create Log Directory

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

🔑 Authentication Setup

# On Gitea server as git user
sudo su - git
ssh-keygen -t ed25519 -C "gitea-sync"

# Copy public key
cat ~/.ssh/id_ed25519.pub

# Add to GitHub:
# Settings → SSH and GPG keys → New SSH key

# Verify
ssh -T git@github.com

Option B: HTTPS with Token

  1. Create Personal Access Token on GitHub

    • Settings → Developer settings → Personal access tokens
    • Scope: repo
  2. Use in hook:

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

Verification

# Test 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

# Check log
tail -f /var/log/gitea/github-sync.log

# Check GitHub - changes should appear in 1-2 seconds

📊 What Hook Does

  1. Monitors pushes to main and master branches
  2. Automatically pushes to GitHub
  3. Synchronizes tags
  4. Logs all operations
  5. Shows beautiful output with emojis

🐛 Troubleshooting

Hook Not Firing

# Check permissions
ls -la post-receive
# Should be: -rwxr-xr-x

# Check owner
chown git:git post-receive

# Check syntax
bash -n post-receive

Permission Denied

# For SSH
ssh -T git@github.com

# Check key permissions
chmod 600 ~/.ssh/id_ed25519

# For HTTPS - check token

Can't Find Git

# Add PATH to beginning of hook:
export PATH=/usr/bin:/usr/local/bin:$PATH

📝 Logs

# View sync logs
tail -f /var/log/gitea/github-sync.log

# Clear old logs
> /var/log/gitea/github-sync.log

🔄 Alternatives

If Git Hook doesn't work, see other methods in GITEA_SYNC_EN.md:

  • GitHub Actions (every hour)
  • Gitea Mirror (built-in feature)
  • Double remote (locally)

See also: GITEA_SYNC_EN.md for detailed documentation