I’m interested in running Lemmy on an ARM64 host, mostly just for fun and because it’s possible.

I’ve tried a couple of things without getting it right yet:

Building from scratch on Ubuntu 20.04 This went quite well but I was unable to get pict-rs working, so there was no image hosting. I followed this guide: https://join-lemmy.org/docs/administration/from_scratch.html I had to build imagemagick to get the ARM64 binary, however pict-rs did not run. Is it correct that it’s included with the lemmy-server binary or am I understanding how it works wrong?

Using Docker images I was able to get Lemmy up and running using 0.17.3 ARM64 docker images (unfortunately 0.17.4 images don’t exist yet). I set up an nginx reverse proxy on the host and was able to access the instance OK, however there was no connectivity between my instance and external sites. Looking in the logs I saw timeout errors:

lemmy_1     | LemmyError { message: None, inner: Request error: error sending request for url (https://kbin.social/u/Emptiness): operation timed out
lemmy_1     | 
lemmy_1     | Caused by:
lemmy_1     |     0: error sending request for url (https://kbin.social/u/Emptiness): operation timed out

So I was wondering if anybody had a guide out there to hosting Lemmy (preferably 0.17.4) on an ARM64 host, either by building it from scratch or by using Docker images. Or any other method really.

  • livingcoder@lemmy.austinwadeheller.com
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    I had to work out all of the issues myself to get it working on my RaspberryPi 4. For this error, did you add a network to your “lemmy” container that would allow it access to the internet?

    https://github.com/LemmyNet/lemmy/issues/3167#issuecomment-1595846910

    I’m still using 0.17.3, btw. I haven’t checked if 0.17.4 for arm64 is out yet.

    Edit: Just checked and it looks like they’re just skipping past 0.17.4 and moving on to 0.18.0 on their docker hub. https://hub.docker.com/r/dessalines/lemmy/tags

  • frozen@lemmy.frozeninferno.xyz
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    The docker docs are out of date. You need to expose the lemmy service to an external network. I created a third network called lemmybridge and added it to the lemmy service.

  • falcon15500@lemmy.nine-hells.net
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 year ago

    I built my own arm64 v0.17.4 docker image. It’s available on docker hub:

    mpatton/lemmy:0.17.4-linux-arm

    mpatton/lemmy-ui:0.17.4-linux-arm

    What are you using as your reverse proxy?

    • HorseFD@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Thanks, I’ll check that out if my from-scratch attempt fails. I’m using nginx as a reverse proxy.

  • eursec@lemmy.anymore.nl
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I have it running on an arm64 machine with NixOS. If you’re up for a bit of a learning curve, try it, it’s worth it.

  • studcavity@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 years ago

    That second error is not a matter of your ARM64 architecture, but a networking thing. If you launch a bash shell in your container, does any network activity work? That will tell you if it’s the container, or just Lemmy.

  • ubergeek77@lemmy.ubergeek77.chat
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    My script should get you running 0.17.4 on ARM64:

    https://github.com/ubergeek77/Lemmy-Easy-Deploy

    It will take a while to compile, since no Docker images are available, but otherwise it should work.

    It does the reverse proxy and HTTPS setup for you, no need for Nginx. If the reverse proxy is your problem, maybe this will help?

    I don’t have a lot of testers for ARM64, but I have heard of success, so hopefully it will work for you. And if you have any bugs, I’d be happy to fix them for the benefit of everyone :)

  • Jattatak@lemmy.bulwarkob.com
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    The default docker-compose.yml from the guide has the docker lemmy network set as internal. You need to make it not an Internal network.

    Source: Did the same thing with the same problem, on Oracle ARM64 VPS.

  • BitOneZero @ .world@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 years ago

    ARM64 docker images (unfortunately 0.17.4 images don’t exist yet).

    I would use the “Lemmy from Scratch”, and go with using github checkout for lemmy_server code.

    I’m running my instance on ARM64 on Oracle Cloud, they are giving out free ARM systems with 24GB of RAM and 200GB storage.

    • HorseFD@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      That does sound incredibly good for free.

      Did you have any issues with pict-rs? Is it indeed included within the lemmy-server binary?

      • BitOneZero @ .world@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        1 year ago

        That does sound incredibly good for free.

        It’s a little too good to be true, they have been known to shut down people without notice… I wouldn’t rely on it. And the screens to use it are kind of tricky, but there are lots of instruction videos, blogs and Reddit postings about it.

        Did you have any issues with pict-rs? Is it indeed included within the lemmy-server binary?

        I skipped that for now. I don’t think ARM64 matters, Linux is Linux. I skipped it as I didn’t want to take on policing images people upload, but as Lemmy improves I might change my mind.

        I see no reason ARM64 should matter for Lemmy vs. x86, this is run of the mill stuff like PostgreSQL, Rust, NodeJS.

        • HorseFD@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          I’ve just started a new instance on Oracle Cloud given how good the free tier is.

          I’m maxed out on everything free: 4 CPU cores, 24 GB RAM, 200 GB storage.

          Do you have any idea what the implications are of changing the block volume performance up from the default balanced to higher performance or UHP? All I can find on pricing is here: https://www.oracle.com/cloud/storage/pricing/

          But it doesn’t mention anything about free tier eligibility.

        • Drew Got No Clue@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Damn, I checked out their website and it’s really tempting. I might try it a for a small hobby project that I won’t rely on long-term. Thanks for sharing!

  • exu@feditown.com
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    The easiest would probably be waiting for official ARM containers for 0.17.4. You could also build the containers yourself, the dockerfile should be somewhere in the Lemmy repositories.

    Also, nothing’s stopping you from building Lemmy from scratch and having Postgres and pictrs in container. Just make sure to forward the necessary ports.

    No idea what the error is unfortunately. Are you sure you set all ENV and config variables correctly?

    • HorseFD@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I might try building from scratch again and running pict-rs in a docker container.