I have an Odroid N2+ running Arch Linux ARM that I just love. I have installed a bunch of shit on it like jellyfin (TV), miniflux (RSS), gonic/airsonic-refix (music), soju/gamja (IRC), komga (comics).

I am starting to lose track of things. Like which port which service is running on. Sometimes I even forget which service I am running.

It would be nice to maintain a text configuration that I can use to provision this setup if I have to reinstall everything (as is tradition) and something I can glance over to get a state of things.

Any ideas for this? I feel like something like ansible should for this. I tried looking up stuff for this but search results always show some sweaty nerd managing kubernetes on a fleet of Raspberry Pis (the sweaty nerd calls it “homelab”). Before I start hacking my own stuff I would like to hear if someone else has experience with this.

Thanks.

  • loathesome dongeaterOPA
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 months ago

    For not having to remember ports, use a reverse proxy.

    Do you do this? The prospect of editing nginx configuration scares the shit out of me. I am also scared of breakages if I (for example) set up a service at a subpath like ip_address/jellyfin/ rather than at a port (ip_address:8000) which feels like a root domain.

    • 🏳️‍⚧️Edward [it/its]
      link
      fedilink
      arrow-up
      2
      ·
      5 months ago

      I use nginx for everything, mostly for TLS. You don’t have to use subpaths, you can tell nginx to listen on one port and then forward to whatever port the service uses.

      • loathesome dongeaterOPA
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        listen on one port and then forward to whatever port the service uses

        Can you give a brief example of this? I am not able to follow

        • 🏳️‍⚧️Edward [it/its]
          link
          fedilink
          arrow-up
          2
          ·
          5 months ago

          If your service listens on port 2555, you could tell nginx to listen on port 2556 and then forward things to port 2555.

          This is a very basic nginx config file.

          server {
            listen 2556;
            location / {
              proxy_pass http://127.0.0.1:2555;
            }
          }
          
    • Soviet Pigeon
      link
      fedilink
      arrow-up
      2
      ·
      5 months ago

      I often prefer subdomains for such things. Let’s say your SBC is accessible under server.local and then jellyfin can be reachable under jellyfin.server.local. Just use nginx to handle this in your compose file. Since you are using podman (Which I like alot) you can try podman compose. You only need to install podman-compose to use this.