[messenger] Simple messenger for RouterOS container and Android

Hi everyone, I'm making a simple messenger for a RouterOS container. I'm calling it Lim (local IP messenger). It will only work with addresses in local IP ranges. The server side in container is a HikariCP SQL database and an HTTPS server. The code is written in Java, and the container is built with JRE. The container size is 71 MB. The client app is only available for Android. The container is available for AMD64 and ARM64 architectures. I tested them on CHR and hAP_AX2.

The messenger only supports personal chats, no group chats.
It can forward text messages and files of any format up to 50 MB, including voice messages.

Message text, files, and file names are encrypted with the recipient's public key.
Messages are stored in the database, and forwarded files are stored in the mounted /media folder for a month or until the recipient downloads them.

The database stores public keys, logins, and user display names in cleartext.

The database stores private keys encrypted by clients for synchronization across devices and hashes of user password hashes.

The password for the HTTPS server certificate is stored in the system.properties file on the router, also in cleartext.

This is a personal, home messenger for the router.
It does not contain external services and, theoretically, can work without internet access, within the local network. When the application is open on the phone, it polls the server every 4 seconds. A closed application polls the server every 15 minutes.

The application code and files for installing the container and Android client can be found on the GitHub page.
The Android client application is available on Google Play.
Short instructions for installing the container can be found on YouTube.
This is not the final version of the app, but the current version is stable enough to try.

UPD v1.12
The ability to make calls has been added. The server acts as a UDP relay and simply routes packets between users. Voice traffic is encrypted using the same shared secrets as file messages.

1 Like