I’m impressed that Lemmy only needs 150 MB RAM and uses virtually no CPU
This seems like an ideal thing to install on an embedded system such as a Raspberry Pi.
Problem: Where are the builds?
In the installation page, you have three options: Docker, Ansible, From Scratch
I’m currently doing the from scratch option since my OS distributor is not a fan of docker or ansible (and neither am I), but the build is taking ~1hr.
Are there no nightly builds with .deb packages?
Providing binary packages is kind of a futile effort since you’d need one for each distro/version and architecture. I don’t like/use Docker either but it is at least a distro-agnostic format. If you want distro packages, ask your distro maintainers to package it.
Are you compiling it directly on the Pi? If so, try cross-compiling, it’s going to be a lot faster that way. I just cross-compiled the server in about 5 minutes on my machine as a test.
Other packages do this though, and builds are easy to automate. Is it because it’s not stable software, and so hasn’t passed the usual unstable, testing, stabile repo vetting process? If so, I’m surprised, it really looks mature.
Ah cross-compiling is something I hadnt considered… do you have a preferred toolchain for this?
My preferred toolchain for most things these days, including this, is the Nix package manager. It makes cross-compiling most programs (or other similar things like compiling fully statically linked binaries, or a combination of the two) really easy, in this case with a single command, without having to deal with setting up any of the cross-compiler toolchain itself or anything else like that. It also has a huge package collection including the Lemmy packages. For example, this is the command I used for testing:
nix build nixpkgs#pkgsCross.armv7l-hf-multiplatform.lemmy-server
For building and copying to a remote host (both the build and target host should have Nix installed), something like this should work instead:
nix copy --to ssh://raspberry-pi nixpkgs#pkgsCross.armv7l-hf-multiplatform.lemmy-server
There is NixOS, the distro built on top of Nix, but Nix itself works on any distro and doesn’t come into conflict with your distro’s package manager, so there’s no issue with having it installed in parallel.
I actually make a lot of use of the cross-compiling functionality since my router is also an armv7l box which isn’t very powerful, so I cross-compile the whole NixOS system (including some custom packages) on my PC and then copy it over. It’s very nice to work with.
Here’s the website: https://nixos.org/
Wow, I tried NixOS at one point but I couldn’t keep it as a daily driver because it didn’t play nicely with my conda-based dev environment.
I knew nix like guix (another failed experiment I wanted to make my daily driver) could be run as a package manager but I had no idea it could cross-compile and copy in one command!
These are static builds right?