- Move 20250714_migration_from_github.md to troubleshooting directory - Update README.md links to reflect new file location - Ensure troubleshooting folder is tracked in Git
121 lines
3.7 KiB
Markdown
121 lines
3.7 KiB
Markdown
# GitHub → Gitea 마이그레이션 가이드
|
|
|
|
**날짜**: 2025-07-14
|
|
**작업자**: Claude (RO-BEING 시스템 관리)
|
|
|
|
## 개요
|
|
|
|
ivada-Robeing 조직의 모든 GitHub 저장소를 자체 호스팅 Gitea 서버로 마이그레이션한 작업 기록입니다.
|
|
|
|
## 마이그레이션 대상 저장소
|
|
|
|
총 7개 저장소가 성공적으로 이전되었습니다:
|
|
|
|
| GitHub 저장소 | Gitea 저장소 | 크기 | 설명 |
|
|
|---------------|--------------|------|------|
|
|
| `ivada-Robeing/DOCS.git` | `ivada_Ro-being/docs.git` | 548KB | 프로젝트 문서 |
|
|
| `ivada-Robeing/frontend-base.git` | `ivada_Ro-being/frontend-base.git` | 7.8MB | React 대시보드 |
|
|
| `ivada-Robeing/api-base.git` | `ivada_Ro-being/api-base.git` | 616KB | 안정화 API |
|
|
| `ivada-Robeing/test.git` | `ivada_Ro-being/test.git` | 3.1MB | 메인 백엔드 (뇌) |
|
|
| `ivada-Robeing/test_meta-skill.git` | `ivada_Ro-being/test-meta-skill.git` | 220KB | 스킬 실험실 |
|
|
| `ivada-Robeing/test_front.git` | `ivada_Ro-being/test-front.git` | 6.6MB | 프론트 통합 테스트 |
|
|
| `ivada-Robeing/nginx-infra.git` | `ivada_Ro-being/nginx-infra.git` | 256KB | Nginx 인프라 설정 |
|
|
|
|
**총 데이터량**: 약 19MB
|
|
|
|
## 발생한 문제
|
|
|
|
### HTTP 413 오류 (Request Entity Too Large)
|
|
|
|
**증상**: 2MB 이상의 파일(이미지 등)이 포함된 저장소 push 시 413 오류 발생
|
|
|
|
**원인**: nginx의 기본 `client_max_body_size` 제한 (1MB)
|
|
|
|
**해결책**:
|
|
```bash
|
|
# nginx 설정 파일 수정
|
|
sudo nano /etc/nginx/sites-available/default
|
|
|
|
# git.ro-being.com 서버 블록에 추가
|
|
server {
|
|
listen 443 ssl http2;
|
|
server_name git.ro-being.com;
|
|
|
|
client_max_body_size 100M; # 추가된 설정
|
|
|
|
# ... 기타 설정
|
|
}
|
|
|
|
# 설정 테스트 및 적용
|
|
sudo nginx -t
|
|
sudo systemctl reload nginx
|
|
```
|
|
|
|
## 마이그레이션 절차
|
|
|
|
### 1. GitHub 저장소 클론
|
|
```bash
|
|
mkdir -p github-migration && cd github-migration
|
|
|
|
# GitHub 토큰 사용하여 클론
|
|
git clone https://TOKEN@github.com/ivada-Robeing/REPO_NAME.git
|
|
```
|
|
|
|
### 2. Gitea 저장소 생성
|
|
웹 인터페이스에서 각 저장소 생성:
|
|
- https://git.ro-being.com
|
|
|
|
### 3. Remote URL 변경 및 Push
|
|
```bash
|
|
cd REPO_NAME
|
|
|
|
# remote URL을 Gitea로 변경
|
|
git remote set-url origin https://USERNAME:TOKEN@git.ro-being.com/ivada_Ro-being/REPO_NAME.git
|
|
|
|
# 메인 브랜치 push
|
|
git push -u origin main
|
|
|
|
# 충돌 시 force push (기존 내용 덮어쓰기)
|
|
git push -f origin main
|
|
```
|
|
|
|
## 사용된 인증 정보
|
|
|
|
- **GitHub Token**: `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`
|
|
- **Gitea Token**: `b18d3b01a802f001f3e2649cbd750008710a1d99`
|
|
- **Gitea 사용자**: `ivada_Ro-being`
|
|
|
|
## 후속 작업
|
|
|
|
### 완료된 작업
|
|
- [x] 모든 저장소 마이그레이션 완료
|
|
- [x] nginx 파일 크기 제한 해제
|
|
- [x] 마이그레이션 문서 작성
|
|
|
|
### 권장 사항
|
|
1. **GitHub 저장소 아카이브**: 원본 저장소를 read-only로 설정
|
|
2. **로컬 환경 업데이트**: 개발자들의 로컬 remote URL 변경
|
|
3. **CI/CD 파이프라인 업데이트**: GitHub Actions → Gitea Actions 마이그레이션
|
|
4. **Webhook 설정**: Slack 알림 등 기존 통합 기능 재설정
|
|
|
|
## 트러블슈팅
|
|
|
|
### 일반적인 문제들
|
|
|
|
**문제**: `error: RPC 실패; HTTP 413`
|
|
**해결**: nginx `client_max_body_size` 증가
|
|
|
|
**문제**: `! [rejected] main -> main (fetch first)`
|
|
**해결**: `git push -f origin main` 으로 강제 푸시
|
|
|
|
**문제**: 큰 파일 (100MB+) 업로드 실패
|
|
**해결**: Git LFS 설정 필요
|
|
|
|
## 참고 링크
|
|
|
|
- **Gitea 서버**: https://git.ro-being.com
|
|
- **백업 정책**: `/home/admin/BACKUP_TO_NAS_POLICY.md`
|
|
- **아키텍처 문서**: `/home/admin/ROBING_ARCHITECTURE_PHILOSOPHY.md`
|
|
|
|
---
|
|
*이 문서는 Claude에 의해 자동 생성되었습니다.* |