Create Server Admin Manual + other changes#527
Create Server Admin Manual + other changes#527ann0see merged 20 commits intojamulussoftware:next-releasefrom gilgongo:adm-man
Conversation
|
Thanks for this massive change ;-). I'll run it locally to check how it looks like. |
|
From a first glance, the new server manual looks massive (and complicated). Do we really need that much theory there:
Can't we assume that most people want to set up a private server if they go through this document?
That's a duplicate of content above
Finally ;-). /wiki/Server-Linux That's a guide I personally would have preferred to see right away. |
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. |
|
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: checkout the branch from which he made these changes:
and then run jekyll via
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 |
|
@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?
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. |
Not at all. macOS is probably as good as Linux. I assume Windows would be more tricky.
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) |
That's sort of the point. If you want to run a server, you need to understand what's involved.
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.
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.
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. |
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. |
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. |
Except it is very important to make it easy to succeed with installing a server. A new user cannot succeed without a server. |
ignotus666
left a comment
There was a problem hiding this comment.
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...
De-dupe bandwidth. Public Server port forwarding advisory.
gilgongo
left a comment
There was a problem hiding this comment.
please ignore this comment - for some reason GH insists I do a review before I can comment.
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? |
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." |
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. |
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. |
|
Merging as we can still move all the stuff around before a new release. Thanks! |
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. |
Does this need translation?
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:
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)
Added Windows QoS instructions
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)
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"):
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.