시놀로지 나스 Git 배포 환경 만들기 4단계 — Claude Code에서 push 한 번으로 자동 배포

시놀로지 나스 Git 배포 환경 만들기 4단계 — Claude Code에서 push 한 번으로 자동 배포

로컬에서 Claude Code로 개발하고, 시놀로지 나스의 Git Server에 푸시하면, 나스 Web Station에 자동으로 배포되는 환경을 구성할 수 있습니다. 시놀로지 나스 Git 배포 환경은 DSM 패키지 센터에서 Git Server를 설치하는 것만으로 시작할 수 있고, Docker나 별도 프로그램이 필요 없습니다. 이 글에서는 Git Server 설치부터 자동 배포까지 4단계로 정리합니다.

전체 구조 — 로컬 Claude Code → 나스 Git Server → 나스 배포

먼저 완성된 환경의 흐름을 정리합니다.

단계위치역할
1. 코드 작성로컬 PC (Claude Code)AI 기반 코드 생성·수정
2. git push로컬 → 나스SSH를 통해 나스 Git 저장소에 코드 전송
3. 자동 배포나스 (Git Hook)push 감지 시 웹 폴더에 자동 복사
4. 서비스나스 (Web Station)배포된 코드로 웹사이트 운영

GitHub 같은 외부 서비스 없이 나스 하나로 Git 저장소와 웹 서버를 모두 해결할 수 있습니다. 코드가 나스 안에만 존재하므로 비공개 프로젝트나 사내용 개발에 특히 적합합니다.

1단계. 시놀로지 나스 Git Server 설치

DSM 패키지 센터에서 바로 설치할 수 있습니다. Docker가 필요 없어서 시놀로지 나스 Git 배포 환경을 만드는 가장 간단한 방법입니다.

설치 및 설정

단계수행 위치주요 설정
1DSM패키지 센터에서 Git Server 검색 후 설치
2Git Server 설정Git 접근을 허용할 사용자 계정에 체크
3제어판 → 터미널 및 SNMPSSH 서비스 활성화 확인

Git Server를 설치하면 SSH를 통해 나스에 Git 저장소를 생성하고 push/pull할 수 있습니다. 별도의 웹 UI는 제공되지 않지만, 코드 배포 용도로는 충분합니다.

bare 저장소 생성

나스에 SSH로 접속한 뒤 저장소를 생성합니다.

ssh 사용자명@나스IP
mkdir -p /volume1/git/my-website.git
cd /volume1/git/my-website.git
git init --bare

/volume1/git 폴더는 미리 공유 폴더로 생성해 두거나, 기존 폴더 하위에 만들면 됩니다. --bare 옵션은 작업 디렉토리 없이 저장소 데이터만 보관하는 형태로, 서버용 저장소에 적합합니다.

2단계. 로컬 Claude Code에서 Git 연결

로컬 PC에서 Claude Code로 작업하는 프로젝트를 나스 저장소에 연결합니다.

원격 저장소 등록 및 첫 푸시

cd 프로젝트_폴더
git init
git remote add nas ssh://사용자명@나스IP/volume1/git/my-website.git
git add .
git commit -m "초기 커밋"
git push -u nas main

nas라는 이름으로 원격 저장소를 등록하면, 이후 Claude Code에서 코드를 수정한 뒤 git push nas main 한 줄로 나스에 코드를 전송할 수 있습니다.

SSH 키 등록 (비밀번호 입력 생략)

매번 비밀번호를 입력하지 않으려면 SSH 키를 등록합니다.

  1. 로컬에서 ssh-keygen으로 키를 생성합니다 (이미 있으면 생략)
  2. ssh-copy-id 사용자명@나스IP로 공개 키를 나스에 복사합니다
  3. 이후 git push 시 비밀번호 없이 바로 전송됩니다

3단계. Git Hook으로 자동 배포 설정

시놀로지 나스 Git 배포의 핵심 단계입니다. Git의 post-receive Hook을 활용하면 push가 발생할 때마다 자동으로 Web Station 폴더에 코드를 복사할 수 있습니다.

Hook 파일 생성

나스에 SSH로 접속한 뒤 아래와 같이 작성합니다.

cd /volume1/git/my-website.git/hooks
cat > post-receive << 'EOF'
#!/bin/bash
GIT_WORK_TREE=/volume1/web/my-website git checkout -f main
EOF
chmod +x post-receive

/volume1/web/my-website는 Web Station에서 서비스할 웹 폴더 경로입니다. 이 폴더를 미리 생성해 두어야 합니다.

동작 방식

순서동작
1로컬에서 git push nas main 실행
2나스 Git 저장소에 코드 수신
3post-receive Hook 자동 실행
4/volume1/web/my-website에 최신 코드 복사
5Web Station에서 즉시 반영

4단계. Web Station에서 웹사이트 연결

배포된 코드를 Web Station으로 서비스합니다.

  1. DSM에서 Web Station을 실행합니다
  2. 웹 서비스 포털에서 생성을 클릭합니다
  3. 문서 루트를 /volume1/web/my-website로 지정합니다
  4. 도메인이 있다면 가상 호스트를 설정하고, 없다면 포트 기반으로 연결합니다
  5. PHP가 필요한 프로젝트라면 PHP 프로필도 지정합니다

설정이 끝나면 브라우저에서 접속하여 배포된 사이트를 확인할 수 있습니다.

전체 작업 흐름 요약

단계작업실행 위치소요 시간
1단계Git Server 설치 + bare 저장소 생성나스 (DSM + SSH)약 10분
2단계로컬 Git 원격 저장소 등록 + SSH 키로컬 PC (터미널)약 5분
3단계post-receive Hook 작성나스 (SSH)약 5분
4단계Web Station 웹 서비스 포털 설정나스 (DSM)약 5분

전체 구성에 약 25분이면 충분합니다. Docker 설치 없이 패키지만으로 완성되므로 초보자도 어렵지 않습니다.

실제 사용 예시 — Claude Code 워크플로

이 환경에서의 실제 작업 흐름은 다음과 같습니다.

  1. 로컬 터미널에서 Claude Code 실행
  2. Claude에게 코드 작성·수정 요청
  3. 결과물 확인 후 git add → git commit
  4. git push nas main 실행
  5. 나스 Web Station에 자동 반영 → 브라우저에서 바로 확인

GitHub 같은 외부 서비스를 거치지 않기 때문에 비공개 프로젝트나 사내용 웹앱 개발에 특히 적합합니다.

시놀로지 나스 Git 배포, 주의사항

  • SSH 포트 확인: 나스 SSH 포트를 기본(22)에서 변경했다면 Git remote URL에 포트를 명시해야 합니다 (예: ssh://사용자명@나스IP:22/volume1/git/my-website.git)
  • 파일 권한: post-receive Hook이 Web Station 폴더에 쓰기 권한이 있어야 합니다. Git 접근 사용자와 웹 폴더 소유자가 다르면 권한 오류가 발생할 수 있습니다
  • bare 저장소 경로: bare 저장소는 /volume1/web 바깥에 두는 것을 권장합니다. 웹으로 접근 가능한 경로에 두면 보안 위험이 있습니다
  • .git 노출 방지: Web Station에서 .git 폴더가 웹으로 접근되지 않도록 Nginx 설정에서 차단하는 것을 권장합니다
  • Git Server vs Gitea: 웹 UI가 필요하면 Docker로 Gitea를 설치할 수 있지만, 코드 배포 용도로만 쓴다면 Git Server 패키지로 충분합니다

시놀로지 나스 Git 배포, 패키지 하나면 충분합니다

시놀로지 나스 Git 배포 환경은 패키지 센터의 Git Server 하나로 구성할 수 있습니다. bare 저장소를 만들고 post-receive Hook만 설정하면, Claude Code에서 push 한 번으로 나스 웹 서버에 자동 배포됩니다. Docker 없이도 완성되므로 가볍고 유지보수도 간단합니다.

나스에 워드프레스를 설치하거나 접근 권한을 관리하는 방법도 함께 참고하시기 바랍니다. Synology 공식 Git Server 가이드에서 세부 설정도 확인할 수 있습니다.

나스 개발 환경 구성이나 배포 자동화 설정이 필요하시면 상담 문의 페이지를 통해 편하게 연락해 주세요.

NAS 구매·설치·세팅, 전문가에게 맡기세요
모델 선정부터 초기 세팅, 외부 접속, 백업 구성까지 원스톱으로 도와드립니다.