
Ikamu.io
September 01, 2019
This page will change as the project matures
Introduction
I play a lot of Source Engine games. All these games have both dedicated servers, and a large degree of community support for custom maps. There are many communities I love to play on, and some maps I enjoy playing much more than others.
It’s difficult to know when the maps I like are on though. I have to constantly be at my PC with the Steam server browser or the game itself open monitoring the servers I like to see what map is playing.
Not anymore! I built Ikamu.io to automatically notify me on either/both my PC and my SmartPhone whenever a server I like plays a map I like. You simply provide it a list of server ip/ports and a list of map names, and you will receive a push notification on any devices you have signed in and registered for notifications on.
Features
Ikamu.io offers both a free and a paid tier. A free user can experience the core notification functionality, with limitations on the number of servers and maps they can watch. Paid users receive additional features, and vastly increased watch limits.
Current feature list:
- Add game servers you like, and view their current status in the webapp
- Add map names you want to watch for. Free users can only watch for exact map names, e.g. dedust. Paid users can use wildcard matching, e.g. dedust* will match both dedust and dedust2!
- View a servers recent map history, and when each map began. This will help you know if you just missed a favourite map, or if it hasn’t been on for a while; and inform you if the server has been playing a map for a while, so it might be about to change!
- Web push notifications from the application. Supported by all desktop OS’s and Android (iOS does not support browser push notifications)
- Live feed of watched servers
- Popular data about users on the platform
Technology
- All code hosted on Github (private repositories for now).
- The frontend is built with
TypeScript
usingVue
,VueX
andNuxt.js
, withVuetify
for styles. Hosted usingNetlify
; continuous deployment included. - The backend is built
Go
. There are 3 backend applications: _ The webapp RESTful API, usingGin
_ A server polling process that continually grabs information from watched servers * A notification process that sends push notifications - The backend also uses a Redis instance, all ran using
Docker
, hosted usingGCP
. - Lastly a
MySQL
instance is hosted as aGoogle SQL Instance
. - CloudBuild is used for all backend services to automatically create container images for
GCR
(Google Container Registry) on push to master branch Mailgun
is used for handling support requests from the application, withReCaptcha
verificationOneSignal
is used for the Push notification service.- Database migrations are ran automatically on deploy, managed using
golang-migrate
- User authentication is handled using
Auth0
. Caddy
runs on the production server to proxy requests to the API container- We (myself and my excellent Test Engineer friend) use
Trello
to publiclly track the status of Ikamu.io’s development. You can find the board here: https://trello.com/b/irmcOJ2L/maptracker
Ikamu.io was and usable here: https://ikamu.io. Project is now archived.