Cover: a satellite image from NASA LAADS, taken on Wednesday, 9 March 2022, at 08:51.
Source: the “Ukraine goes dark” article.

Ukrainians have created several similar services since the beginning of the full-scale russian invasion of Ukraine. Some are very simple, while others are centralized and closed-source, but none of them suits either my taste or the features I need. So I decided to create my own - and to get some practice in AI-driven software development.

Prerequisites

The proposed solution is self-hosted. This means you need two devices:

  1. The host - any suitable server with an uninterrupted power supply. It could be a VPS or a home server with an UPS of sufficient capacity.
  2. The ping device - any suitable device capable of responding to ICMP PING, TCP SYN, or HTTP GET probes, or one that can periodically send an HTTP POST request.

Because HTTP polling has not yet been implemented, the bot currently requires a webhook. Therefore, you need a domain name with a valid TLS certificate.

For the host, it is preferable to use a VPS outside Ukraine so that the server can keep running reliably.

The ping device could be any of the following, among other options:

  • A simple Wi-Fi router (as a passive receiver)
  • An advanced Wi-Fi router (as an active request sender), e.g. MikroTik
  • A DIY or microcontroller-based device with an internet connection
  • A phone running a custom JavaScript server

Setup and Configuration

The server source code is available on GitHub. You can run it directly from the source or build a Docker image and run it in a container.

There is also a deb package for Debian-based Linux systems, available under releases.

For Gentoo, you can use the dedicated overlay repository from GitHub.

The installation and configuration are covered in detail in the README.

AI Aspect

I spent $7 and a week developing all the required features and delivery scripts: 200 tokens from Copilot Free with automatic model selection and 500 tokens from Copilot Pro with the same automatic model selection. In my experience, the Pro version chooses more expensive models than the Free version, with even less practical benefit.

The important thing is to quiet down and make chat messages less verbose as much as possible while still understanding what is going on. You do not need a description of source code changes that you can read and inspect yourself.

Would I have completed this project without AI? - Yes.

Would I have completed it during a one-week vacation? - No.

Would I have completed the same number of features, with all the bells and whistles? - No.

But would AI have produced the same quality and a suitable architecture without my own knowledge and experience? - No.

Would I have spent a reasonable amount of money (tokens/credits/whatever) without my own knowledge and experience? - Also no.

Conclusion

It was a good journey, and I am glad I created something useful for this world. It was worth it.

Furthermore, I will add few new features in the nearest future. Stay tuned.