Configure Synology NAS as Git Server
Instructions for setting up a git server on a Synology NAS with Diskstation. Specifically, I am using a DS414 with DSM 5.0.
Set Up User and Folder
- Create user
gituservia Diskstation interface (with File Station and WebDAV privilages)
- Add new shared folder called
/volume1/git) with read/write access for
admin. This folder will hold all the repos.
- Install Git Server package via Diskstation
- Open Git Server and allow
- Enable SSH access on Diskstation (Control Panel > Terminal & SNMP > Enable SSH Service)
Configure SSH Access
~/.sshfolder for gituser on server
ssh email@example.com mkdir /volume1/homes/gituser/.ssh
- copy public rsa key from local computer to gituser account on server
scp ~/.ssh/id_rsa.pub firstname.lastname@example.org:/volume1/homes/gituser/.ssh
- connect via SSH as
authorized_keyson NAS (or append if already exists,
cat id_rsa.pub >> authorized_keys)
ssh email@example.com mv /volume1/homes/gituser/.ssh/id_rsa.pub /volume1/homes/gituser/.ssh/authorized_keys
- change permissions while logged in as root
cd /volume1/homes/gituser/ chown -R gituser:users .ssh chmod 700 .ssh chmod 644 .ssh/authorized_keys
Set Up New Repo on NAS
- create bare repo as root
ssh firstname.lastname@example.org cd /volume1/git/ git --bare init <repo-name>.git chown -R gituser:users <repo-name>.git cd <repo-name>.git git update-server-info
NOTE: I'm not entirely sure if
git update-server-info must be run for each repo or just initially. It seems to work without running this command, but I'm suspcicious that it might cause problems later.
Add NAS as Remote for Local Repo
- Clone repo from NAS
git clone ssh://email@example.com/volume1/git/<repo-name>.git
http://blog.osdev.org/git/2014/02/13/using-git-on-a-synology-nas.html http://stackoverflow.com/questions/20074692/set-up-git-on-a-nas-with-synologys-official-package http://www.heidilux.com/2014/02/setup-git-server-synology-nas/
Thank you for your post.
I do stumble with "Open Git Server and allow
I do not find anything to edit anything with the installed Git server.
As I understand it from your explanation, there is a
Git-Server/Settings/Usersnavigation path to manage/add users.
Note: I just found it. I always looked at the installed packages in the Package Center. But it is located at the "Main Menu". The place where all installed applications have their starting home.
Another issue I watched (if I got it right):
It is metioned that
git update-server-infois somewhat needed; probably also or instead it is needed to set the chown again. I had the 'feeling' that the git server places new files into his .git folder with root:root ownershipwhich breaks the git commands executed as/from client.