YaCy finally runs on (large) OpenWrt devices, thanks to Alpine Linux!


I am recently experimenting on running YaCy on a Raspberry Pi 3. However, instead of running Raspbian and similar OSes (Ubuntu, etc.), I decided to install OpenWrt since I also intend to use it as a Wi-Fi repeater and another personal network.

In short, YaCy can actually run on OpenWrt as long as their device (routers, etc.) are capable of handling that, such as Raspberry Pi and other SBCs (single board computers). Most of the dependencies can be installed from OpenWrt’s opkg package manager. However, the only challenge I faced is installing the JRE (from OpenJDK).

OpenJDK itself is not available on OpenWrt repositories, and there are some notes about OpenWrt uses musl-libc instead glibc (GNU libc). Many OpenJDK binaries, including those offered from https://adoptopenjdk.net/, are compiled for glibc, so it won’t be compatible with OpenWrt. Fortunately, the folks behind Alpine Linux have distributed copies of OpenJDK which is compiled for musl-libc (since musl is also used on Alpine), and it can be installed properly on OpenWrt as well.

I’ve written more about the entire installation process on Apparently Yes! You can install OpenJDK (Java) JRE and YaCy on OpenWrt - DEV Community.

I think that the YaCy download page should be updated specifically for users of Alpine Linux, postmarketOS (a fork of Alpine to run real, non-Android Linux on mobile phones), OpenWrt, and other musl-based Linux distros to use the musl-libc-compatible OpenJDK JRE 8, such as those offered on Alpine. I believe this will open an opportunity for YaCy to be installable on more devices: routers with sufficient memory and storage space, old mobile phones, Alpine Linux installations, and more.

Have a nice day!