Changes

Jump to navigation Jump to search
m
Line 23: Line 23:  
<!-- keep this first element as is, you can add some if needed -->
 
<!-- keep this first element as is, you can add some if needed -->
 
{{#smeversion: {{#var:smecontribname}} }}
 
{{#smeversion: {{#var:smecontribname}} }}
{{#smeversion: {{#var:contribname}} }}
+
{{#smeversion: nextcloud-src  }}
    
=== Description ===
 
=== Description ===
Line 45: Line 45:  
</tab>
 
</tab>
 
<tab name="For sme9">
 
<tab name="For sme9">
You do not need to  follow the Repo pages of [https://wiki.contribs.org/Fws fws] and [https://wiki.contribs.org/Remi-safe 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.
+
You do not need to  follow the Repo pages of [https://wiki.contribs.org/Fws fws] and [https://wiki.contribs.org/Remi-safe 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
 
  yum install smeserver-extrarepositories-remi-safe smeserver-extrarepositories-fws smeserver-extrarepositories-epel
 
  signal-event yum-modify
 
  signal-event yum-modify
Line 72: Line 72:  
</tabs>
 
</tabs>
   −
=== Upgrade ===
+
you might want to set your default phone region (use your country 2 letter code - low case)
  yum  update {{#var:smecontribname}} {{#var:contribname}} smeserver-php-fpm smeserver-webapps-common --enablerepo=smecontribs,epel,fws
+
  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
 
  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.
 +
<syntaxhighlight lang="bash">
 +
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 and 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
 +
 +
</syntaxhighlight>
    
=== Configuration ===
 
=== Configuration ===
Line 86: Line 106:  
|GENERATED
 
|GENERATED
 
|string
 
|string
|password for your main admin user for nextcloud *
+
|password for your main admin user for nextcloud (*)
 
|-
 
|-
 
|AdminUser
 
|AdminUser
 
|nextcloudadmin
 
|nextcloudadmin
 
|string
 
|string
|main admin user for your installation *
+
|main admin user for your installation (*)
 +
|-
 +
|cliurl
 +
|enabled
 +
|enabled,disabled
 +
|force overwrite.cli.url to https://domain/nextcloud or https://domain if virtualhost is set; disable it if you have specific needs and then use occ command to set your value
 
|-
 
|-
 
|DbName
 
|DbName
Line 116: Line 141:  
|empty
 
|empty
 
|domain name
 
|domain name
|
+
|domain dedicated to nextcloud, needs to also be defined as domain on the server
 
|-
 
|-
 
|access
 
|access
Line 136: Line 161:  
|528M
 
|528M
 
|number
 
|number
|if a number will be converted to Megabytes, otherwise use the usual suffix : 2T for 2 terrabytes etc...
+
|webinterface : if a number will be converted to Megabytes, otherwise use the usual suffix : 2T for 2 terrabytes etc...
 +
|-
 +
|memory_limit
 +
|1024M
 +
|number
 +
|for cli like occ command or cron: if a number will be converted to Megabytes, otherwise use the usual suffix : 2T for 2 terrabytes etc...
 
|-
 
|-
 
|Shares
 
|Shares
Line 152: Line 182:  
|strings coma separated
 
|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.
 
|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.
 +
|-
 +
|opcache.memory_consumption
 +
|32
 +
|number
 +
|update this value if Nextcloud says that it should be
 +
|-
 +
|opcache.interned_strings_buffer
 +
|128
 +
|number
 +
|update this value if Nextcloud says that it should be
 +
|-
 +
|PHPBaseDir
 +
|
 +
|colon separated string
 +
|php base dir you want to add to the default example /home/e-smith/files/ibays/musique/files:/usr/share/GeoIP/GeoLite2-Country.mmdb:/proc/cpuinfo
 
|-
 
|-
 
|UseSMB
 
|UseSMB
Line 158: Line 203:  
|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.
 
|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.
+
(*) the SME admin user is also an admin of your nextcloud installation. You have two admin account as per default installation on SME Server.
      Line 164: Line 209:  
   config setprop nextcloud ExcludeIbay ibay1,ibay2
 
   config setprop nextcloud ExcludeIbay ibay1,ibay2
 
   signal-event nextcloud-update
 
   signal-event nextcloud-update
 +
 +
=== LDAP/AD Integration Settings ===
 +
Do not change the LDAP/AD integration settings for "1. Server: Localhost" or you will break the Nextcloud install.  If you want to add a second LDAP/AD server, click the "+" symbol to add another configuration and then add the appropriate LDAP/AD settings.
    
=== Command line ===
 
=== 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: <syntaxhighlight lang="bash">
 
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: <syntaxhighlight lang="bash">
OCC maintenance:mode --off
+
occ maintenance:mode --off
OCC maintenance:repair
+
occ maintenance:repair
   −
</syntaxhighlight>to seek for additional command consult Nextcloud documentation : https://docs.nextcloud.com/server/13.0.0/admin_manual/configuration_server/occ_command.html
+
</syntaxhighlight>to seek for additional command consult Nextcloud documentation : https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html
   −
=== Uninstall ===
+
=== Upgrade ===
  yum remove {{#var:smecontribname}} {{#var:contribname}}
+
  yum update {{#var:smecontribname}} {{#var:contribname}} --enablerepo=smecontribs
 +
 
 +
=== CLI upgrade of Nextcloud software ===
 +
You should rather prefer the online updater, but in case:<syntaxhighlight lang="bash">
 +
occ maintenance:mode --on
 +
sudo -u www /usr/bin/php74 --define memory_limit=1024M -d apc.enable_cli=1 /usr/share/nextcloud/updater/updater.phar --no-interaction
 +
occ upgrade
 +
occ maintenance:mode --off
 +
</syntaxhighlight>In case of a huge db, you can choose the online updater and then only issue the db update doing<syntaxhighlight lang="bash">
 +
occ upgrade
 +
occ maintenance:mode --off
 +
</syntaxhighlight>
   −
=== Use a dedicated domain to connect to Nextcloud ===
+
starting 25 to upgrace to 26, you should do
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
db domains set cloud.mydomain.com domain Description "Nextcloud" Content Primary Nameservers internet TemplatePath WebAppVirtualHost DocumentRoot /usr/share/nextcloud RequireSSL enabled letsencryptSSLcert enabled
+
occ maintenance:mode --on
signal-event domain-create cloud.mydomain.com
+
sudo -u www /usr/bin/php81 --define memory_limit=1024M -d apc.enable_cli=1 /usr/share/nextcloud/updater/updater.phar --no-interaction
 
+
occ upgrade
#this one to let nextcloud DAV be redirect correctly
+
occ maintenance:mode --off
config setprop nextcloud CloudDomain cloud.mydomain.com
+
</syntaxhighlight>In case of a huge db, you can choose the online updater and then only issue the db update doing<syntaxhighlight lang="bash">
signal-event nextcloud-update
+
occ upgrade
 
+
occ maintenance:mode --off
#only if you use a Let's Encrypt certificate
+
</syntaxhighlight>
expand-template /etc/dehydrated/domains.txt
  −
dehydrated -c
      +
=== Restore info loglevel ===
 +
<syntaxhighlight lang="bash">
 +
occ config:system:set loglevel --value=3
 
</syntaxhighlight>
 
</syntaxhighlight>
   −
=== Move user space from uuid to username ===
+
=== Uninstall ===
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
+
{{Warning box| if you plan to reinstall and had the nextcloud rpm installed do not yum remove it or rpm -e it as it would put you in a situation where you will not be able to reinstall and restore your old data. nextcloud-src rpm if present do not create such situation and can be removed safely.}}
   −
=== Mount with davfs on Fedora Clients ===
+
Uninstalling the rpms
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.
+
yum remove {{#var:smecontribname}}  {{#var:contribname}}-src
 +
rpm -e --justdb nextcloud
   −
Here is a workaround
+
those folders will then remain
 +
* /usr/share/nextcloud : software and config
 +
* /home/e-smith/files/nextcloud : user data
   −
First as root<syntaxhighlight lang="bash">
+
also you will have mariadb or mariadb105 with nextcloud db and user.
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
      +
And finally, db configuration with entry for nextcloud.
   −
</syntaxhighlight>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"
+
If all of those remains as is, a simple reinstall of the contrib will bring back nextcloud running. If you uninstalled it because your install was non functional or want a complete removal, there are extra steps.  
   −
then as your user (replace your_password by your password, or a token;):<syntaxhighlight lang="bash">
+
In case of deleting either the db or part of the software folder, whenever you will try to reinstall the contrib, process will fail as db and files are not in sync.
mkdir ~/nextcloud
  −
mkdir ~/.davfs2
  −
echo "https://example.com/nextcloud/remote.php/webdav your_Nextcloud_username your_password" >> ~/.davfs2/secrets
  −
chmod 0600 ~/.davfs2/secrets
  −
</syntaxhighlight>then just mount ! <syntaxhighlight lang="bash">
  −
mount ~/nextcloud
  −
</syntaxhighlight>
     −
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 <syntaxhighlight lang="bash">
+
In case you need to reinstall from scratch, '''first, backup what you might want to restore latter''':
cache_size 3G
+
cd /home/e-smith/files/nextcloud/data
</syntaxhighlight>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".
+
mysqldump nextcloud > nextcloud55.sql
 +
mysqldump105 nextcloud > nextcloud105.sql
 +
config print nextcloud /root/nextcloud.config
 +
tar -czf  /root/nextcloud.tar.gz /home/e-smith/files/nextcloud/data /usr/share/nextcloud
 +
then erase all what is remaining:
 +
mysql -e "DROP DATABASE `config getprop nextcloud DbName`;DROP USER IF EXISTS `config getprop nextcloud DbUser`;"
 +
mysql105 -e "DROP DATABASE `config getprop nextcloud DbName`;DROP USER IF EXISTS `config getprop nextcloud DbUser`;"
 +
rm -rf /usr/share/nextcloud
 +
rm -rf /home/e-smith/files/nextcloud
 +
#this one is optional, and should not cause issue if still there
 +
config delete nextcloud
   −
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<syntaxhighlight lang="bash">
+
and you should be able to start a new install from scratch
mount /home/username/nextcloud
      +
=== Release schedule ===
 +
see https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule
   −
 
+
as per 2024/01:
</syntaxhighlight>And Finally to umount in  gdm using "sudo vim /etc/gdm/PostSession/"<syntaxhighlight lang="bash">
+
{| class="wikitable"
if [ ${USERNAME} = "myuser" ];then
+
!Version
  umount -fl /home/myuser/nextcloud
+
!Name
fi
+
!Release date
</syntaxhighlight>
+
!End of life
 
+
|-
Adapted from those sources:
+
|'''29'''
* http://www.tuxfixer.com/mount-webdav-remote-storage-in-fedora-linux-via-davfs2/
+
|
* https://docs.nextcloud.com/server/13/user_manual/files/access_webdav.html
+
|2024-04-24
 +
|
 +
|-
 +
|'''28'''
 +
|Hub 7
 +
|2023-12-12
 +
|2024-12
 +
|-
 +
|'''27'''
 +
|Hub 6
 +
|2023-06-13
 +
|2024-06
 +
|-
 +
|'''26'''
 +
|Hub 4
 +
|2023-03-21
 +
|2024-03
 +
|-
 +
|'''<s>25</s>'''
 +
|<s>Hub 3</s>
 +
|<s>2022-10-19</s>
 +
|<s>2023-10</s>
 +
|-
 +
|'''<s>24</s>'''
 +
|<s>Hub 3</s>
 +
|<s>2022-05-03</s>
 +
|<s>2023-05</s>
 +
|-
 +
|'''<s>23</s>'''
 +
|<s>Hub 2</s>
 +
|<s>2021-11-30</s>
 +
|<s>2022-12</s>
 +
|-
 +
|'''<s>22</s>'''
 +
|<s>Hub</s>
 +
|<s>2021-07-06</s>
 +
|<s>2022-07</s>
 +
|-
 +
|'''<s>21</s>'''
 +
|<s>Hub</s>
 +
|<s>2021-02-22</s>
 +
|<s>2022-02</s>
 +
|-
 +
|'''<s>20</s>'''
 +
|<s>Hub</s>
 +
|<s>2020-10-03</s>
 +
|<s>2021-11</s>
 +
|-
 +
|'''<s>19</s>'''
 +
|<s>Hub</s>
 +
|<s>2020-06-03</s>
 +
|<s>2021-06</s>
 +
|-
 +
|'''<s>18</s>'''
 +
|<s>Hub</s>
 +
|<s>2020-01-16</s>
 +
|<s>2021-01</s>
 +
|}
    
=== Change Database ===
 
=== Change Database ===
Line 257: Line 361:     
Here a simple procedure, after having the new db working as a sclo [[Mariadb105]] for SME10 as example.<syntaxhighlight lang="bash">
 
Here a simple procedure, after having the new db working as a sclo [[Mariadb105]] for SME10 as example.<syntaxhighlight lang="bash">
occ maintenance --on
+
occ maintenance:mode --on
 
mysqldump `config getprop nextcloud DbName` > nextcloud.sql
 
mysqldump `config getprop nextcloud DbName` > nextcloud.sql
mysql105 < nextcloud.sql
+
echo "CREATE DATABASE IF NOT EXISTS `config getprop nextcloud DbName` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"| mysql105
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
+
mysql105 `config getprop nextcloud DbName`< nextcloud.sql
occ config:system:set host --value localhost:/var/lib/mysql/mariadb105.sock --type string
+
echo "CREATE USER IF NOT EXISTS `config getprop nextcloud DbUser`@localhost IDENTIFIED BY '`config getprop nextcloud DbPassword`';"| mysql105
occ maintenance --off
+
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
 
</syntaxhighlight>
 
</syntaxhighlight>
   Line 270: Line 376:  
  occ config:system:set host --value localhost --type string
 
  occ config:system:set host --value localhost --type string
 
  occ maintenance --off
 
  occ maintenance --off
 +
 +
=== File Scan ===
 +
<syntaxhighlight lang="bash">
 +
# scan all, could take hours if you have a lot of files
 +
occ files:scan -v --all
 +
# scan all that is inside a username path (including external storages mounted there)
 +
occ files:scan -v myusername
 +
#scan only a subfolder of a user (path needs a heading / and is relative to /home/e-smith/files/nextcloud/data)
 +
occ files:scan -v --path="/myusername/files/myfolder/mysubfolder" myusername
 +
#For external storage one has to use a user and the mount point in the user space, e.g. admin
 +
occ files:scan -v --path="/admin/files/name_of_external_storage"
 +
</syntaxhighlight>If you use groupgfolders app, then you might consider, to list the golders id<syntaxhighlight lang="bash">
 +
occ groupfolders:list
 +
</syntaxhighlight>then for folder group with id 1<syntaxhighlight lang="bash">
 +
occ groupfolders:scan 1
 +
</syntaxhighlight>
    
=== Known issues ===
 
=== Known issues ===
 +
 +
==== Web or GUI upgrade from NC25 to NC26  ====
 +
 +
Due to the change of php version needed from php74 to php80 and higher, you need to issue the following command while using NC25 to be able to then upgrade to NC26. NC25 is the first to be able to handle php80, and NC26 requires php80 or higher.
 +
<syntaxhighlight lang="bash">
 +
signal-event nextcloud-update
 +
</syntaxhighlight>
 +
 +
==== Issue importing files in db "Entry path/to/file will not be accessible due to incompatible encoding" ====
 +
<syntaxhighlight lang="bash">
 +
yum install convmv --enablerepo=epel
 +
#first test to see the changes
 +
convmv -f utf-8 -t utf-8 --nfc -r /home/e-smith/files/nextcloud/data/username
 +
#check, then with --notest
 +
convmv -f utf-8 -t utf-8 --nfc -r --notest /home/e-smith/files/nextcloud/data/username
 +
#then rescan
 +
occ files:scan -p /username/files/
 +
</syntaxhighlight>this might also occurs on ibays / home folders and their files not all visibles from nextcloud, simply adapt the path for convmv /home/e-smith/files/ibays/ibayname/files/ or /home/e-smith/files/users/userame/home/
 +
 +
==== 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:
 +
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 ====
 
==== User cannot see shares/files ====
Line 292: Line 439:     
This appeared to fix the issue and the user could now see the files.
 
This appeared to fix the issue and the user could now see the files.
 +
 +
====Upgrading beyond 20.x====
 +
 +
To set the default phone region:
 +
 +
OCC config:system:set default_phone_region --type string --value="GB"
 +
 +
To fix missing indices - this may take a while so be patient:
 +
 +
OCC db:add-missing-indices
 +
 +
==== 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===
 
===Reset Database===
Line 316: Line 477:  
[[Category: Contrib]]
 
[[Category: Contrib]]
 
<!-- Please keep there the template revision  number as is -->
 
<!-- Please keep there the template revision  number as is -->
 +
 +
===References===
 +
# https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html
 +
# https://help.nextcloud.com/t/migration-from-mysql-to-mariadb/6816/3
 +
# https://help.nextcloud.com/t/changing-mariadb-socket-when-hosting-multiple-db-ubuntu/68294
 +
# https://markus-blog.de/index.php/2019/10/21/how-to-migrate-nextcloud-17-database-backend-from-mysql-to-postgresql/
 +
# https://www.ullright.org/ullWiki/show/nextcloud-cheatsheet
3,054

edits

Navigation menu