Menu

Jamulus architecture / installation guide

2019-04-08
2020-03-31
  • Sergio Leonardi

    Sergio Leonardi - 2019-04-08

    Hi all
    I'm trying to understand better a typical Jamulus installation but I didn't find any overview.
    I should be interested into a linux architecture.
    If I understood well one deployment architecture could be:

    1. one central server (headed or headless) that mix it all up
    2. one client per player

    Maybe there esists some docs that already clarify these aspects:

    1. Is this schema correct?
    2. Is it possible to use single board computer in order to implement these modules (e.g. raspberry pi, orange pi, ...)?
    3. why it seems that only windows installation is the preferred one? Is it just a "often use case" or there are known issues on linux?
    4. Is there a step-by-step installation guide?

    Obviously, if there's not any kind of info like this I'll go deeper by myself, it's just to avoid reinventing the wheel.
    Thank you

    Sergio

     
  • Volker Fischer

    Volker Fischer - 2019-04-08
    1. Yes, it is correct.
    2. I did some test with a Raspberry Pi but I found out that it does not run stable. You need more computational power for a Jamulus server.
    3. Yes, it is a "often use case". There are no known issues for Linux. The Central Server runs on Linux, e.g.
    4. You can start here: http://llcon.sourceforge.net/servermanual.html
     
    • Sergio Leonardi

      Sergio Leonardi - 2019-04-08

      Many thanks fo the link and the other replies.
      Do you think that orange pi 3 could do the job? It's a 64-bit machine with 2GB RAM.
      What about clients? Did you tested it on single boards too?

       
      • Volker Fischer

        Volker Fischer - 2019-04-09

        I have not tried it on a Pi 3. Just on a Pi 2. On the Pi 2 the performance was not good.

         
  • Peter L Jones

    Peter L Jones - 2019-04-08

    I'm running a server with a three client limit on a small NUC that's not got a real-time kernel and it doesn't seem too heavy there (jamulus.drealm.info). It's really only for experimentation but it seems stable.

    By the way, in the docs, "central server" can also mean where the client looks for the list of available servers, rather than just any server that does the mixing. If you aren't looking to run your own "central server", you can use the public one and just type in the address of your local server when connecting from a client.

     
    • Sergio Leonardi

      Sergio Leonardi - 2019-04-08

      Thank you, maybe I'll start with the public one and then install mine at a second stage.
      So central server could be a pointer to the mixing server? It's really a nice idea in terms of scalability and reliability.

       
      • Peter L Jones

        Peter L Jones - 2019-04-20

        What I mean is that when you run the client and click "Connect", the list of servers that gets shown is taken from the "central server". If you don't tell that server of your server's existence, it won't appear on the list.

        Of course, a client can specify a "central server" other than the default, but then it also won't show the same list - only those servers that have used that non-default "central server" to publish their existence.

        The client doesn't need to know of a central server to connect to a known mixing server, though. You can specify whatever server address (and port) you want.

         
        • Sergio Leonardi

          Sergio Leonardi - 2019-04-29

          Thank you, now it's more clear

           
  • Gilgongo

    Gilgongo - 2020-03-19

    Hi - just discovered Jamulus and it looks amazing! Thanks for all your hard work so far!

    I'm looking to set up a headless server on Linux and now have it running OK (and I can connect a client to it). I used http://llcon.sourceforge.net/servermanual.html to get this far.

    I have a couple of basic questions though:

    1. I'm not sure I undertand the section "Configuration of the jamulus.dyndns.org official central server" How does it relate to setting up a dedicated server? In other words, when it says "The official central server at jamulus.dyndns.org is started with the following command line" - why would I want to do this? What does doing this achieve?

    2. Does anyone have a system startup script for Linux so that I can make sure Jamulus comes back up on reboot? If not I can have a go at creating one myself. My server runs Ubuntu 18.04 so it's systemd.

    3. My server will be on the public Internet (obviously). Is there anything I should know about security and Jamulus? I've got the server's UDP port both source and destination open. I assume I can block everything else in and out, is that right (I'm using a proxy for things like system updates and I can add Sourceforge to that)? Also I assume running it as user "jamulus" or some other non-priviledged account is a good idea?

    Thanks.

     

    Last edit: Gilgongo 2020-03-19
    • Volker Fischer

      Volker Fischer - 2020-03-19
      1. A "central server" organizes the server list you see when you open the Connection Setup. If you setup a pure private server, this is not needed.
      2. I do it in the rc.local but this is no state of the art anymore...
      3. The protocol messages are checked for incorrect values to avoid crashes. Nevertheless, no non-trivial software is free of bugs. So yes, it is a good idea to use a dedicated user.
       
      • Gilgongo

        Gilgongo - 2020-03-19
        1. OK so it would publish my private server information to the public list, so that others can see it.

        2. Yes, rc.local is possible with systemd but it's deprecated. I'll see if I can set up systemd service file for it.

        EDIT: This seems to work OK (although not if point ExecStart at a script). Also BTW user jamulus has no shell or home dir specified in /etc/passwd.

        [Unit]
        Description=Jamulus jam server
        After=network.target
        
        [Service]
        Type=simple
        User=jamulus
        Group=jamulus
        ExecStart=/usr/local/bin/llcon-jamulus/Jamulus -s -n -l /var/log/jamulus/jam.log
        
        [Install]
        WantedBy=multi-user.target
        
        1. OK good. Also BTW does it roll its logs (if I use the -l switch) or do I need to do that manually (using logrotate or some such)?
         

        Last edit: Gilgongo 2020-03-19
        • Volker Fischer

          Volker Fischer - 2020-03-19

          1) No. If you look in the Jamulus Settings dialog you can see "Central Server Address:". If you have configured your local server as a central server and your musicians entry the URL of your server in that field, they see a Connection Setup list which is managed by your server. So in theory other private servers could register at your server and that would show up in that list.
          3) No roll is implemented. But the traffic in that log file is usually not so high so that even if the server runs for years, the file is not very large.

           
          • Gilgongo

            Gilgongo - 2020-03-19
            1. Ah! Ok. Er.., thanks for explaining but I'm still not sure I get this.

            Could you help me by giving an example of a use case in which I would want to configure a local server as a central server? Does it benefit the musicians who connect to my server in some way (I assume I have to tell them to use the non-default "Central Server Address:" setting somehow) ?

            And conversely, how do I get my private server to show up in the default server list?

            I realise you must be very busy answering questions, but if I can get up to speed on this I hope I can help others here.

            EDIT: I think I realise what's meant in the docs when it says "Configuration of the jamulus.dyndns.org official central server" It means something like "How to start the server". And that "The official central server at jamulus.dyndns.org is started with the following command line" means "Here is an example of starting a server". At least that's clear now. I was confused becuase there is a section before it talking about starting tyhe server with ./Jamulus -s -n But I'm still confsed about my original quesiton.

            3 . OK cool, thanks.

             

            Last edit: Gilgongo 2020-03-19
            • Volker Fischer

              Volker Fischer - 2020-03-19

              For your purpose it does not make sense to setup your server as a central server. It would not really benefit the musicians.
              Regarding the registering of your server at the official central server, please see the following post: https://sourceforge.net/p/llcon/discussion/533517/thread/6ec5dcd6/?limit=25&page=2#38b7
              With the "-e" option you specify the server you want to register to.

               
              • Gilgongo

                Gilgongo - 2020-03-19

                OK, thanks!

                 
MongoDB Logo MongoDB