init
This commit is contained in:
205
MIGRATION_GUIDE.md
Normal file
205
MIGRATION_GUIDE.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# Миграция Gitea из Docker VM в LXC контейнер
|
||||
|
||||
## Обзор миграции
|
||||
|
||||
| Параметр | Исходный | Целевой |
|
||||
|----------|----------|---------|
|
||||
| Proxmox Host | 192.168.0.32 | 192.168.0.33 |
|
||||
| IP сервиса | 192.168.0.38 (VM) | 192.168.0.XX (LXC) |
|
||||
| Тип развертывания | Docker в VM | LXC контейнер |
|
||||
|
||||
---
|
||||
|
||||
## Пошаговая инструкция
|
||||
|
||||
### Этап 1: Подготовка (на исходном сервере)
|
||||
|
||||
#### 1.1 Определить структуру Docker Gitea
|
||||
|
||||
```bash
|
||||
ssh user@192.168.0.38
|
||||
|
||||
docker ps | grep -i gitea
|
||||
docker volume ls | grep -i gitea
|
||||
docker inspect gitea | jq '.[0].Mounts'
|
||||
```
|
||||
|
||||
#### 1.2 Создать бэкап
|
||||
|
||||
```bash
|
||||
# Используйте интерактивный скрипт или запустите вручную:
|
||||
./migration-scripts/backup-gitea-for-migration.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Этап 2: Создание LXC контейнера (на Proxmox)
|
||||
|
||||
#### Через CLI:
|
||||
|
||||
```bash
|
||||
pct create 200 local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst \
|
||||
--hostname gitea \
|
||||
--memory 2048 \
|
||||
--cores 2 \
|
||||
--rootfs local-lvm:20 \
|
||||
--net0 name=eth0,bridge=vmbr0,ip=192.168.0.40/24,gw=192.168.0.1 \
|
||||
--features nesting=1 \
|
||||
--start 1
|
||||
|
||||
pct enter 200
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Этап 3: Установка Gitea в LXC
|
||||
|
||||
#### 3.1 Базовая подготовка
|
||||
|
||||
```bash
|
||||
apt update && apt upgrade -y
|
||||
apt install -y git sqlite3 wget curl
|
||||
|
||||
adduser --system --shell /bin/bash --gecos 'Git Version Control' \
|
||||
--group --disabled-password --home /home/git git
|
||||
```
|
||||
|
||||
#### 3.2 Установка Gitea
|
||||
|
||||
```bash
|
||||
mkdir -p /var/lib/gitea/{custom,data,log}
|
||||
mkdir -p /etc/gitea
|
||||
chown -R git:git /var/lib/gitea
|
||||
chown root:git /etc/gitea
|
||||
chmod 770 /etc/gitea
|
||||
|
||||
GITEA_VERSION="1.25.3"
|
||||
wget -O /usr/local/bin/gitea https://dl.gitea.io/gitea/${GITEA_VERSION}/gitea-${GITEA_VERSION}-linux-amd64
|
||||
chmod +x /usr/local/bin/gitea
|
||||
|
||||
gitea --version
|
||||
```
|
||||
|
||||
#### 3.3 Настройка systemd
|
||||
|
||||
```bash
|
||||
cp gitea.service /etc/systemd/system/gitea.service
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable gitea
|
||||
systemctl start gitea
|
||||
systemctl status gitea
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Этап 4: Миграция данных
|
||||
|
||||
#### 4.1 Перенос файлов
|
||||
|
||||
```bash
|
||||
scp /tmp/gitea-backup-*.tar.gz root@192.168.0.40:/tmp/
|
||||
```
|
||||
|
||||
#### 4.2 Восстановление данных
|
||||
|
||||
```bash
|
||||
cd /tmp
|
||||
tar -xzf gitea-backup-*.tar.gz
|
||||
|
||||
systemctl stop gitea
|
||||
|
||||
# Репозитории
|
||||
cp -r gitea-backup/repositories/* /var/lib/gitea/data/gitea-repositories/
|
||||
|
||||
# Данные
|
||||
cp -r gitea-backup/data/* /var/lib/gitea/data/
|
||||
|
||||
# База данных (SQLite)
|
||||
cp gitea-backup/gitea.db /var/lib/gitea/data/gitea.db
|
||||
|
||||
# Для PostgreSQL:
|
||||
# psql -U gitea -d gitea < gitea-backup/gitea-db.sql
|
||||
|
||||
# Конфигурация
|
||||
cp gitea-backup/app.ini /etc/gitea/app.ini
|
||||
|
||||
# Права
|
||||
chown -R git:git /var/lib/gitea
|
||||
chown root:git /etc/gitea/app.ini
|
||||
chmod 640 /etc/gitea/app.ini
|
||||
|
||||
systemctl start gitea
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Этап 5: Обновление конфигурации
|
||||
|
||||
Редактируйте `/etc/gitea/app.ini`:
|
||||
|
||||
```ini
|
||||
[server]
|
||||
DOMAIN = 192.168.0.40
|
||||
HTTP_PORT = 3000
|
||||
ROOT_URL = http://192.168.0.40:3000/
|
||||
SSH_DOMAIN = 192.168.0.40
|
||||
SSH_PORT = 22
|
||||
|
||||
[database]
|
||||
PATH = /var/lib/gitea/data/gitea.db
|
||||
|
||||
[repository]
|
||||
ROOT = /var/lib/gitea/data/gitea-repositories
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl restart gitea
|
||||
journalctl -u gitea -f
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Этап 6: Проверка миграции
|
||||
|
||||
- [ ] Открыть веб-интерфейс: `http://192.168.0.40:3000`
|
||||
- [ ] Войти под существующим пользователем
|
||||
- [ ] Проверить список репозиториев
|
||||
- [ ] Клонировать репозиторий через HTTP
|
||||
- [ ] Клонировать репозиторий через SSH
|
||||
- [ ] Сделать push в репозиторий
|
||||
|
||||
#### Обновление git remote на клиентах:
|
||||
|
||||
```bash
|
||||
git remote set-url origin http://192.168.0.40:3000/user/repo.git
|
||||
# или
|
||||
git remote set-url origin git@192.168.0.40:user/repo.git
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Gitea не запускается
|
||||
|
||||
```bash
|
||||
journalctl -u gitea -e
|
||||
cat /var/lib/gitea/log/gitea.log
|
||||
|
||||
ls -la /var/lib/gitea/
|
||||
ls -la /etc/gitea/
|
||||
```
|
||||
|
||||
### Ошибки базы данных
|
||||
|
||||
```bash
|
||||
sqlite3 /var/lib/gitea/data/gitea.db "PRAGMA integrity_check;"
|
||||
```
|
||||
|
||||
### Проблемы с SSH
|
||||
|
||||
```bash
|
||||
cat /home/git/.ssh/authorized_keys
|
||||
sudo -u git gitea admin regenerate keys
|
||||
```
|
||||
Reference in New Issue
Block a user