Tip: If you have little experience with Seafile Server, we recommend that you use an installation script for deploying Seafile.
I went off and ran the script without installing mysql and the other dependencies first. I suggest you remove that line from the document, so people will install mysql and the other dependencies first. (After the prerequisites section, your document already points us to the setup script, setup-seafile-mysql.sh)
I suggest you add to this line:
Seafile prior to and including Seafile 7.0 use Python 2. More recent versions rely on Python 3.
“Choose the instructions below that are relevant for your system:”
I suggest you add sudo at the beginning of the line
The following adduser and chown commands will also need to run as root, I think, so I suggest you add sudo at the beginning of each of them also. Experienced system administrators will know that and can add sudo where needed, but so that less experienced users of SeaFile can just copy a whole command and paste it, I think the sudo commands would help in the documentation.
When it comes to downloading the security key, the new user seafile needs to be able to use sudo, so I suggest you add, straight after the adduser command, this one:
sudo usermod -aG sudo seafile
For the command
I suggest you change it to
su -l seafile
so the new shell running as the user seafile will be regarded as a login shell, and will pick up seafile’s environment, and the command line history will work proplerly.
Download the install package from the download page on Seafile’s website using wget.
took me to a page where I clicked on the link Client for Linux instead of getting the Server package. (Seems I’ll get things wrong if I possibly can ) I think it would be helpful if your document says to scroll down to the Server section and click the link for the relevant version under Server for generic Linux. (Perhaps this page has changed since you updated your documentation page.) Downloading this file doesn’t need wget.
I was working through the client install instructions (incorrectly), and that did involve using wget to install the key for the software repository. (Not needed for downloading the tar file.) When I ran the command to install the debug symbols, I got two error messages:
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package ccnet-dbg
E: Unable to locate package libccnet-dbg
It seems I don’t have the right software source listed to get these two. I have searched online but have not found what source I need to add. I have asked a question at Ask Ubuntu, and if I get an answer I’ll add something here. – yes, I did get an answer, at StackExchange: " The package
libccnet-dbg is not available for any release of Ubuntu". So would you like to ask the maintainer of the client-installation page to look into whether or not those two -dbg items are needed, and perhaps remove them from that page.
When I got to the point of running the correct setup script, setup-seafile-mysql.sh, it worked well till it got to accessing the database. It was not able to log in to mysql as root@localhost. In a separate terminal window I was able to log in with
sudo mysql -u root -p
and this made me think that mysql was still using the authentication method based on the Linux account of the person trying to log in, instead of with mysql_native_password. So I went back to your documentation and found the bit where you say that the the tutorials on the Digital Ocean website show how to change the authentication method to mysql_native_password. I searched there but couldn’t find out how to do that. I had previously worked through the tutorial for installing mysql for Ubuntu 20.04, but that contains nothing about setting the authentication method to mysql_native_password.
But I did find an answer at Stack Overflow that included the mysql commands to do that. I suggest you add these to the documentation where you talk about setting this authentication method.
sudo mysql -u root -p
and then at the mysql prompt:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
The reader should change password to a sensible password, of course
Would it be appropriate to add the commands for creating the user seafile@localhost with mysql_native_password also?
I’ll send this off now, and may have more suggestions later. Thanks for all your good work on the documentation.