로컬에서 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 배포 환경을 만드는 가장 간단한 방법입니다.
설치 및 설정
| 단계 | 수행 위치 | 주요 설정 |
|---|---|---|
| 1 | DSM | 패키지 센터에서 Git Server 검색 후 설치 |
| 2 | Git Server 설정 | Git 접근을 허용할 사용자 계정에 체크 |
| 3 | 제어판 → 터미널 및 SNMP | SSH 서비스 활성화 확인 |
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 키를 등록합니다.
- 로컬에서
ssh-keygen으로 키를 생성합니다 (이미 있으면 생략) ssh-copy-id 사용자명@나스IP로 공개 키를 나스에 복사합니다- 이후
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 저장소에 코드 수신 |
| 3 | post-receive Hook 자동 실행 |
| 4 | /volume1/web/my-website에 최신 코드 복사 |
| 5 | Web Station에서 즉시 반영 |
4단계. Web Station에서 웹사이트 연결
배포된 코드를 Web Station으로 서비스합니다.
- DSM에서 Web Station을 실행합니다
- 웹 서비스 포털에서 생성을 클릭합니다
- 문서 루트를
/volume1/web/my-website로 지정합니다 - 도메인이 있다면 가상 호스트를 설정하고, 없다면 포트 기반으로 연결합니다
- 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 워크플로
이 환경에서의 실제 작업 흐름은 다음과 같습니다.
- 로컬 터미널에서 Claude Code 실행
- Claude에게 코드 작성·수정 요청
- 결과물 확인 후
git add→git commit git push nas main실행- 나스 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 가이드에서 세부 설정도 확인할 수 있습니다.
나스 개발 환경 구성이나 배포 자동화 설정이 필요하시면 상담 문의 페이지를 통해 편하게 연락해 주세요.
