I have a basic app, as per my last blog post. Now I need to host it somewhere. I have changed the app to only listen on local host, I have iptables on my servers to hopefully prevent me exposing ports I don’t want to expose, but better to not push my luck. I’m using a server running apache and using systemd as the init system. So for SSL termination we’ll use apache as the revers proxy. For this we need a vhost with mod_proxy enabled and the following config in a vhost
ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/
We then need to create a user to run the app, we want an unprivileged user
sudo adduser --system\ --shell /bin/false\ --gecos 'Location Finder App'\ --group\ --disabled-password\ --home /opt/location location
With that we need to create a systemd system file (I’ve added an example systemd file to the app repo) and to move a built copy of the binary onto the system, along with the HTML template file. And that is what I have done.
So in my previous blog post I said I was going to try and build a web app to find someone’s location using their smartphone’s location services. The first step in this is choosing a language and/or framework to build it in. I’ve decided to use Go, which a former collegue of mine tells me makes me a hipster.
So I have been hearing lately about What3Words and how the emergency services in the UK are using it to locate people. This, and other information I have read about recently has got me thinking. What3Words is a proprietary service, that the emergency services will be paying to use. Now a number of mountain rescue teams in the UK use a service developed by one of their volunteers called SARLOC which appears to have a similar set of requirements, but from what I have read appears much more useful for the mountain rescue teams that use it. Now what I have been thinking, these services both rely on the person that needs to be located to have a smartphone, with location services, and an internet connection. They both require the person to receive a link, and allow the opened web page to see their location. So with these assumptions, how hard is it to build a service that allows an operator to send a personalised link to someone, have that use the smartphone’s location services to get a current location for the user, and share that automatically with the operator?
This past week I was going to write a blog post about my latest fail, and what I learnt from it. But in the mean time something has come up that has annoyed me, so much so that I’ve decided to rant about that instead.
Recently I’ve been thinking about identity and what that actually means, and more importantly what I feel it should mean. Everything that deals with the identity of people appears to default to the assumption that we all have one, single, canonical, identity, that all things we use to identify ourselves should be slaved too. In fiction we know someone is suspicious, a spy, or criminal, when they have multiple passports. In IT we base trust on this who of the identity that issues instructions is linked too. When talking to people online we tell each other not to trust them unless we also know them in the real world, and can be sure that they are that person.
I’m not a religious man, that much should be obvious to those that know me. I also have a tendency to rant against religion, this is not one of those rants. The basic premise I have is that we should fear anyone who is outwardly righteous, at least until we can accurately judge their true ambitions. Particularly those in politics.
So I have an unusual workflow for my blog. There are a number of instructions on the web for deploying a jekyll based site template to a server from a git repo, and having the content auto built into the web root. Although I do store my jekyll blog in a git repo, and have my webhosts set up to receive files automatically from git, I do not do this.
A colleague of mine started to work on a planet feed of blogs from people we both work with. The planet feed takes an rss or atom feed from each blog and sorts the posts from all of these together. My issue with that for my blog is that not all the posts I make are applicable to the work that I do. So I wanted to generate a feed that is more work related. I already use the jekyll-feed plugin to generate the feed for my blog so it shouldn’t be too hard right?
So the migration of my blog is now complete, and for the most part it was pretty easy. One of the things I did find tricky was getting the tag cloud to work. This post isn’t meant as a guide for how to do so yourself, but as a breakdown of the process I went through, and why I made some of the choices that I made. I doubt I have the best solution, but it’s close to what I wanted.