September 01, 2019
This page will change as the project matures
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.
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
- All code hosted on Github (private repositories for now).
- The frontend is built with
Vuetifyfor styles. Hosted using
Netlify; continuous deployment included.
- The backend is built
Go. There are 3 backend applications: _ The webapp RESTful API, using
Gin_ 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 using
- Lastly a
MySQLinstance is hosted as a
Google SQL Instance.
- CloudBuild is used for all backend services to automatically create container images for
GCR(Google Container Registry) on push to master branch
Mailgunis used for handling support requests from the application, with
OneSignalis used for the Push notification service.
- Database migrations are ran automatically on deploy, managed using
- User authentication is handled using
Caddyruns on the production server to proxy requests to the API container
- We (myself and my excellent Test Engineer friend) use
Trelloto publiclly track the status of Ikamu.io’s development. You can find the board here: https://trello.com/b/irmcOJ2L/maptracker
Ikamu.io is LIVE and usabled here: https://ikamu.io