Does anyone run their own Lemmy instance on a pi? How was the process of setting it up? Were there any pitfalls? How is performance?

  • marsara9@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 year ago

    I was able to get it setup, main things to watch out for:

    • Don’t use the provided docker compose file. Or more precisely don’t build from source and lookup the correct image tag on docker hub first.
    • The documentation was a bit confusing. This isn’t really specific for the Pi but since I was creating a compose file from scratch some of the steps listed didn’t quite explain all of the details.

    I only used it for testing purposes, but performance was fine (on a Pi4 4gb). Note I only ever had one user.

    • TheInsane42@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      As I only want to use it for myself as jump-off point (and to mess around a tad) I’m fine with performance on an RPi4 (have the 8 GB version), but I’m struggling to get it next to the rest in my Debian install on it.

      Local install fails as I need imagemagick 7 (Debian still had 6.9), and it refuses to compile with imei method. (that script wants to use /usr/local/bin/identify which I think it needs to install itself (part of imagemagick) and the compose file I couldn’t get to work with an external (already hosted) postgres.

      Any tips? I’m totally new with docker and ansible.

      • marsara9@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        So in the official docker-compose.yml lines that define where/how to get the image for that application.

        For example:

        https://github.com/LemmyNet/lemmy/blob/c9e9ff46faa40e2642343effb117693bfa525c5f/docker/docker-compose.yml#L41-L43

        build:
              context: ../
              dockerfile: docker/Dockerfile
        

        This tells docker to look for a file called docker/Dockerfile in the parent directory. This means that when you go to call docker compose up -d it will build an image from source using that Dockerfile. For the Pi we don’t want this (at least as of 0.17.x; I haven’t tested 0.18.0 yet).

        Instead we want to use a pre-built image. To do that we need to go to docker hub, specifically: https://hub.docker.com/r/dessalines/lemmy/tags and find the latest tag that matches the architecture of the system we’re building on. I assume you’re on a Pi4 running a 64bit so, so that gives us 0.17.3-linux-arm64. After you’ve got that tag we just need to replace those 3 lines above with:

        image: dessalines/lemmy:0.17.3-linux-arm64
        

        Now when we go to call docker compose up -d it will pull down that prebuilt image instead of building for source. Btw, you’ll want to do the same for the lemmy-ui service.

        P.S. I don’t have much experience using Ansible, so I can’t help here. I normally just SSH directly into the Pi and do everything there.