Skip to content

Comments

Create Server Admin Manual + other changes#527

Merged
ann0see merged 20 commits intojamulussoftware:next-releasefrom
gilgongo:adm-man
Jun 18, 2021
Merged

Create Server Admin Manual + other changes#527
ann0see merged 20 commits intojamulussoftware:next-releasefrom
gilgongo:adm-man

Conversation

@gilgongo
Copy link
Member

Does this need translation?

  • Yes
  • No

Changes

I realise that this is an absolutely massive change. But I think it's necessary to avoid maintenance problems in future (as explained below).

I've created a Server Admin Manual as a lightly-modified and corrected/updated text taken from what is today separate pages, or parts of pages. I've kept the info on headless Linux servers as a child document though for reasons of clarity and space, along with the Troubleshooting page.

The Server Admin Manual is a counterpart to the User Manual for the client.

As part of creating the Server Admin Manual, I'd like to keep the main navigation (right hand on desktop, burger menu mobile) as a short, high-level overview, using in-page tables of contents as secondary navigation until we can handle that better on the website. I think this may be easier than having in-page links to separate pages. Content in small, separate pages is harder to maintain for consistency of style, and also invites duplication of information - as we've recently seen with Onboarding vs Setup, and now with Setup and Hardware Setup (the subject of another PR after this).

I'm also hoping that scrolling through pages may be a better UX (in one general topic area at least) than clicking through to separate pages then having to going back to the parent page, as today.

In summary, to create the Server Admin Manual, I have:

  1. Included the content from these pages (and replaced with redirects):

Running-a-Private-Server.md
Choosing-a-Server-Type.md
Network-Requirements.md
Directory-Servers.md
Server-Win-Mac.md
Command-Line-Options.md (deleted)

  1. Added Windows QoS instructions

  2. Updates and corrections for style and maintainability: Unlike the User Manual, I assume readers are reasonably familiar with technical concepts (so for example I removed router screen shot + some info on port forwarding, as well as how to use journalctl)

  3. Added corrections + enhancements from [Bug] Command-Line-Options lacks options such as --server, --multithreading #520, Server registration - illegal characters #514, Use scenario-based approach for server type description #45

User Manual (from existing "Software Manual"):

  1. Expanded to include command line options.
  2. Added Windows QoS instructions
  3. Some wording clarifications and corrections for style consistency.
  4. Added section to cover Make documentation clearer re. separate client instances per voice / instrument  #338
  5. Documented some menu item entries.

Note that for both User and Server Admin's manuals I'm using includes for shared info about command line options and Windows QoS because that is unavoidably shared between two pages.

Also added tables of contents to longer pages.

Also surfaced the FAQ in the main nav.

@gilgongo gilgongo mentioned this pull request Jun 13, 2021
14 tasks
@ann0see ann0see requested a review from jujudusud June 13, 2021 18:59
@ann0see
Copy link
Member

ann0see commented Jun 13, 2021

Thanks for this massive change ;-). I'll run it locally to check how it looks like.

@ann0see
Copy link
Member

ann0see commented Jun 13, 2021

From a first glance, the new server manual looks massive (and complicated). Do we really need that much theory there:

Speed and latency

Bandwidth – do you have enough?


Server types

Can't we assume that most people want to set up a private server if they go through this document?

Bandwidth use

That's a duplicate of content above

Starting a server

Finally ;-).

/wiki/Server-Linux That's a guide I personally would have preferred to see right away.

@gene96817
Copy link
Collaborator

@ann0see

Thanks for this massive change ;-). I'll run it locally to check how it looks like.

This thread appears to be a good exercise for me to learn how things are done. What documentation is there for me to reconstruct how to follow what is happening in this thread? I am lost. I need a starting point.

I am certainly interested in having a server admin manual.

@ann0see
Copy link
Member

ann0see commented Jun 13, 2021

I think, you should run it locally. Do you know git? On which OS do you run? You should have a look at https://jekyllrb.com/docs/step-by-step/01-setup/ and install jekyll afterwards, you can

git clone gilgongo's repo: git clone [email protected]:gilgongo/jamuluswebsite

checkout the branch from which he made these changes:

git checkout adm-man

and then run jekyll via

jekyll serve

and browse to http://127.0.0.1:4000/ via a web-browser to see the site.

If you need more help, I'd suggest to open a thread on the GH discussions or ask on DC

@gene96817
Copy link
Collaborator

gene96817 commented Jun 13, 2021

@ann0see Thanks for the pointers. I will first try to install it under my macOS. It would be the most convenient if that works. Would that be a bad idea?

Can't we assume that most people want to set up a private server if they go through this document?

I don't think we should limit the manual to set up a private server. In my case, I wanted a public server so that my server is used for more than a few hours each week. Sharing a server allows for other new users to try Jamulus without dealing with server issues.

@ann0see
Copy link
Member

ann0see commented Jun 13, 2021

Would that be a bad idea?

Not at all. macOS is probably as good as Linux. I assume Windows would be more tricky.

I don't think we should limit the manual to set up a private server. In my case, I wanted a public server so that my server is used for more than a few hours each week. Sharing a server allows for other new users to try Jamulus without dealing with server issues.

Hmm. But we could at least focus on setting up a private server (since we already have multiple free public ones around the world. OFC. Some regions might need more servers)

@gilgongo
Copy link
Member Author

From a first glance, the new server manual looks massive (and complicated). Do we really need that much theory there.

That's sort of the point. If you want to run a server, you need to understand what's involved.

Can't we assume that most people want to set up a private server if they go through this document?

This isn't a "quick setup" guide, it's supposed to contain all the information needed to run as server (and there's nothing new here). So I don't think we should assume anything, any more than we do in the User Manual.

Bandwidth use

That's a duplicate of content above

You mean they overlap? I guess so, in which case we can just have a line at the start that refers to bandwidth use being a function of the number of players on the server, and then just refer to the later detail.

/wiki/Server-Linux That's a guide I personally would have preferred to see right away.

Me too. But that's because I already know about the difference between server types, whether they can be run headless, on what platforms, why, what the impact on bandwidth is etc. etc.

We could turn it upside down: have installation at the start, and then put all the "background knowledge" at the end I guess. But that just feels a bit unsafe in terms of putting people in a good position to understand what they're doing. This isn't like the client side of the docs where we're trying to lower barriers.

@gene96817
Copy link
Collaborator

gene96817 commented Jun 14, 2021

Hmm. But we could at least focus on setting up a private server (since we already have multiple free public ones around the world. OFC. Some regions might need more servers)

The public servers are not evenly distributed. around the world. There may be a number of private servers near me and they might as well not exist. I have struggled to learn how to install and run a server because there are not enough (actually, there were no) public servers near me. This documentation is needed to lower the barrier to install and maintain servers.

@gene96817
Copy link
Collaborator

Can't we assume that most people want to set up a private server if they go through this document?

In my experience, most of the people new to Jaumulus want to set up a server because a nearby public server does not exist or because they are not sure they are welcome to use a nearby server. A good percentage of these interested users never succeed in getting all the elements working.

@gene96817
Copy link
Collaborator

This isn't like the client side of the docs where we're trying to lower barriers.

Except it is very important to make it easy to succeed with installing a server. A new user cannot succeed without a server.

Copy link
Member

@ignotus666 ignotus666 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like a lot of the changes are just text that has been moved around - this is where translation memories can come to the rescue for translators and another reason to use OmegaT. With the other, simpler editors, if you copy/paste text into another file, they "forget" the translation for that text. Lokalize can use translation memories but it's not intuitive to set up at all, and QtLinguist can't even use them. OmegaT creates and updates one automatically for each project (i.e. all the translatable .po files for each language). I have them for es, fr, pt and de, from when I did the alignment process.

A bit OT but just so you know what happens when text is switched around - it's not all lost. This also begs the question of whether it's best to just mandate the use of OmegaT, ditch the others, and propose uploading the translation memories for each language (a .tmx file) to the repo. This would enable someone taking over the translation of a language to get the translation history with all past fuzzies and 100% matches. I need to do more tests though to work out a solid, reproducible workflow, and it remains to be seen if OmegaT has too steep of a learning curve for new users not familiar with such software...

Copy link
Member Author

@gilgongo gilgongo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please ignore this comment - for some reason GH insists I do a review before I can comment.

@gilgongo
Copy link
Member Author

Except it is very important to make it easy to succeed with installing a server. A new user cannot succeed without a server.

Yes. But none of the information on installation is new in this PR, I'm just re-arranging it so that it's easier for us to maintain (for reasons that may not be very easy to explain, I admit!).

Or is that not what you mean?

@gilgongo
Copy link
Member Author

But we could at least focus on setting up a private server (since we already have multiple free public ones around the world. OFC. Some regions might need more servers)

What do you think if we put the following in the Server Types section?

"Note: Please do not set up a Public Server if you can see servers in your connection list that have ping times of less than 20ms. Doing so may prevent others from registering servers in locations that need them."

@gene96817
Copy link
Collaborator

gene96817 commented Jun 15, 2021

so that it's easier for us to maintain (for reasons that may not be very easy to explain, I admit!).
Or is that not what you mean?

I admit documentation for newbies is difficult to write. I was referring back to a comment that the newbie musician only needs to know how to install a client (which a lot of effort has been made to make it easy... thank you). Some newbies also needs to know how to install a server. The challenge is that lot of knowledge is second nature for our development community. This assumed knowledge makes it difficult for non-developers or non-sysadmins.

The only way I know to address this is to follow the documentation literally step-by-step. The doc is complete when it is possible to be successful with strictly following the step-by-step. We can't document the world so there will be places that needs to say <at this step, you need to know/read about xxx at yyy. Pay special attention to options zzz>. I am trying to find enough free time to review the doc in process from this perspective.

@gilgongo
Copy link
Member Author

gilgongo commented Jun 15, 2021

@gene96817

I am trying to find enough free time to review the doc in process from this perspective.

Just to be clear though, that isn't the purpose of this PR, which is to collect existing information into a more maintainable form, and to make a counterpart of the User Manual where people can easily find information.

I would say too that adequately to cover all the issues needed for a complete novice to install and configure a server (let alone Linux cloud) may produce substantially more documentation compared to current because systems (particularly Linux, but also others) can have substantial differences which make detailed instructions "brittle". This then requires the user to know which alternatives to follow in their particular case. The writer won't be able to predict all of the variations, so frequent updates and expansions will need to be made, at least at first. That's been the history of the documentation for Jamulus so far. But keeping such documentation translated and updated over time is a big challenge for us.

I would say that if you want to follow a "novice guide" to server installation, there are already a few such documents out there I think.

@ann0see ann0see mentioned this pull request Jun 17, 2021
@ann0see
Copy link
Member

ann0see commented Jun 18, 2021

Merging as we can still move all the stuff around before a new release. Thanks!

@ann0see ann0see merged commit 7b73fcc into jamulussoftware:next-release Jun 18, 2021
@gene96817
Copy link
Collaborator

gene96817 commented Jun 23, 2021

I would say that if you want to follow a "novice guide" to server installation, there are already a few such documents out there I think.

So far, all the novice guides are insufficient. They don't give any clues about the assumptions or why. Then when a glitch happens (even a minor one) only an experienced human can help. (You could say the assumptions are the system variables and prerequisites that should be installed.)

Several of the novice guides worked for me once. Then when I need to go back to reinstall, the proscribed process fails. If it was a sandbox system solely to run Jamulus, then rebuilding everything from scratch is an option. If the system is also running other useful things, it is hard to flush everything to have a clean initial system for Jamulus.

I'm ok with being the dunce testing out the documentation for hidden assumptions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

6 participants