Files
jaryo/synology-git-diagnostic.md
vibsin9322 6477a488c2 Add comprehensive Synology NAS Git server setup guides
- 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
2025-08-21 13:58:24 +09:00

4.6 KiB

시놀로지 NAS Git Server 진단 및 해결 가이드

🔍 1단계: Git Server 패키지 상태 확인

1.1 DSM 패키지 센터 점검

  1. DSM 로그인패키지 센터
  2. 설치됨 탭에서 "Git Server" 검색
  3. 상태 확인:
    • 실행 중: 정상 동작
    • ⚠️ 중지됨: 서비스 시작 필요
    • 미설치: 패키지 설치 필요

1.2 Git Server 서비스 시작

# 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 기본 경로 확인

# SSH 접속 후 확인
ls -la /volume1/
ls -la /volume1/git/

# Git 설정 디렉토리 확인
ls -la /usr/local/git/

3.2 권한 문제 해결

# 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 레포지토리 생성

# 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 웹 인터페이스 활성화

# Git HTTP 서버 시작
cd /volume1/git
sudo git daemon --reuseaddr --base-path=. --export-all --verbose --enable=receive-pack

🌐 5단계: 웹 인터페이스 설정

5.1 Git Web 설정

# 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 패키지 미설치

# 패키지 센터에서 Git Server 재설치
# 또는 수동 Git 설치
sudo apt update
sudo apt install git git-daemon-run

원인 2: 서비스 시작 실패

# 서비스 상태 확인
sudo systemctl status git-daemon
sudo journalctl -u git-daemon

# 수동 재시작
sudo systemctl restart git-daemon

원인 3: 권한 문제

# 권한 재설정
sudo chown -R www-data:www-data /volume1/git
sudo chmod -R 755 /volume1/git

6.2 포트 충돌 해결

# 포트 사용 확인
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 로컬에서 연결 테스트

# 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 기존 프로젝트 푸시

# 기존 프로젝트에서
git remote add nas ssh://admin@your-nas-ip/volume1/git/jaryo-file-manager.git
git push nas master

🔄 8단계: 자동화 설정

8.1 systemd 서비스 생성

# /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 레포지토리를 성공적으로 설정할 수 있습니다.