Category Archives: Programming

Puppet profile for pihole

I use pihole extensively for blocking advertisements in my home network as well as on my servers. It’s a very easy to use tool which also gives you basic analytics. Pihole is no rocket science – it’s just a bunch of great utilities packaged together. A few weeks back I was lurking around trying to see if I can quickly deploy it on my servers using puppet instead of the manual way. Finally I found that there’s a docker image available for pihole and then I quickly wrote a puppet wrapper around it. Originally pi-hole was made for using raspberry pi as a DNS blocker but since then the project has moved ahead quite a lot. You can read up more about it here https://pi-hole.net/

Continue reading

python SimpleHTTPServer alternative

If you use python then you might have used “python -m SimpleHTTPServer 8000” at some point in time to share files with your friends on LAN. Sometimes we want to share large files from one computer to another and we need it. Sometimes it also happens that you are taking a session and you need to share a large file with everyone else. SimpleHTTPServer of python is good but it’s single threaded. It can only handle one client at a time so if you want to share file with a large number of people on LAN it is a bad option. Also SimpleHTTPServer doesn’t work properly if you are sharing large files. Continue reading

Setting up gem caching server to speed up docker builds

First up, why do we even need a gem caching server? Once you install a gem it does get cached in your system by default. Method mentioned in this post can be useful if you are using vagrant or docker to do bundle installs a lot of times. For example in my case every time I tried to build my docker image the bundle install command used to take a lot of time because in every build it used to download all the gems again. Continue reading