Deploy a Hugo Blog with Travis on Git Push

Intro Hi folks. I’ve been using the Hugo build for wercker for a long time now. Recent problems occurred though where I did not understand at first what the problem was. It was quite difficult to debug since I did not have too much insight on the wercker build itself. Turned out that I deleted the GITHUB token that the process was using. However, the error message was telling me that a function failed to load some other function....

March 18, 2019 · 4 min · hannibal

Go SSH with Host Key Verification

Hi folks. Following a long search and reading lots of debates and possibilities of doing SSH within Go, I was shocked to see that not a great many tools and people use SSH with host key verification. What I usually see is this: HostKeyCallback: ssh.InsecureIgnoreHostKey() This is terrible. Now, I realise that doing HostKeyVerification can be tedious, but don’t fear. It’s actually easy now that the Go team provided the knownhosts subpackage in their crypto SSH package located here: KnownHosts....

February 17, 2019 · 2 min · hannibal

Extensive tutorial on go-plugin.

Intro If you don’t know what go-plugin is, don’t worry, here is a small introduction on the subject matter: Back in the old days when Go didn’t have the plugin package, HashiCorp was desperately looking for a way to use plugins. In the old days, Lua plus Go wasn’t really a thing yet, and to be honest, nobody wants to write Lua ( joking!). And thus Mitchell had this brilliant idea of using RPC over the local network to serve a local interface as something that could easily be implemented with any other language that supported RPC....

October 29, 2018 · 17 min · hannibal

Furnace with a new Plugin System

Hi. A quick update, but a very important and interesting one hopefully. Furnace just got a massive boost to its plugin system. I’m using HashiCorp’s Go-Plugins system now to handle plugins. This means one of two things that are interesting to the plugin author. One, plugins can be written in any language which is supported by Furnace and supports GRPC. Currently this means that plugins can be written in the following languages:...

September 17, 2018 · 1 min · hannibal

TOTP generator with account handling for multiple tokens

Hi. Today, I would like to write about a little tool I put together in Rust. It’s called gotp. I’m calling it gotp mainly because of crates.io. I published it there as well, you can find it under this link: crates.io/gotp. The purpose is clear. It’s a totp generator I wrote a while ago in C++ but now it’s in rust. It can generate a token and save it into an account file that is AES encrypted....

September 13, 2018 · 2 min · hannibal

Keep your git forks updated all the time

Hi folks. Today’s is a quick tip for keeping your forks updated. If you are like me, and have at least a 100 forks in your repository because: * You would like to contribute at some point * Save it for yourself because you are afraid that it disappears * Would like to make modifications for your own benefit * Whatever the reason …then you probably have a lot of trouble keeping them updated and making sure you always see the latest change....

June 8, 2018 · 2 min · hannibal

Kubernetes distributed application deployment with sample Face Recognition App

Intro Alright folks. Settle in and get comfortable. This is going to be a long, but hopefully, fun ride. I’m going to deploy a distributed application with Kubernetes. I attempted to create an application that I thought resembled a real world app. Obviously I had to cut some corners due to time and energy constraints. My focus will be on Kubernetes and deployment. Shall we delve right in? The Application TL;DR The application itself consists of six parts....

March 15, 2018 · 32 min · hannibal

Go Budapest Meetup

Intro So I was at Go Budapest Meetup yesterday, where the brilliant Johan Brandhorst gave a talk about his project based on gRPC using gRPC-web + GopherJS + protobuf. He also has some Go contributions and check out his project here: Protobuf. It’s GopherJS Bindings for ProtobufJS and gRPC-Web. It was interesting to see where these projects could lead and I see the potential in them. I liked the usage of Protobuf and gRPC, I don’t have THAT much experience with them....

February 6, 2018 · 2 min · hannibal

Ansible + Nginx + LetsEncrypt + Wiki + Nagios

Intro Hi folks. Today, I would like demonstrate how to use Ansible in order to construct a server hosting multiple HTTPS domains with Nginx and LetsEncrypt. Are you ready? Let’s dive in. TL;DR What you will need There is really only one thing you need in order for this to work and that is Ansible. If you would like to run local tests without a remote server, than you will need Vagrant and VirtualBox....

January 23, 2018 · 11 min · hannibal

Huge Furnace Update

Intro Hi folks. In the past couple of months I’ve been slowly updating Furnace. There are three major changes that happened. Let’s take a look at them, shall we? Google Cloud Platform Furnace now supports Google Cloud Platform (GCP). It provides the same API to handle GCP resource as with AWS. Namely, create, delete, status, update. I opted to leave out push because Google mostly works with git based repositories, meaning a push is literary just a push, than Google handles distributing the new code by itself....

January 13, 2018 · 6 min · hannibal