Instructions for setting up a git server on a Synology NAS with Diskstation - Install Git Server package via Diskstation - Enable SSH access on Diskstation (Control Panel > Terminal & SNMP > Enable SSH Service) - Create user `gituser` on NAS (with WebDAV privilages) - Add new shared folder called `git` (e.g. `/volume1/git`) with read/write access for `gituser` and `admin` Configure SSH Access - create `~/.ssh` folder for gituser on server ``` ssh admin@diskstation.local mkdir /volume1/homes/gituser/.ssh ``` - copy public rsa key from local computer to gituser account on server ``` scp ~/.ssh/id_rsa.pub admin@diskstation.local:/volume1/homes/gituser/.ssh ``` - rename `id_rsa.pub` to `authorized_keys` on NAS (or append if already exists, `cat id_rsa.pub >> authorized_keys`) ``` ssh admin@diskstation.local mv /volume1/homes/gituser/.ssh/id_rsa.pub /volume1/homes/gituser/.ssh/authorized_keys ``` - change permissions as root ``` cd /volume1/homes/gituser/ chown -R gituser:users .ssh chmod 700 .ssh chmod 644 .ssh/authorized_keys ``` - change ssh config to allow for key validation ``` ssh root@diskstation.local cd /volume1/homes/gituser vim /etc/ssh/sshd_config ``` WARNING: If you happen to do something foolish here, you may lock yourself out of being able to connect via SSH as gituser, root, admin, and everyone else. In the event this happens, you can change the sshd_config file back by using telnet to connect instead of SSH (make sure telnet is enabled via the web interface). - uncomment these lines (save in vim `:w` and then quit `:q`) ``` PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ``` ## Setting up a New Repo on NAS - create bare repo as root ``` ssh root@diskstation.local cd /volume1/git/ git --bare init .git chown -R gituser:users gitproject.git cd .git git update-server-info ``` ## Add NAS as Remote for Local Repo - Clone repo from NAS ``` git clone ssh://gituser@diskstation.local/volume1/git/myproject.git ``` References: 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/