Nextcloud

From SME Server
Jump to navigation Jump to search




Nextcloud Logo.svg
nextcloud logo
MaintainerUnnilennium
Urlhttps://nextcloud.com
LicenceAGPLv3
Category

Cloud

Tags cloudfilesdropboxseafilepydioajaxplorerowncloud


Maintainer

Jean-Philippe Pialasse

Version

Contrib 10:
Contrib 9:
smeserver-nextcloud
The latest version of smeserver-nextcloud is available in the SME repository, click on the version number(s) for more information.


Contrib 9:
nextcloud
The latest version of nextcloud is available in the SME repository, click on the version number(s) for more information.


Contrib 10:
nextcloud-src
The latest version of nextcloud-src is available in the SME repository, click on the version number(s) for more information.


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 install 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

you might want to set your default phone region (use your country 2 letter code - low case)

occ config:system:set default_phone_region --value="us"

you might want to have nextcloud accessible to the Internet

config setprop nextcloud access public
signal-event nextcloud-update

Use a dedicated domain to connect to Nextcloud

first change the first line variable content with you nextcloud domain as defined with your DNS provider.

NEXTCLOUDDOMAIN="cloud.mydomain.com"
db domains set $NEXTCLOUDDOMAIN domain Description "Nextcloud" Content Primary Nameservers internet TemplatePath WebAppVirtualHost DocumentRoot /usr/share/nextcloud RequireSSL enabled letsencryptSSLcert enabled
signal-event domain-create $NEXTCLOUDDOMAIN

# this one to let nextcloud DAV be redirect correctly
config setprop nextcloud CloudDomain $NEXTCLOUDDOMAIN
# this line is to have collabora recognize the domain
config setprop nextcloud VirtualHost $NEXTCLOUDDOMAIN
signal-event nextcloud-update

# only if you use a Let's Encrypt certificate
expand-template /etc/dehydrated/domains.txt
dehydrated -c

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 domain dedicated to nextcloud, needs to also be defined as domain on the server
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/latest/admin_manual/configuration_server/occ_command.html

Upgrade

yum  update smeserver-nextcloud nextcloud --enablerepo=smecontribs

Uninstall

yum remove smeserver-nextcloud  nextcloud nextcloud-src

prior to smeserver-nextcloud you will also need to remove nextcloud package from Exclude, this is a one liner to do so

db yum_repositories setprop smecontribs Exclude $(db yum_repositories getprop smecontribs Exclude |awk '{gsub (/\ynextcloud,?\y|\y,?nextcloud\y/, "", $1)}1')

alternative would be to do

db yum_repositories getprop smecontribs Exclude
nextcloud,randomthing

and recopy the result without nextcloud

db yum_repositories setprop smecontribs Exclude randomthing

or simply do the following if nextcloud is the only package

db yum_repositories delprop smecontribs Exclude

Release schedule

see https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule

as per 2022/07:

Release date End of life Current version Next version
24 2022-05-03 2023-05 24.0.2 (2022-06-20) 24.0.3 (2022-07-18)
23 2021-11-30 2022-12 23.0.6 (2022-06-20) 23.0.7 (2022-07-18)
22 2021-07-06 2022-07 22.2.9 (2022-06-20) 22.2.10 (2022-07-18)
21 2021-02-22 2022-02 21.0.9 (2022-02-15) End of Life
20 2020-10-03 2021-11 20.0.14 (2021-11-11) End of Life
19 2020-06-03 2021-06 19.0.13 (2021-07-01) End of Life
18 2020-01-16 2021-01 18.0.14 (2021-01-27) End of Life

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:mode --on
mysqldump `config getprop nextcloud DbName` > nextcloud.sql
echo "CREATE DATABASE IF NOT EXISTS `config getprop nextcloud DbName` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"| mysql105
mysql105 `config getprop nextcloud DbName`< nextcloud.sql
echo "CREATE USER IF NOT EXISTS `config getprop nextcloud DbUser`@localhost IDENTIFIED BY '`config getprop nextcloud DbPassword`';"| mysql105
echo "GRANT ALL PRIVILEGES ON `config getprop nextcloud DbName`.* TO `config getprop nextcloud DbUser`@localhost; FLUSH PRIVILEGES;" | mysql105
occ config:system:set dbhost --value localhost:/var/lib/mysql/mariadb105.sock --type string
occ maintenance:mode --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

Remove legacy nextcloud rpm without deleting /usr/share/nextcloud content

for installs done before smeserver-nextcloud 1.2.0-16, the rppm nextcloud was required and was conflicting with web update. Since 1.2.0-16 it is not required anymroe and we use a nextcloud-src rpm which updates itself in /usr/share/nextcloud-src and is only used if you install the first time or restart from scratch your install. TO remove the nextcloud rpm which is not needed and save your files, two ways

1 backup/restore

mkdir /usr/share/nextcloud-back
rsync -arv /usr/share/nextcloud/ /usr/share/nextcloud-back
rpm -e nextcloud
rsync -arv /usr/share/nextcloud-back/ /usr/share/nextcloud
rm -rf /usr/share/nextcloud-back

2 inplace (you can backup also before in case ...

rpm -e --justdb nextcloud

source https://unix.stackexchange.com/questions/208722/how-to-remove-an-rpm-package-while-keeping-certain-files

User cannot see shares/files

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.

NC 20-21 : open_basedir restriction in effect. File(/templates/) is not within the allowed path

this is a bug in NC. It has been fixed in NC 22 and not backported to NC20. This is just log noise. You can ignore it while waiting to update see https://help.nextcloud.com/t/error-file-templates-is-not-within-the-allowed-path-s-after-update-from-20-xx-to-21-0-3/119843

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:

IDProductVersionStatusSummary (8 tasks)
12685SME Contribs10.0VERIFIEDInstall fails when attempting occ cmd at cli and no browser access
12611SME Contribs10.0RESOLVEDupdate cron script with maintenance_window_start
12609SME Contribs10.0CONFIRMEDsmeserver-nextcloud S30nextcloud-occ-conf errors when run via ddclient panel
12487SME Contribs10.0CONFIRMEDupdate nextcloud fail2ban filter
12486SME Contribs10.0RESOLVEDocc requires /sbin/e-smith to be in the path
12406SME Contribs10.0CONFIRMEDNFR switch to PHP83 support for NC 29 and after
11169SME Contribs10alphaCONFIRMEDsmeserver-nextcloud requires a modify script
10566SME Contribs10.0CONFIRMEDNFR: split action nextcloud-occ-conf

Changelog

Only released version in smecontrib are listed here.

smeserver-nextcloud Changelog: SME 10 (smecontribs)
2024/05/16 Jean-Philippe Pialasse 1.2.0-31.sme
- 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]

- index file cache using Redis [SME: 12401]
2023/09/09 John Crisp 1.2.0-27.sme
- Fix syntax error in 20opcache.ini [SME: 12298]

References

  1. https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html
  2. https://help.nextcloud.com/t/migration-from-mysql-to-mariadb/6816/3
  3. https://help.nextcloud.com/t/changing-mariadb-socket-when-hosting-multiple-db-ubuntu/68294
  4. https://markus-blog.de/index.php/2019/10/21/how-to-migrate-nextcloud-17-database-backend-from-mysql-to-postgresql/