Add safe external HAProxy deployment flow.
Make bootstrap skip local HAProxy by default and support remote HAProxy config backup, validation, reload, and rollback over SSH. Made-with: Cursor
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
- `scripts/setup-ufw.sh` — базовая настройка UFW под эту схему портов.
|
||||
- `scripts/safe-apply-ssh-hardening.sh` — безопасное применение SSH hardening.
|
||||
- `scripts/safe-apply-ssh-lockdown.sh` — безопасное применение строгого SSH lockdown-профиля.
|
||||
- `scripts/bootstrap-own-git.sh` — one-shot установка стека (deps + Gitea + HAProxy + fail2ban + timer).
|
||||
- `scripts/bootstrap-own-git.sh` — one-shot установка стека (deps + Gitea + опционально HAProxy + fail2ban + timer).
|
||||
- `.env.example` — шаблон переменных окружения для миграции.
|
||||
- `Makefile` — быстрые команды установки/проверки/миграции.
|
||||
- `docs/troubleshooting.md` — типовые проблемы и диагностика.
|
||||
@@ -51,17 +51,17 @@ cd /opt/gitea
|
||||
sudo docker compose up -d
|
||||
```
|
||||
|
||||
Или one-shot bootstrap:
|
||||
Или one-shot bootstrap (без локального HAProxy, если он уже есть отдельно):
|
||||
|
||||
```bash
|
||||
chmod +x scripts/bootstrap-own-git.sh
|
||||
sudo OWGIT_REPO_DIR=/opt/owngit scripts/bootstrap-own-git.sh
|
||||
sudo OWGIT_REPO_DIR=/opt/owngit ENABLE_HAPROXY=false scripts/bootstrap-own-git.sh
|
||||
```
|
||||
|
||||
Сначала безопасная проверка шагов без изменений:
|
||||
|
||||
```bash
|
||||
OWGIT_REPO_DIR=/opt/owngit scripts/bootstrap-own-git.sh --dry-run
|
||||
sudo OWGIT_REPO_DIR=/opt/owngit ENABLE_HAPROXY=false scripts/bootstrap-own-git.sh --dry-run
|
||||
```
|
||||
|
||||
Полезные переменные bootstrap:
|
||||
@@ -69,11 +69,65 @@ OWGIT_REPO_DIR=/opt/owngit scripts/bootstrap-own-git.sh --dry-run
|
||||
```bash
|
||||
SERVER_DOMAIN=git.papatramp.ru
|
||||
GITEA_LAN_IP=192.168.128.100
|
||||
ENABLE_HAPROXY=false
|
||||
ENABLE_REMOTE_HAPROXY_DEPLOY=false
|
||||
REMOTE_HAPROXY_HOST=192.168.128.65
|
||||
REMOTE_HAPROXY_PORT=22
|
||||
REMOTE_HAPROXY_USER=papatramp
|
||||
# REMOTE_HAPROXY_PASSWORD='ваш_пароль_ssh'
|
||||
INSTALL_UFW=false
|
||||
ENABLE_FAIL2BAN=true
|
||||
ENABLE_BACKUP_TIMER=true
|
||||
```
|
||||
|
||||
### Безопасный порядок для чистого Ubuntu 24.04
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /opt && cd /opt
|
||||
sudo git clone https://github.com/PTah/owngit.git
|
||||
cd /opt/owngit && sudo chmod +x scripts/bootstrap-own-git.sh
|
||||
```
|
||||
|
||||
Сначала прогон без изменений:
|
||||
|
||||
```bash
|
||||
sudo OWGIT_REPO_DIR=/opt/owngit ENABLE_HAPROXY=false scripts/bootstrap-own-git.sh --dry-run
|
||||
```
|
||||
|
||||
Потом реальный запуск:
|
||||
|
||||
```bash
|
||||
sudo OWGIT_REPO_DIR=/opt/owngit ENABLE_HAPROXY=false scripts/bootstrap-own-git.sh
|
||||
```
|
||||
|
||||
После установки быстрая проверка:
|
||||
|
||||
```bash
|
||||
docker ps
|
||||
sudo systemctl status haproxy --no-pager
|
||||
curl -I http://127.0.0.1:3000
|
||||
```
|
||||
|
||||
Если HAProxy у вас на отдельном узле (например, `192.168.128.65`), проверяйте его сервис на этом узле и обновите там backend на новый IP Gitea (`:3000`) и SSH proxy (`:2222`).
|
||||
|
||||
### Автообновление удаленного HAProxy по SSH
|
||||
|
||||
`bootstrap-own-git.sh` умеет подключаться к удаленному HAProxy-серверу, делать backup текущего `/etc/haproxy/haproxy.cfg`, загружать новый конфиг, валидировать его и делать `reload` (с откатом при ошибке).
|
||||
|
||||
Пример запуска для вашего случая:
|
||||
|
||||
```bash
|
||||
sudo OWGIT_REPO_DIR=/opt/owngit \
|
||||
ENABLE_HAPROXY=false \
|
||||
ENABLE_REMOTE_HAPROXY_DEPLOY=true \
|
||||
REMOTE_HAPROXY_HOST=192.168.128.65 \
|
||||
REMOTE_HAPROXY_USER=papatramp \
|
||||
REMOTE_HAPROXY_PASSWORD='ваш_пароль_ssh' \
|
||||
scripts/bootstrap-own-git.sh
|
||||
```
|
||||
|
||||
Рекомендуется сначала сделать dry-run с теми же переменными.
|
||||
|
||||
Положить `app.ini`:
|
||||
|
||||
```bash
|
||||
@@ -91,6 +145,8 @@ openssl rand -hex 32
|
||||
|
||||
## 2) Установка HAProxy конфига
|
||||
|
||||
Если HAProxy уже работает на отдельном сервере (например, `192.168.128.65`), этот раздел применяется на том сервере HAProxy, а не на хосте с Gitea.
|
||||
|
||||
```bash
|
||||
sudo cp haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg
|
||||
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
|
||||
|
||||
Reference in New Issue
Block a user