There is no second opinion about the importance of version control, it is a must-have for any software project. The option for reversibility, concurrency and history of code edits is what makes it so crucial. I’ve been using mostly GitHub for the purpose, it seems the version control tool of choice for many these days. I have a number of personal projects that I want to keep private though, and with GitHub that is a premium option that costs $7/month. These are dollars well spent, however since I already have a cloud hosted VM, I figured I just use it for my own cloud version control tool. Being spoiled by GitHub’s intuitive web UI, I didn’t want to go for a raw git tool and was rather looking for a minimal change in experience.
My research ended up with me choosing GitLab CE, a powerful tool pretty much like GitHub, but with the ability to run off my own VM. I already run a $5/month 512MB RAM VPS at DigitalOcean, this blog runs off there. Adding GitLab to that machine is a bit of stretch as that is the absolute minimum required configuration. I added a swap file to be able to handle the increased resource demand. Since this will be a private repo,I don’t expect much added load anyway, it will be just used now and then by yours truly only.
My next challenge was to decide on the installation type, GitLab runs on Nginx and PostgreSQL, I didn’t want to mess up my current Apache+MySQL setup. Docker was the natural choice of tool to create isolated environment, and with the incredibly well implemented GitLab Docker image by Sameer Naik I got my own private cloud version control tool few minutes later.
To harden up on security, especially following my recent DDoS/hack attempt woes, I opened the GitLab HTTP port to be visible to only certain IP addresses that I use.
Performance is just excellent, I was worried to run at minimum specs, but obviously my setup is quite low on load and all works smoothly.
Hi Martin
Thanks for the write up.
I needed something similar but I went the bitbucket route. Have you tried it?.
Tony
Not really, just on couple incidents and it looked more complex compared to GitHub. Your comment made me Google up “github vs bitbucket” and it seems like there are git wars going on. A matter of preference I say. Cheers!
Next up you need a jenkins continuous integration server that will automatically build and push code to your esp8266 nodes OTA!
Indeed, I have all the components to do that now. Must give it a try