How to use Synology DS213j as a server for Git Repositories
Sun, Jun 8, 2014I must admit that I prefer SVN over GIT due to the (in 2014 only slightly inferior) tooling and due to the illogical naming and structuring of commands and parameters. But still GIT has a lot going for it, and I needed the GIT submodule command for a private project of mine i.e. something that I want to sell and therefore not place on github.
So away with SVN.
On my trusted Synology I have the SVN server installed which was basicly just plug and play. So I figured that installing the GIT server package would be just as easy.
Sadly that was not case. Now 6 hours later I finally have it working. So this post is here, to hopefully save you and my future self some time.
This is a rundown of what I should have done.
- Upgrade to at least DSM 4.3 ( I used 4.2 but the GIT Server package did not work with that. Basicly there was no git commandline interface).
- Install the GIT Server package from Synology
- Create a user on the server to access GIT
- Create a Share for GIT (e.g. named “gitrepo” or similar)
- If using a windows client. Install putty to issue GIT commands to the server via SSH (you have to enable SSH on the server)
Issue commands to make a bare server GIT Repo
mkdir somerepo.git cd somerepo.git git init –bare –shared
Login to Putty as root (important). Change the owner to be your newly created git User
chown -R gituser somerepo.git
You can now clone the repo from your prefered Git client – using ssh. btw. When using ssh you should access it via full path. I.e. ssh://gituser@
/volume /gitrepo/somerepo.git
Of these steps (not) upgrading to DSM 4.3 was most costly because nothing anywhere indicated that I could only use GIT server after upgrading.
I also had problems changing ownership of files. Turned out I just needed to login to putty as root. Probably just basic linux knowledge that I do not have.
Same goes for the ssh path. I naturally thought the path would be the same as for https i.e. without the /volume
So basicly it works now, although I still have to decide on the security part.
Should it be with username/password or a putty key, should I open up my firewall to allow me access from the internet and so on.