- Add synology-git-diagnostic.md: complete troubleshooting guide - Enhance create-git-repo.sh: improved error handling and user feedback - Add nas-git-connection-test.md: step-by-step connection testing - Add alternative-git-servers.md: Docker-based Git server alternatives - Cover Gitea, GitLab, Forgejo, and manual Git server installation - Include troubleshooting and performance optimization tips
203 lines
4.6 KiB
Markdown
203 lines
4.6 KiB
Markdown
# 시놀로지 NAS Git Server 진단 및 해결 가이드
|
|
|
|
## 🔍 1단계: Git Server 패키지 상태 확인
|
|
|
|
### 1.1 DSM 패키지 센터 점검
|
|
1. **DSM 로그인** → **패키지 센터**
|
|
2. **설치됨** 탭에서 "Git Server" 검색
|
|
3. 상태 확인:
|
|
- ✅ **실행 중**: 정상 동작
|
|
- ⚠️ **중지됨**: 서비스 시작 필요
|
|
- ❌ **미설치**: 패키지 설치 필요
|
|
|
|
### 1.2 Git Server 서비스 시작
|
|
```bash
|
|
# SSH로 NAS 접속 후
|
|
sudo systemctl status git-daemon
|
|
sudo systemctl start git-daemon
|
|
sudo systemctl enable git-daemon
|
|
```
|
|
|
|
## 🛠️ 2단계: 기본 설정 확인
|
|
|
|
### 2.1 SSH 서비스 활성화
|
|
1. **DSM 제어판** → **터미널 및 SNMP**
|
|
2. **SSH 서비스 활성화** 체크
|
|
3. 포트 번호 확인 (기본: 22)
|
|
|
|
### 2.2 사용자 권한 설정
|
|
1. **DSM 제어판** → **사용자 및 그룹**
|
|
2. 사용자 선택 → **편집** → **애플리케이션**
|
|
3. **Git Server** 권한 부여
|
|
|
|
### 2.3 방화벽 설정
|
|
1. **DSM 제어판** → **보안** → **방화벽**
|
|
2. 다음 포트 허용:
|
|
- SSH: 22
|
|
- Git HTTP: 3000
|
|
- Git HTTPS: 3001
|
|
|
|
## 📁 3단계: Git 디렉토리 구조 확인
|
|
|
|
### 3.1 기본 경로 확인
|
|
```bash
|
|
# SSH 접속 후 확인
|
|
ls -la /volume1/
|
|
ls -la /volume1/git/
|
|
|
|
# Git 설정 디렉토리 확인
|
|
ls -la /usr/local/git/
|
|
```
|
|
|
|
### 3.2 권한 문제 해결
|
|
```bash
|
|
# Git 디렉토리 생성
|
|
sudo mkdir -p /volume1/git
|
|
sudo chown -R admin:users /volume1/git
|
|
sudo chmod 755 /volume1/git
|
|
|
|
# Git Server 사용자 추가 (필요시)
|
|
sudo adduser git
|
|
sudo usermod -a -G users git
|
|
```
|
|
|
|
## 🔧 4단계: 레포지토리 수동 생성
|
|
|
|
### 4.1 Bare 레포지토리 생성
|
|
```bash
|
|
# SSH로 NAS 접속
|
|
ssh admin@your-nas-ip
|
|
|
|
# 프로젝트 디렉토리 생성
|
|
cd /volume1/git
|
|
sudo mkdir jaryo-file-manager.git
|
|
cd jaryo-file-manager.git
|
|
|
|
# Bare 레포지토리 초기화
|
|
sudo git init --bare
|
|
sudo chown -R admin:users .
|
|
```
|
|
|
|
### 4.2 웹 인터페이스 활성화
|
|
```bash
|
|
# Git HTTP 서버 시작
|
|
cd /volume1/git
|
|
sudo git daemon --reuseaddr --base-path=. --export-all --verbose --enable=receive-pack
|
|
```
|
|
|
|
## 🌐 5단계: 웹 인터페이스 설정
|
|
|
|
### 5.1 Git Web 설정
|
|
```bash
|
|
# CGit 또는 GitWeb 설치
|
|
sudo apt update
|
|
sudo apt install gitweb
|
|
|
|
# Apache 설정 (Web Station 사용시)
|
|
sudo ln -s /usr/share/gitweb /volume1/web/git
|
|
```
|
|
|
|
### 5.2 브라우저에서 접속
|
|
- URL: `http://your-nas-ip/git`
|
|
- 또는: `http://your-nas-ip:3000`
|
|
|
|
## 🚨 6단계: 문제 해결
|
|
|
|
### 6.1 "레포지토리 설정이 안보임" 해결
|
|
**원인 1: Git Server 패키지 미설치**
|
|
```bash
|
|
# 패키지 센터에서 Git Server 재설치
|
|
# 또는 수동 Git 설치
|
|
sudo apt update
|
|
sudo apt install git git-daemon-run
|
|
```
|
|
|
|
**원인 2: 서비스 시작 실패**
|
|
```bash
|
|
# 서비스 상태 확인
|
|
sudo systemctl status git-daemon
|
|
sudo journalctl -u git-daemon
|
|
|
|
# 수동 재시작
|
|
sudo systemctl restart git-daemon
|
|
```
|
|
|
|
**원인 3: 권한 문제**
|
|
```bash
|
|
# 권한 재설정
|
|
sudo chown -R www-data:www-data /volume1/git
|
|
sudo chmod -R 755 /volume1/git
|
|
```
|
|
|
|
### 6.2 포트 충돌 해결
|
|
```bash
|
|
# 포트 사용 확인
|
|
sudo netstat -tulpn | grep :3000
|
|
sudo netstat -tulpn | grep :22
|
|
|
|
# 다른 포트로 변경
|
|
sudo git daemon --port=3001 --reuseaddr --base-path=/volume1/git --export-all
|
|
```
|
|
|
|
## 📋 7단계: 연결 테스트
|
|
|
|
### 7.1 로컬에서 연결 테스트
|
|
```bash
|
|
# SSH 연결 테스트
|
|
ssh admin@your-nas-ip
|
|
|
|
# Git 클론 테스트
|
|
git clone ssh://admin@your-nas-ip/volume1/git/jaryo-file-manager.git
|
|
|
|
# 또는 HTTP 연결
|
|
git clone http://your-nas-ip:3000/jaryo-file-manager.git
|
|
```
|
|
|
|
### 7.2 기존 프로젝트 푸시
|
|
```bash
|
|
# 기존 프로젝트에서
|
|
git remote add nas ssh://admin@your-nas-ip/volume1/git/jaryo-file-manager.git
|
|
git push nas master
|
|
```
|
|
|
|
## 🔄 8단계: 자동화 설정
|
|
|
|
### 8.1 systemd 서비스 생성
|
|
```bash
|
|
# /etc/systemd/system/git-daemon.service
|
|
sudo tee /etc/systemd/system/git-daemon.service << EOF
|
|
[Unit]
|
|
Description=Git Daemon
|
|
After=network.target
|
|
|
|
[Service]
|
|
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/volume1/git --export-all --verbose --enable=receive-pack
|
|
Restart=always
|
|
User=git
|
|
Group=git
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
sudo systemctl enable git-daemon
|
|
sudo systemctl start git-daemon
|
|
```
|
|
|
|
## 📊 요약
|
|
|
|
레포지토리 설정이 보이지 않는 주요 원인:
|
|
1. ❌ Git Server 패키지 미설치/미실행
|
|
2. ❌ SSH 서비스 비활성화
|
|
3. ❌ 사용자 권한 부족
|
|
4. ❌ 방화벽 차단
|
|
5. ❌ Git 디렉토리 부재
|
|
|
|
해결 순서:
|
|
1. 패키지 설치/재시작
|
|
2. SSH 및 권한 설정
|
|
3. 수동 레포지토리 생성
|
|
4. 연결 테스트
|
|
5. 자동화 설정
|
|
|
|
이 가이드를 따라하면 시놀로지 NAS에서 Git 레포지토리를 성공적으로 설정할 수 있습니다. |