Nextcloud
nextcloud logo | |
Maintainer | Unnilennium |
---|---|
Url | https://nextcloud.com |
Licence | AGPLv3 |
Category | |
Tags | cloud, files, dropbox, seafile, pydio, ajaxplorer, owncloud |
Maintainer
Version
Description
Nextcloud is a suite of client-server software for creating and using file hosting services. It is functionally similar to Dropbox, although Nextcloud is free and open-source, allowing anyone to install and operate it on a private server.
As per SME Server Keep It Simple, all your ibays and home folders will be accessible through the nextcloud interface using the "external files" app. You will also have your main user user Nextcloud folder saved under /home/e-smith/files/owncloud/data which is in the default backup path. So you can now enjoy both your own cloud repository with access to the very same files on your samba share!
How do I add my SME users ? They are already there ! Just tell them to connect to https://mydomain/nextcloud. You can also add external users or allow them to register with a nextcloud app.
What are the admin ? By default you have a nextcloudadmin user and the regular SME admin user. First one use the password you can see with "config getprop nextcloud AdminPassword", and second one, well, just use your regular admin password. Then you can manage apps, external files repos and admin group membership.
Installation
yum install smeserver-nextcloud --enablerepo=smecontribs
you might need a second event or sometime ibays folder is not visible
signal-event nextcloud-update
You do not need to follow the Repo pages of fws and remi-safe to isntall those two needed repos, instead use the packages to install them followed by a yum-modify event. Then run the main installation.
yum install smeserver-extrarepositories-remi-safe smeserver-extrarepositories-fws smeserver-extrarepositories-epel signal-event yum-modify yum install smeserver-nextcloud --enablerepo=smecontribs,epel,fws signal-event webapps-update service php-fpm start service php71-php-fpm start service php72-php-fpm start service php73-php-fpm start signal-event nextcloud-update
you can skip the service php-fpm* commands if it was already installed and running before the installation of nextcloud
then you can do the following and you can safely ignore the signal-event post-upgrade reboot if prompted, unless you also installed other packages that needs to do so.
config set UnsavedChanges no
or do
signal-event post-upgrade signal-event reboot
then
signal-event nextcloud-update
if you want to add SME user admin as administrator of nextcloud do
OCC group:adduser admin admin
Upgrade
yum update smeserver-nextcloud nextcloud --enablerepo=smecontribs signal-event nextcloud-update
Configuration
property | default | values | |
---|---|---|---|
AdminPassword | GENERATED | string | password for your main admin user for nextcloud * |
AdminUser | nextcloudadmin | string | main admin user for your installation * |
DbName | nextcloud | string | for mysql db |
DbPassword | GENERATED | string | for mysql db |
DbUser | nextcloud | string | for mysql db |
TrustedDomains | empty | strings coma separated | add domain or ip that are in need to be added to default access to nextcloud |
VirtualHost | empty | domain name | |
access | private | private, public | |
status | enabled | enabled,disabled | |
MaxUploadSize | 4096M | number | if a number will be converted to Megabytes, otherwise use the usual suffix : 2T for 2 terrabytes etc... |
MemoryLimit | 528M | number | if a number will be converted to Megabytes, otherwise use the usual suffix : 2T for 2 terrabytes etc... |
Shares | enabled | enabled,disabled | add the samba shares from the shared-folders contrib in the nextcloud ibays folder along with regular ibays |
IncludeIbay | empty | strings coma separated | add ibays names that need to be include. If not empty, only the name present here will be accessible via nextcloud. Take precedence over ExcludeIbay. You set it with a random string to exclude all ibays and shares from automatic inclusion. |
ExcludeIbay | Primary | strings coma separated | will exclude from nexcloud access any ibay via nextcloud. Default excludes Primary ibay. If you want to include Primary set it with a random string. |
UseSMB | enabled | enabled,disabled | allow you to set ibay access via samba share or via Local driver in nextcloud. Enabled is for samba, this allow you to access as your user and have your quota accounted. It might be a little slower, and need you to have your password loaded in the session. Local driver if disabled, will let you access only what apache user (www) has right to access as member of a group. |
- the SME admin user is also an admin of your nextcloud installation. You have two admin account as per default installation on SME Server.
example of setting :
config setprop nextcloud ExcludeIbay ibay1,ibay2 signal-event nextcloud-update
Command line
if you happen to need tweaking your installation, here is how to access the command line for Nextcloud on SME, we made it easier for you, just log as root and use the OCC command (using capitals), This command will execute for you what you need as the www user, using the needed version of php. Here two examples:
OCC maintenance:mode --off
OCC maintenance:repair
to seek for additional command consult Nextcloud documentation : https://docs.nextcloud.com/server/13.0.0/admin_manual/configuration_server/occ_command.html
Uninstall
yum remove smeserver-nextcloud nextcloud
Use a dedicated domain to connect to Nextcloud
db domains set cloud.mydomain.com domain Description "Nextcloud" Content Primary Nameservers internet TemplatePath WebAppVirtualHost DocumentRoot /usr/share/nextcloud RequireSSL enabled letsencryptSSLcert enabled
signal-event domain-create cloud.mydomain.com
#this one to let nextcloud DAV be redirect correctly
config setprop nextcloud CloudDomain cloud.mydomain.com
signal-event nextcloud-update
#only if you use a Let's Encrypt certificate
expand-template /etc/dehydrated/domains.txt
dehydrated -c
Move user space from uuid to username
User stored using ldap from SME with initial install will create a space with their ldap uuid. This is not very user friendly and further more it will lead to ios app issues. Recent version will use the username for new users, but for those already created you will need to do the following you will need to do as admin :
- go to preference
- choose ldap
- choose expert
- fill the 3 fields as presented above, or using the cli do
OCC ldap:set-config s01 ldapExpertUUIDGroupAttr cn OCC ldap:set-config s01 ldapExpertUUIDUserAttr uid OCC ldap:set-config s01 ldapExpertUsernameAttr uid
- in cli, you will then need to do :
OCC user:list and save the content cd /home/e-smith/files/nextcloud/data ; mv OLDUUID username OCC files:scan username
- delete the UUID association for users
- you should then be able to login as the user with its previous files
Only drawback, trash history might be gone, a trick inside the db using a script could workaround that and avoid the OCC files:scan username
Mount with davfs on Fedora Clients
While you might love the easy setup of the gnome client for nextcloud, you might encounter some frustration of having your favourite applications not showing nextcloud as mounted and needing to find it to sometime not being able to access it.
Here is a workaround
First as root
dnf install davfs2 -y
usermod -aG davfs2 $YOURUSER
echo "use_locks 0" >> /etc/davfs2/davfs2.conf
echo "https://example.com/nextcloud/remote.php/webdav /home/$YOURUSER/nextcloud davfs user,rw,auto 0 0
" >> /etc/fstab
then you should log out /log in with your user in order to have the group membership. You can also just do "su -l USERNAME" then as your user (replace your_password by your password, or a token;):
mkdir ~/nextcloud
mkdir ~/.davfs2
echo "https://example.com/nextcloud/remote.php/webdav your_Nextcloud_username your_password" >> ~/.davfs2/secrets
chmod 0600 ~/.davfs2/secrets
then just mount !
mount ~/nextcloud
From there you can tweak the cache configuration to make it easier for you if you are far from the server, default cache size is 50MiByte, you could increase it to let's say 3 GiByte in ~/.davfs2/davfs2.conf for your user
cache_size 3G
you should see the folder mount at every logon from now on! if you do not want that, change "auto" in the fstab by "noauto". Then add the following in ~/bash_profile or ~/bash_rc. You could user also mount -a and to try to put something in /etc/gdm/PostLogin/" instead
mount /home/username/nextcloud
And Finally to umount in gdm using "sudo vim /etc/gdm/PostSession/"
if [ ${USERNAME} = "myuser" ];then
umount -fl /home/myuser/nextcloud
fi
Adapted from those sources:
Change Database
If you are in the situation your are unable to update your nextcloud because of database requirements, you might need to install a newer and then migrate your db.
Here a simple procedure, after having the new db working as a sclo Mariadb105 for SME10 as example.
occ maintenance --on
mysqldump `config getprop nextcloud DbName` > nextcloud.sql
mysql105 < nextcloud.sql
echo "CREATE USER IF NOT EXISTS `config getprop nextcloud DbUser`@localhost IDENTIFIED BY '`config getprop nextcloud DbPassword`';GRANT ALL PRIVILEGES ON `config getprop nextcloud DbName`.* TO`config getprop nextcloud DbUser`@localhost; FLUSH PRIVILEGES;" | mysql105
occ config:system:set host --value localhost:/var/lib/mysql/mariadb105.sock --type string
occ maintenance --off
After checking that all is working you can then delete yourself the old db from the previous mysql server, or keep it as a backup for a while. If it fails and just want to go back to previous state:
occ maintenance --on occ config:system:set host --value localhost --type string occ maintenance --off
Known issues
After a new install the admin user could see shares but not a user.
We had a single ibay and it was set:
Group Everyone Write group Read everyone
We created a new group called localusers and added the admin and single user.
We then set the ibay:
Group localusers Write group Read group
This appeared to fix the issue and the user could now see the files.
Reset Database
For reference, whilst looking at resetting file caches I found this.
It is probably extremely dangerous but wanted to make a note.
https://github.com/nextcloud/server/issues/8113#issuecomment-565876798
Bugs
Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-nextcloud component or use this link
Below is an overview of the current issues for this contrib:
ID | Product | Version | Status | Summary (8 tasks) ⇒ |
---|---|---|---|---|
12685 | SME Contribs | 10.0 | VERIFIED | Install fails when attempting occ cmd at cli and no browser access |
12611 | SME Contribs | 10.0 | RESOLVED | update cron script with maintenance_window_start |
12609 | SME Contribs | 10.0 | CONFIRMED | smeserver-nextcloud S30nextcloud-occ-conf errors when run via ddclient panel |
12487 | SME Contribs | 10.0 | CONFIRMED | update nextcloud fail2ban filter |
12486 | SME Contribs | 10.0 | RESOLVED | occ requires /sbin/e-smith to be in the path |
12406 | SME Contribs | 10.0 | CONFIRMED | NFR switch to PHP83 support for NC 29 and after |
11169 | SME Contribs | 10alpha | CONFIRMED | smeserver-nextcloud requires a modify script |
10566 | SME Contribs | 10.0 | CONFIRMED | NFR: split action nextcloud-occ-conf |
Changelog
Only released version in smecontrib are listed here.
- fix php version on initial install [SME: 12685]
2024/04/12 Jean-Philippe Pialasse 1.2.0-30.sme
- add maintenance windows start [SME: 12611]
increase frequency of cron task every 5 min- fix missing full path [SME: 12486]
2024/01/29 Jean-Philippe Pialasse 1.2.0-29.sme
- require nextcloud-src >= 26 [SME: 12318]
multiple fixes and rewrites- restore default log level [SME: 12412]
2023/09/09 Jean-Philippe Pialasse 1.2.0-28.sme
- workaround opcache segfault with php 81 using in memory only [SME: 12298]
- Fix syntax error in 20opcache.ini [SME: 12298]