For some reason I cannot used the included updater. It simply gives a blank screen.
This site really helped. https://blog.netways.de/2017/07/19/how-to-use-nextcloud-cli/
Update / Upgrade
Let’s start with upgrading to the newest version. Go to the directory where your nextcloud is located – there should be a folder called ‘updater’.
[root@nc-vm ~]# cd /var/www/nextcloud/updater
[root@nc-vm ~]
# ls index.php updater.phar
Inside the updater folder is a file called updater.phar.
Now execute the following command.
[root@nc-vm ~]# sudo -u www-data php updater.phar Current version is 11.0.3. Update to Nextcloud 12.0.0 available. (channel: "stable") Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-12.0.0.zip Steps that will be executed: [ ] Check for expected files [ ] Check for write permissions [ ] Enable maintenance mode [ ] Create backup [ ] Downloading [ ] Extracting [ ] Replace entry points [ ] Delete old files [ ] Move new files in place [ ] Done Start update? [y/N] y
Confirm with ‘y’ to start the update.
Info: Pressing Ctrl-C will finish the currently running step and then stops the updater. [] Check for expected files [] Check for write permissions [] Enable maintenance mode [] Create backup [] Downloading [] Extracting [] Replace entry points [] Delete old files [] Move new files in place [] Done Update of code successful. Should the "occ upgrade" command be executed? [Y/n] Y
After the new files have been moved in place you’ll have to confirm to execute the “occ upgrade” command.
Nextcloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade Set log level to debug Updating database schema Updated database Updating federatedfilesharing ... Updated federatedfilesharing to 1.2.0 Updating files_pdfviewer ... Updated files_pdfviewer to 1.1.1 Updating files_texteditor ... .. .. Checking for update of app workflowengine in appstore Checked for update of app "workflowengine" in appstore Starting code integrity check... Finished code integrity check Update successful Maintenance mode is kept active Reset log level Keep maintenance mode active? [y/N] N
And finally you enter ‘N’ to disable the maintenance mode
Maintenance mode is disabled
And that’s it. But note: even if it tells you that a lot of apps are be updated, you may find that not all of your apps have been updated.
OCC Command
Next we’ll explore the features of the occ command.
[root@nc-vm ~]# cd /var/www/nextcloud
[root@nc-vm ~]
# sudo -u www-data php occ
You will get a long list of the available options and commands.
Nextcloud version 12.0.0 Usage: command [options] [arguments] Options: -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question --no-warnings Skip global warnings, show command output only -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: _completion BASH completion hook. check check dependencies of the server environment help Displays help for a command list Lists commands status show some status information .. .. versions versions:cleanup Delete versions versions:expire Expires the users file versions
I won’t be able to cover all of them in this post. But I’ll go over a view of them in the following.
Reset Admin Password
This is pretty useful if you forgot your admin password and you find yourself locked out of your Nextcloud.
[root@nc-vm ~]# sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin Enter a new password: Confirm the new password: Successfully reset password for admin
Change Log Level
Sometimes you to increase the log level to figure out what is wrong. By default the log level is set to ‘warning’ (level 2).
To get more information you’ll have to decrease the number. So 1 is level ‘info’ and 0 is for ‘debug’.
You may also set it to ‘error’ which is level 3 to get less information.
[root@nc-vm ~]# sudo -u www-data php occ log:manage --level 0 Enabled logging backend: file Log level: Debug (0) Log timezone: UTC
Encryption
For server side encryption it’s necessary to enable the encryption app first.
(In Nextcloud Version 12.0.0 and prior enryption does not work with S3 object store as primary storage.)
[root@nc-vm ~]# sudo -u www-data php occ app:enable encryption encryption enabled
And then enable encryption
[root@nc-vm ~]# sudo -u www-data php occ encryption:enable Encryption enabled Default module: OC_DEFAULT_MODULE
Note that only new uploaded files will be encrypted and not the existing ones.
In order to encrypt all existing files of all users you will have to issue the following command:
[root@nc-vm ~]# sudo -u www-data php occ encryption:encrypt-all You are about to encrypt all files stored in your Nextcloud installation. Depending on the number of available files, and their size, this may take quite some time. Please ensure that no user accesses their files during this time! Note: The encryption module you use determines which files get encrypted. Do you really want to continue? (y/n) y
Continue with ‘y’. You may notify the users by mail about their private key passwords.
But this only works if the users have provided their email-addresses.
Encrypt all files with the Default encryption module ==================================================== Create key-pair for every user ------------------------------ This module will encrypt all files in the users files folder initially. Already existing versions and files in the trash bin will not be encrypted. Key-pair created for all users [============================] Start to encrypt users files ---------------------------- all files encrypted [>---------------------------] Generated encryption key passwords ---------------------------------- +-----------+----------------------+ | Username | Private key password | +-----------+----------------------+ | admin | BqaK1WtI | +-----------+----------------------+ A list of all newly created passwords was written to data/oneTimeEncryptionPasswords.csv Each of these users need to login to the web interface, go to the personal settings section "basic encryption module" and update the private key password to match the login password again by entering the one-time password into the "old log-in password" field and their current login password Do you want to send the passwords directly to the users by mail? (y/n) n
Configuration
Usually the config file for Nextcloud is located in /var/www/nextcloud/config.
So in order to change the configuration you may edit the file /var/www/nextcloud/config/config.php with a text editor.
But you can also import a custom config file in json format. In this example I imported a config to set Ceph S3 object store as primary storage for Nextcloud:
[root@nc-vm ~]# cat objectstore.json {"system": { "objectstore": { "class": "OC\\\\Files\\\\ObjectStore\\\\S3", "arguments": { "bucket": "$RGW_BUCKET", "autocreate": true, "key": "$RGW_KEY", "secret": "$RGW_SECRET", "hostname": "$RGW_HOSTNAME", "use_ssl": true, "use_path_style": true } } }}
[root@nc-vm ~]
# sudo -u www-data php occ config:import objectstore.json Config successfully imported from: objectstore.json
It’s also possible to view only specific sections of the config:
[root@nc-vm ~]# sudo -u www-data php occ config:system:get objectstore class: OC\\Files\\ObjectStore\\S3 arguments: bucket: $RGW_BUCKET autocreate: true key: $RGW_KEY secret: $RGW_SECRET hostname: $RGW_HOSTNAME use_ssl: true use_path_style: true
Apps
To get a list of all installed enabled and disabled apps:
[root@nc-vm ~]# sudo -u www-data php occ app:list Enabled: - activity: 2.5.2 - bruteforcesettings: 1.0.2 - calendar: 1.5.3 - comments: 1.2.0 .. .. - workflowengine: 1.2.0 Disabled: - admin_audit - encryption - files_external - previewgenerator - user_external - user_ldap
To enable/disable apps:
[root@nc-vm ~]# sudo -u www-data php occ app:enable previewgenerator previewgenerator enabled
[root@nc-vm ~]
# sudo -u www-data php occ app:disable calendar calendar disabled
Like I mentioned before, there are many more commands and the ones I picked are just a view of them.
But I hope they were useful at least for some of you.