Last updated: 2024-12-25 Wed 15:14

Nextcloud installation to shared hosting (kapsi.fi)
With Borg backups

Philosophy

Having for you and your family your own place to access your synchronized files, both on computer and phone has proven to be very handy. Some of the benefits:

  • Decentralized: I’m in control, but also responsible of my data.
  • Federated: Scales infinitely, I can easily share, and never run out of space. This obv. requires me to contact Kapsi admins and request more disk space or, setup e.g. an Amazon S3 bucket as an external storage.
  • Open source: No vendor lock-in, no data mined out of my data, ensured continuous development, vibrant community in case I need to troubleshoot.
  • Abundance of features: Photos on maps, face recognition, WebDAV for files (beorg, Nextcloud sync client), CardDAV for contacts…
  • Offsite: I could host this onsite, but since the use case is hook up Nextcloud to my backups, I chose offsite location from a hosting provider I trust.
  • Lossless quality: Photos backup in original quality, so I don’t have to pay Google Photos / iCloud subscription.

Prerequisites

Find a hosting provider, e.g. Kapsi, that has the needed infrastructure already setup and maintained (MariaDB, php, etc.). Install there to data storage called “Siilo”. Request from Kapsi admins a data storage page, see instructions for that. In my case the page requested was: https://pyyhttu-siilo.kapsi.fi/. After you’ve requested and paid for your Kapsi-credentials, infra, OS and dependencies are already in place. Ensure that Nextcloud latest system requirements are fulfilled:

Operating system:
$ cat /proc/version

Database:
$ mysql -V

Webserver:
$ apache2 -v

PHP runtime:
$ php -v (Note: more supported php runtime versions are installed in /usr/bin/, like php8.2.).

Install

Navigate to your www-directory:
$ cd ~/siilo/sites/yoursite-siilo.kapsi.fi/www

Download the latest install tarball, in my case 16.0.4:
$ wget 'https://download.nextcloud.com/server/releases/nextcloud-16.0.4.tar.bz2'

Extract the source tarball:
$ tar xvfj nextcloud-16.0.4.tar.bz2

Open browser and go to https://yoursite-siilo.kapsi.fi/nextcloud/index.php/login

Choose whether to install into a sub-folder or to the root of www-directory (in that case just enter . (dot) for the installation path).

Create admin account by entering admin username and password.

Select Storage & Database section, select MariaDB.

Enter database. Usually the database name and the user is the same as the Kapsi username. The host address of Kapsi MySQL server is db1.n.kapsi.fi. If you do not have a personal password for database, you can ask for it from the Kapsi support. Database maintenance then happens at https://pakki.kapsi.fi/phpmyadmin/

Post-installation tasks

Edit .htaccess

When connecting through https, the following error is shown in the admin panel:

The “Strict-Transport-Security” HTTP header is not configured to at least “15552000” seconds.

To do away with that, modify .htaccess:

$ nano ~/siilo/sites/yoursite.siilo.kapsi.fi/www/nextcloud/.htaccess

Insert inside <IfModule mod_headers.c>:

Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"

Allow access from different ip-addresses if accessing Nexcloud with multiple clients. Inside <IfModule mod_rewrite.c> insert:

RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://yoursite-siilo.kapsi.fi/$1 [R=301,L]

[2019-05-17 Fri]: Above seems not to be needed anymore after Nextcloud version 16.0.1.

Lastly, append to the end of .htaccess a rule:

IndexIgnore *
<Limit GET POST PUT DELETE OPTIONS PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
order allow,deny
allow from all
</Limit>

Edit .user.ini

Otherwise error is thrown in Settings - Overview:

The PHP memory limit is below the recommended value of 512MB

[2019-05-17 Fri]: Error was found after upgrade from 15.0.7 to version 16.0.1. This seems to be kapsi-hosting specific.

[2019-05-19 Sun]: Fixed this as per Kapsi’s php.ini instructions by appending to /nextcloud/.user.ini the values:

post_max_size = 10000M
upload_max_filesize = 10000M
memory_limit = 512M

Same issue has been reported at Github’s nextcloud project.

[2024-12-01 Sun]: Contents of /www/nextcloud/.user.ini:

mbstring.func_overload=0
always_populate_raw_post_data=-1
default_charset='UTF-8'
output_buffering=0
post_maxsize = 10000M
upload_maxfilesize = 10000M
memory_limit = 512M

At least output_buffering=0 needs to be in there, otherwise I’ll get in /admin/overview an error PHP configuration option "output_buffering" must be disabled.

Edit config.php

Append:

'trashbin_retention_obligation' => '30, 60',
'versions_retention_obligation' => '30, 180',
'tempdirectory' => '/siilo/6/pyyhttu/sites/tmp',
'simpleSignUpLink.shown' => false,
'default_phone_region' => 'FI',

Where,

Migrate data

Migrating existing data into Nextcloud can currently be done from Google Photos, Dropbox and OneDrive. However, I used Rclone and exiftool.

After I had the data on my local, it was a matter of setting it up with exiftool then uploading with rsync to ../nextcloud/data/[user]/.

Two-Factor Authentication

  • Login with your admin account to nextcloud and go to Settings - Personal - Security.
  • Generate the backup codes and store them somewhere safe. You need them if you lose your phone and access to TOTP.
  • Download and install to your phone a two-factor authenticator app.
  • Click "Enable TOTP", scan with the phone installed app the displayed QR-code.
  • Input the code from phone and click verify.
  • Consider enabling the same for all user accounts for added security.

Apps

After upgrade, go to Apps to check that the apps are still enabled. Some may have been marked with "Enable untested app" and needs to be enabled manually as the apps don’t yet support the new nextcloud version.

Current unofficial Apps installed:

To setup the contact record synchronization from iOS client’s Contacts app to Nextcloud via CardDAV, follow the nextcloud docs. For Kapsi-specific settings I used these settings:

Also change Default Account to Nextcloud in iOS at Settings, Contacts. This way when opening Contacts app, the master group for contacts is already Nextcloud (and not Exchange, local iPhone etc.).

Group folders are setup like so:

Table 1: Settings - Administration - Group folders
Folder name Groups Write/Share/Delete
Family_shared group_family All
Heidi_home group_heidi All
Tuomas_home group_tuomas All

Also edit cron so that News “at every 15th minute” polls the content from the feeds:

$ crontab -e

# */15  *  *  *  * php8.2 -f /home/users/pyyhttu/siilo/sites/yoursite.kapsi.fi/www/nextcloud/cron.php

Then install a client for your phone/desktop.

[2024-12-08 Sun]: Now Maps should work also for photos in group folders, see issue 123.

Photos’ exif coordinates are scanned periodically by a background job. This will not apply to any past photos prior Maps installed, so to add those to map, run:

$ php occ maps:scan-photos user_id

Note: Upon inspecting results after this command in Maps, the existing pictures disappear. Now waiting if they come back, or if I botched by database.

Install Memories by doing:
$ php occ app:install memories, then scan your photos:

$ php occ memories:index

See rest of the settings at /settings/admin/memories:

EXIF Extraction
Media Indexing
File Support
Photo Viewer
Performance
Recommended Apps
Reverse Geocoding
Video Streaming
Transcoder
HW Acceleration

Configure File Support for videos for previews to be visible in memories.

If not done, I’ll see on video thumbnail empty placeholder and an error: Video not configured. Run occ memories:video-setup

$ php occ memories:video-setup

This command will help you setup video streaming
It will check if ffmpeg and ffprobe are installed and go-vod (the transcoder) works
If you are running go-vod externally, feature detection will not work properly
In that case you will need to manually adjust the configuration file (add --print-config)
For details on hardware support: https://github.com/pulsejet/memories/wiki/HW-Transcoding

Press enter to continue or CTRL+C to abort

ffmpeg is installed
ffprobe is installed
Checking for go-vod binary
Trying go-vod from /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/apps/memories/exiftool-bin/go-vod-amd64
go-vod is installed!

You can use transcoding and HLS streaming
This is recommended for better performance, but has implications if
you are using external storage or run Nextcloud on a slow system.

Read the following documentation carefully before continuing:
https://github.com/pulsejet/memories/wiki/Configuration

Do you want to enable transcoding and HLS? [Y/n]
Y

Starting ffmpeg feature detection
This may take a while. Please be patient

Downloading test video file ... OK

Attempting to start go-vod ... OK
go-vod logs will be stored at: /tmp/go-vod/ocg80o430zwr.log

Testing transcoding with CPU ... FAIL
CPU transcoding failed with error HTTP status: 404
Check the log file of go-vod for more details (/tmp/go-vod/ocg80o430zwr.log)

Checking for VAAPI acceleration (/dev/dri/renderD128) ... NOT FOUND

Checking for NVIDIA acceleration with NVENC
Testing transcoding with NVENC (scale_npp) ... FAIL
Testing transcoding with NVENC (scale_cuda) ... FAIL
NVENC does not seem to be available

Feature detection completed

Transcoding and HLS are now enabled! Monitor the log file for any errors
You should restart the server for changes to take effect

If needed to use .nomedia see this issue.

Preview Generator

After installed, run in ../nextcloud/:

$ php occ preview:generate-all -vvv

Once finished, add the crojob:

$ crontab -e

*/10 * * * * php /home/users/pyyhttu/siilo/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/occ preview:pre-generate -vvv~

NEXT Figure out how much disk space this takes, and where

[2023-08-08 Tue] noticed the logs contained a lot of errors:

sem_get(): Failed for key 0xa11: Permission denied at /var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Preview/Generator.php#272

Reported in 44578. Followup.

[2024-12-08 Sun]: Still happens with version 30.0.2.

DONE Disable these official Apps

Settings

  • Login as an admin user, go to Settings (upper right corner).

Personal Info

  • Language: English (US)
  • Locale: English (Finland)

Security

  • TOTP (Authenticator app): [✓] Enable TOTP

Remember to generate backup codes and store them somewhere safe.

  • Create new app passwords for devices and services that need it (NextStats for iOS etc.)

Notifications

  • Default notification settings in mail and push are fine.

Sharing

  • Sharing Path: [✓] Enable Sharing Path

Appearance and accessibility

  • Defaults are otherwise fine, but disable keyboard shortcuts.

Availability

  • Defaults are fine.

Flow

  • Defaults are fine.

Privacy

  • Defaults are fine.

Overview

  • Defaults are fine.

Basic Settings

  • Background jobs: Cron (Recommended)
  • Profile: Enable
  • Email server
  • Send mode: SMTP
  • Encryption: STARTTLS
  • From address: [your-handle]@kapsi.fi
  • Authentication method: None [✓] Authentication required
  • Server address: mail.kapsi.fi:587
  • Credentials: [your-handle] [your password]

[2024-12-25 Wed] Send mode: SMTP seems to write config/config.php with 'mail_smtppassword' in plain text, which is not wanted. Luckily, Send mode: Sendmail does not require authentication, so configure Email server with that instead:

  • Send mode: Sendmail
  • Encryption:
  • Sendmail mode: smtp (-bs) (also pipe (-t -i) works)
  • From address: [your-handle]@kapsi.fi

Theming

  • Random Background Images: [✓] Set random image as login background

Other tweaks

  • Hide rich workspaces: Login as a non-admin user, go to Settings (lower left corner), uncheck Show rich workspaces.

FOLLOWUP Security scan

Running security scan at https://scan.nextcloud.com/ against hosting at Kapsi should give A. The only missing score is from __Host-Prefix, which is because I have nextcloud installed to a subdirectory. Observe also this reddit thread and especially its linked Github issue for resolution.

NEXT Reinstall Nextcloud to root of siilo to get the highest security rating

Maintenance

NEXT Investigate into backup strategy

I will eventually use the 3-2-1 rule for backups, which will result in automatized, versioned backups. 3-2-1-backups explained.

For now, we run a manual rsync for backups. First, put the server to maintenance mode:

$ php occ maintenance:mode --on

Then config, data, themes and database are needed for complete nextcloud backup:

$ rsync -avx config/ ../config-bak_`date +"%Y%m%d"`/

$ rsync -avx data/ ../data-bak_`date +"%Y%m%d"`/

$ rsync -avx themes/ ../themes-bak_`date +"%Y%m%d"`/

$ mysqldump --single-transaction -h db1.n.kapsi.fi -u pyyhttu -p --max_allowed_packet=512M pyyhttu > nextcloud-sql-bak_`date +"%Y%m%d"`.bak

Finally, remember to lift the maintenance mode off:

$ php occ maintenance:mode --off

NEXT Exlude images created by Preview Generator from backups

That is, location ../nextcloud/data/appdata_ocg80o430zwr/preview, which currently takes 78G (and counting).

REJECTED Investigate usage of NextBackup for DB-backups

[2024-12-01 Sun]: NextBackup is obsoleted.

NEXT Investigate what is needed to backup contacts

NEXT Install borgbackup on NAS pi and pull periodic backups from Kapsi to pi OpenMediaVault

Investigate how to accomplish as per these search results. Also setup the borg script to backuo everything else from kapsi (highlander decks, debian notes etc.).

DONE Reindex content

When mass copying/moving files through ssh inside Nexcloud’s directory structure, you need to issue a reindex command so that Nextcloud’s DB indexes the copied/movied files and show them in its UI:

$ cd ~/siilo/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/

$ php occ files:scan --all

DONE Upgrading instance

New version is announced at Nextcloud blog. Here’s the feed link. Also, emails notifications keep me up to date.

When the next “dot-release” is announced, upgrade can be done usually right away. When the next “major-release” is announced, it is not offered through stable update channels until the first dot release is out. More information at release channels. Changelog of releases is available at Nextcloud Server Changelog. In any case, always take backups prior upgrading since downgrading is not supported.

To upgrade to a new version, first inspect whether there are updates available for Apps. Update them from UI, or from command line by doing at ../nextcloud/:

$ php occ app:list

$ php occ app:update <appname>

Then, review third-party apps (i.e. not Official) at /settings/admin/overview/, for their compatibility with the new Nextcloud major version. Before the upgrade, all 3rd party apps must be disabled. Disabling apps is handled by updater.phar script automatically. After the upgrade has been completed, re-enable the supported apps that were disabled with their new versions one by one.

Run the whole upgrade from the cmd line with updater.phar as the method avoids e.g. php time-out errors.

$ cd to /nextcloud/updater/

$ php updater.phar

$ php updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 17.0.1.

Update to Nextcloud 17.0.2 available. (channel: "stable")
Following file will be downloaded automatically:
https://download.nextcloud.com/server/releases/nextcloud-17.0.2.zip
Open changelog ↗

Steps that will be executed:
[ ] Check for expected files
[ ] Check for write permissions
[ ] Create backup
[ ] Downloading
[ ] Verify integrity
[ ] Extracting
[ ] Enable maintenance mode
[ ] Replace entry points
[ ] Delete old files
[ ] Move new files in place
[ ] Done

Start update? [y/N]

Hit 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
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[✔] Extracting
[✔] Enable maintenance mode
[✔] 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]

Hit Y to start the upgrade:

Should the "occ upgrade" command be executed? [Y/n] Y
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
2019-12-20T19:08:30+00:00 Set log level to debug
2019-12-20T19:08:30+00:00 Repair step: Repair MySQL collation
2019-12-20T19:08:30+00:00 Repair info: All tables already have the correct
collation -> nothing to do
2019-12-20T19:08:30+00:00 Repair step: Repair SQLite autoincrement
2019-12-20T19:08:30+00:00 Repair step: Copy data from accounts table when
migrating from ownCloud
2019-12-20T19:08:30+00:00 Repair step: Drop account terms table when
migrating from ownCloud
2019-12-20T19:08:30+00:00 Updating database schema
2019-12-20T19:08:30+00:00 Updated database
2019-12-20T19:08:30+00:00 Updating <files_rightclick> ...
2019-12-20T19:08:30+00:00 Updated <files_rightclick> to 0.14.2
2019-12-20T19:08:31+00:00 Checking for update of app accessibility in
appstore
[...]

Upgrade finishes with message:

Keep maintenance mode active? [y/N]

Hit N.

Upgrade is now finished. After the upgrade, do the “Post-installation tasks” again for .htaccess and .user.ini. The old, working files can be used to copy & paste the values from them in. The old files are at nextcloud/data/updater-ocg80o430zwr/backups 1

Navigate to login page and login. Go to Settings - Logging and check them for any errors. If none, upgrade has now been completed. 2

Troubleshooting

DONE Found on [2019-03-31 Sun] with version 14.0.3

Error in Settings - Overview:

The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running "occ db:add-missing-indices" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.

Run in nextcloud/ directory: $ php occ db:add-missing-indices


DONE Found on [2019-03-31 Sun] with version 14.0.3

Large video file uploads with ios client loop and never complete with error “502 error”

On server side the logging shows error: Sabre-DAV-Exception: expected filesize 10240000 got 7217152

Maybe something to do with apache settings. See reports 1, 2, 3 and 4.

[2024-12-08 Sun]: Can’t reproduce this anymore with Nextcloud 30.0.2 and with 500mb video file uploaded from iOS Nextcloud over wifi (no Wireguard VPN).


DONE Found on [2019-03-31 Sun] with version 14.0.3

Your web server is not properly set up to resolve "/.well-known/caldav".

This is actually wanted behaviour if nextcloud is installed in a subdirectory, see issue 12572 and especially comment in issue 11787. So to remedy this, I should install on shared hosting the nextcloud not to a subdirectory, but to root.

Update: After updating from 20.0.11 to 21.0.3 I now get two new warning entries:

Your web server is not properly set up to resolve "/.well-known/webfinger". Further information can be found in the documentation.
Your web server is not properly set up to resolve "/.well-known/nodeinfo". Further information can be found in the documentation.

I assume, that above finding of installing nextcloud to root fixes also warnings with webfinger and nodeinfo.

[2024-12-22 Sun]: Current warning is:

Your web server is not properly set up to resolve `.well-known` URLs, failed on: `/.well-known/webfinger` For more details see the [[https://docs.nextcloud.com/server/30/admin_manual/issues/general_troubleshooting.html#service-discovery][documentation]] ↗

This is not an error, just a warning and by testing carddav/caldav by syncing contacts (iOS) and calendar both work still.


NEXT Reinstall Nextcloud to root of siilo to avoid the error

NEXT Found on [2019-03-31 Sun] with version 14.0.3

No memory cache has been configured. To enhance performance, please configure a memcache, if available.

As per caching documentation there are three memory caching options for data (APCu, Redis and Memcached). But Kapsi doesn’t seem to to have any of those php modules installed. I can confirm this by doing:

$ php -m

For more informationa see help topic 31027 and 2651.

NEXT Ask Kapsi to enable caching

As no response in this thread yet.


DONE Found on [2019-03-31 Sun] with version 14.0.3

Your web server is not properly set up to resolve "/ocm-provider/" in Settings, append to .htaccess:

Check issue 48530.

[2019-04-07 Sun]: See last comment there, probably a bug, should go away in coming releases. Yes, fixed with version 15.0.6.

[2023-10-07 Sat]: Reappeared when updating from 27.1.1. to 27.1.2. but was fixed manually in .htaccess with this.


DONE Found on [2019-04-07 Sun] after upgrade from 15.0.6 to 15.0.7

Web based upgrade fails e.g. with "Parsing response failed. Step 6 is currently in process.

Or,

Can't handle ZIP file. Error code is: 28".

This may be because of PHP time outs.

To fix this, stop the upgrade process and finish it manually. First: force refresh the login page to bypass the cache (Ctrl-F5 in Firefox) and login to the upgraded Nextcloud instance.


DONE Found on [2019-04-07 Sun] after upgrade from 15.0.6 to 15.0.7

MySQL is used as database but does not support 4-byte characters. To be able
to handle 4-byte characters (like emojis) without issues in filenames or
comments for example it is recommended to enable the 4-byte support in MySQL.
For further details read the documentation page about this.

Follow-up in issue 51102.

Update [2024-09-30 Mon]: Nextcloud 29.0.7 made utf8mb4 character set as a hard dependency, and while troubleshooting that, noticed that kapsi admins had already updated db-instance with that. Confirmed by executing SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;.


DONE Found on [2019-04-07 Sun] after upgrade from 15.0.6 to 15.0.7

Getting a php error:

Error: include(): Failed opening '/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/composer/composer/../../../lib/public/DB/QueryBuilder/IQueryFunction.php' for inclusion (include_path='/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/apps/news/vendor/pear/net_url2:/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/pear/archive_tar:/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/pear/console_getopt:/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/pear/pear-core-minimal/src:/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/pear/pear_exception:/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/apps') at /var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/composer/composer/ClassLoader.php#444

Similar error reported here.

[2024-12-22 Sun]: Error is no longer seen in the logs, closing.


DONE Found on [2019-05-17 Fri] after upgrade from 15.0.7 to 16.0.1

Some files have not passed the integrity check.

Delete the obsolete files, then move manually into place the original files from the installation package.


DONE Found on [2019-09-26 Thu] after upgrade from 16.0.4 to 16.0.5

After invoking upgrade with $ php updater.phar an error is invoked after 2 hours in step 9, Delete old files:

...client_loop: send disconnect: Connection reset by peer.

Error was invoked after running $ php updater.phar, and updater had been running for exceptionally long, 2 hours. Especially the “Create backup” took a lot of time. Resolved this by deleting /nextcloud/data/updater-ocg80o430zwr/.step and then rerunning $ php updater.phar. Error was most probably due to lost ssh tunnel connection. Next time, I may want to run updated.phar in screen and monitor if this happens again.


DONE Found on [2019-09-28 Sat] after upgrade from 16.0.4 to 16.0.5

When accessing the News, I got instead error page:

Internal Server Error
The server was unable to complete your request.

If this happens again, please send the technical details below to the server administrator.

More details can be found in the server log.

Technical details

Remote Address: 88.115.55.164
Request ID: XY@LO38AAQEAAHwgoMYAAAGg

This seemed to be an intermittent issue, as clearing the browser cache and force reloading (shift-f5) the page helped.


DONE Found on [2019-09-28 Sat] after upgrade from 16.0.4 to 16.0.5

When trying to delete the access token under security (TOTP enabled), I get:

Error while deleting the token.

Probably this bug: https://github.com/nextcloud/server/issues/17164

This has been fixed in 17.0.0


DONE Found on [2019-09-28 Sat] after upgrade from 16.0.4 to 16.0.5

iOS client and News app in iOS do not seem update the server side. iOS client constantly requires to login. Similar bug reported at: https://help.nextcloud.com/t/ios-app-2-24-0-continually-prompts-for-login/60952 and at https://help.nextcloud.com/t/cant-connect-to-nextcloud-server-from-my-ipad/60401

Common nominator may be reverse proxy setup at kapsi and .htaccess. Should I try the reverse proxy commands from github link here: https://ukk.kapsi.fi/questions/768/djangon-asennusohjeet

[2019-02-10 Sun]: This may have been Nextcloud issue all along, as going from 16.0.5 to 17.0.0 fixed the issue. In detail:

  1. Enabled beta channel in Nextcloud Settings.
  2. Executed $ php updated.phar
  3. Installer failed after ~2 hours again on error message:
client_loop: send disconnect: Connection reset by peer
  1. Deleted .step file and reran $ php updated.phar
  2. Script finished, upgrade finished.
  3. Did post-installation tasks.

DONE Found on [2019-12-20 Fri] after upgrade from 17.0.1 to 17.0.2

Some columns in the database are missing a conversion to big int. Due to the
fact that changing column types on big tables could take some time they were
not changed automatically. By running 'occ db:convert-filecache-bigint' those
pending changes could be applied manually. This operation needs to be made
while the instance is offline. For further details read the documentation
page about this.

mounts.storage_id
mounts.root_id
mounts.mount_id

As per documentation on BigInt (64bit) identifiers we in ../nextcloud do the following:

  1. Put maintenance mode on with $ php occ maintenance:mode --on
  2. Run $ php occ db:convert-filecache-bigint
  3. Once finished, put maintenance mode back off with $ php occ maintenance:mode --off

DONE Found on [2020-08-26 Wed] after upgrade from 18.0.7 to 18.0.7

Local desktop client’s Nextcloud directory structure disappeared. Same was observed in Nextcloud mobile client on iOS.

Following three errors in server’s frontend logs at Settings, Logging were observed:

Error: Class 'OCA\GroupFolders\BackgroundJob\ExpireGroupVersions' not found
OCP\AppFramework\QueryException: Could not resolve appFolder! Class appFolder does not exist
OCP\AppFramework\QueryException: Could not resolve OCA\GroupFolders\ACL\RuleManager! Class OCA\GroupFolders\ACL\UserMapping\IUserMappingManager does not exist

Checked next the installed addons:

$ php occ app:list

Enabled:
  - accessibility: 1.4.0
  - activity: 2.11.0
  - apporder: 0.10.0
  - bookmarks: 3.3.4
  - bruteforcesettings: 1.6.0
  - cloud_federation_api: 1.1.0
  - comments: 1.8.0
  - contacts: 3.3.0
  - dav: 1.14.0
  - federatedfilesharing: 1.8.0
  - federation: 1.8.0
  - files: 1.13.1
  - files_pdfviewer: 1.7.0
  - files_rightclick: 0.15.2
  - files_sharing: 1.10.1
  - files_trashbin: 1.8.0
  - files_versions: 1.11.0
  - files_videoplayer: 1.7.0
  - firstrunwizard: 2.7.0
  - logreader: 2.3.0
  - lookup_server_connector: 1.6.0
  - maps: 0.1.6
  - metadata: 0.12.0
  - news: 14.1.11
  - nextcloud_announcements: 1.7.0
  - notifications: 2.6.0
  - oauth2: 1.6.0
  - password_policy: 1.8.0
  - phonetrack: 0.6.4
  - photos: 1.0.0
  - privacy: 1.2.0
  - provisioning_api: 1.8.0
  - serverinfo: 1.8.0
  - settings: 1.0.0
  - sharebymail: 1.8.0
  - sharingpath: 0.2.5
  - side_menu: 1.8.5
  - support: 1.1.1
  - survey_client: 1.6.0
  - systemtags: 1.8.0
  - text: 2.0.0
  - theming: 1.9.0
  - twofactor_backupcodes: 1.7.0
  - twofactor_totp: 4.1.3
  - unsplash: 1.1.6
  - updatenotification: 1.8.0
  - viewer: 1.2.0
  - workflowengine: 2.0.0
Disabled:
  - admin_audit
  - camerarawpreviews
  - encryption
  - extract
  - files_external
  - groupfolders
  - recommendations
  - user_ldap

For some reason, groupfolders addon was disabled.

By re-enabling the addon, then rebuilding on local desktop client the directory structure, the files were restored. Synchronization functionality on mobile client was restored automatically.

[2021-01-10 Sun]: This has been happening more regularly now. Similar to issue 1152.

[2024-12-14 Sat]: Not witnessed anymore to happen, must have been a Nextcloud internal bug. Setting this to Done.


DONE Found on [2020-08-27 Thu] after upgrade from 18.0.8 to 19.0.2

Following error observed at Settings, Overview:

The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running "occ db:add-missing-columns" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.

Fixed by running in ../nextcloud/:

$ php occ db:add-missing-columns


FOLLOWUP Found on [2020-09-05 Sat] after upgrade from 19.0.1 to 19.0.2

Enabled app Preview Generator and ran:

$ php occ preview:generate-all -vvv as recommended and documented in app’s README.md.

This operation lasted for 24h and resulted in 90GB of files at ../nextcloud/data/appdata_ocg80o430zwr/preview/.

After this logs started to show errors as:

Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) at /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php#158

Above error can be triggered when I try to delete a photo.

There is potential fix at #22008 but will be merged in at earlies in Nextcloud 20 milestone (but backported to earlier release then).

Follow up #22008 at server changelogs and observe if the errors are mitigated after update. If not, then run again:

$ php occ files:scan --all to rectify if preview:generate-all initially did corrupt my database.

Then rerun Preview Generator, but this time not for every preview, but with “Recommended configuration” as instructed here.


DONE Found on [2020-10-02 Fri] after upgrade from 19.0.2 to 19.0.3

When accessing the login page, I get an error:

=We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds.

I also see that both iOS apps News and Nextcloud sync client do not finish their syncs.

The error is caused by multiple requests coming from my IP, triggering Brute-force settings to throttle the login attempts.

Solution: Go to /settings/admin/security/ and define under Brute-force IP whitelist your IP.

After this error is no longer displayed on login page, and sync clients work.


DONE Found on [2020-10-02 Fri] after upgrade from 19.0.2 to 19.0.3

To resolve News module’s error code: Non UTF-8 charset for MySQL/MariaDB database detected!

See Enabling MySQL 4-byte support how to resolve.

Following requires at least MariaDB 10.3, however, according to phpmyadmin, I’m only at Server version: 10.0.37-MariaDB-0+deb8u1 - (Debian)

Do below again with fresh install when kapsi upgrades Debian to Buster. MariaDB 10.3. should then be available.

Seems to be available now as doing:

$ mysql -V

mysql Ver 15.1 Distrib 10.3.18-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

However, phpMyAdmin still shows v. 10.0.38 as well as by doing $ mysql -u pyyhttu -p pyyhttu

Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 81186655
Server version: 10.0.38-MariaDB-0+deb8u1 (Debian)

[2021-01-17 Sun]: Now both $ myswl -V and $ mysql -u pyyhttu -p pyyhttu show version 10.3.27.

Following implementation from here: https://github.com/nextcloud/nextcloud-snap/issues/369#issuecomment-337257286

[2024-09-30 Mon]: Noticed with 29.0.7 that both character set of db was utf8mb4 and collate was utf8mb4_general_ci by executing SELECT * FROM INFORMATION_SCHEMA.SCHEMATA; so this has been resolved.


DONE Found on [2020-11-04 Wed] after upgrade from 19.0.2 to 19.0.3

When trying to update the apps from webui, I get an error: An error occured during the request. Unable to proceed.

Upgraded via command line instead, as recommended by issue 168.


DONE Found on [2020-12-06 Sun] after upgrade from 19.0.5 to 20.0.2

Upgrade failed on upgrading the news addon:

2020-12-06T18:50:23+00:00 Update app news from appstore
An unhandled exception has been thrown:
Error: Undefined class constant 'DEFAULT_SETTINGS' in /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/apps/news/lib/Migration/MigrateConfig.php:49
Stack trace:
#0 [internal function]: OCA\News\Migration\MigrateConfig->__construct(Object(OCA\News\Config\LegacyConfig), Object(OC\AllConfig), Object(OCA\News\AppInfo\Application))
#1 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(101): ReflectionClass->newInstanceArgs(Array)
#2 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(109): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#3 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(126): OC\AppFramework\Utility\SimpleContainer->resolve('OCA\\News\\Migrat...')
#4 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/AppFramework/DependencyInjection/DIContainer.php(455): OC\AppFramework\Utility\SimpleContainer->query('OCA\\News\\Migrat...')
#5 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/ServerContainer.php(140): OC\AppFramework\DependencyInjection\DIContainer->queryNoFallback('OCA\\News\\Migrat...')
#6 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Repair.php(119): OC\ServerContainer->query('OCA\\News\\Migrat...')
#7 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_App.php(1035): OC\Repair->addStep('OCA\\News\\Migrat...')
#8 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_App.php(979): OC_App::executeRepairSteps('news', Array)
#9 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Installer.php(206): OC_App::updateApp('news')
#10 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Updater.php(452): OC\Installer->updateAppstoreApp('news')
#11 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Updater.php(260): OC\Updater->upgradeAppStoreApps(Array)
#12 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Updater.php(130): OC\Updater->doUpgrade('20.0.2.2', '19.0.5.2')
#13 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/core/Command/Upgrade.php(255): OC\Updater->upgrade()
#14 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/symfony/console/Command/Command.php(255): OC\Core\Command\Upgrade->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/symfony/console/Application.php(1000): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/symfony/console/Application.php(271): Symfony\Component\Console\Application->doRunCommand(Object(OC\Core\Command\Upgrade), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/3rdparty/symfony/console/Application.php(147): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#18 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Console/Application.php(215): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#19 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/console.php(100): OC\Console\Application->run()
#20 /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/occ(11): require_once('/siilo/6/pyyhtt...')
#21 {main}
Keep maintenance mode active? [y/N] N
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
Maintenance mode disabled

This was then fixed by continuing upgrade manually:

$ php occ upgrade

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
Setting log level to debug
Turned on maintenance mode
Updating database schema
Updated database
Updating <news> ...
Updated <news> to 15.0.6
Checking for update of app accessibility in appstore
Checked for update of app "accessibility" in appstore
Checking for update of app activity in appstore
Checked for update of app "activity" in appstore
Checking for update of app admin_audit in appstore
Checked for update of app "admin_audit" in appstore
Checking for update of app apporder in appstore
Checked for update of app "apporder" in appstore
Checking for update of app bookmarks in appstore
Checked for update of app "bookmarks" in appstore
Checking for update of app bruteforcesettings in appstore
Checked for update of app "bruteforcesettings" in appstore
Checking for update of app cloud_federation_api in appstore
Checked for update of app "cloud_federation_api" in appstore
Checking for update of app comments in appstore
Checked for update of app "comments" in appstore
Checking for update of app contacts in appstore
Checked for update of app "contacts" in appstore
Checking for update of app contactsinteraction in appstore
Checked for update of app "contactsinteraction" in appstore
Checking for update of app dav in appstore
Checked for update of app "dav" in appstore
Checking for update of app federatedfilesharing in appstore
Checked for update of app "federatedfilesharing" in appstore
Checking for update of app federation in appstore
Checked for update of app "federation" in appstore
Checking for update of app files in appstore
Checked for update of app "files" in appstore
Checking for update of app files_pdfviewer in appstore
Checked for update of app "files_pdfviewer" in appstore
Checking for update of app files_rightclick in appstore
Checked for update of app "files_rightclick" in appstore
Checking for update of app files_sharing in appstore
Checked for update of app "files_sharing" in appstore
Checking for update of app files_trashbin in appstore
Checked for update of app "files_trashbin" in appstore
Checking for update of app files_versions in appstore
Checked for update of app "files_versions" in appstore
Checking for update of app files_videoplayer in appstore
Checked for update of app "files_videoplayer" in appstore
Checking for update of app logreader in appstore
Checked for update of app "logreader" in appstore
Checking for update of app lookup_server_connector in appstore
Checked for update of app "lookup_server_connector" in appstore
Checking for update of app news in appstore
Checked for update of app "news" in appstore
Checking for update of app nextcloud_announcements in appstore
Checked for update of app "nextcloud_announcements" in appstore
Checking for update of app notifications in appstore
Checked for update of app "notifications" in appstore
Checking for update of app oauth2 in appstore
Checked for update of app "oauth2" in appstore
Checking for update of app password_policy in appstore
Checked for update of app "password_policy" in appstore
Checking for update of app photos in appstore
Checked for update of app "photos" in appstore
Checking for update of app privacy in appstore
Checked for update of app "privacy" in appstore
Checking for update of app provisioning_api in appstore
Checked for update of app "provisioning_api" in appstore
Checking for update of app serverinfo in appstore
Checked for update of app "serverinfo" in appstore
Checking for update of app settings in appstore
Checked for update of app "settings" in appstore
Checking for update of app sharebymail in appstore
Checked for update of app "sharebymail" in appstore
Checking for update of app support in appstore
Checked for update of app "support" in appstore
Checking for update of app systemtags in appstore
Checked for update of app "systemtags" in appstore
Checking for update of app text in appstore
Checked for update of app "text" in appstore
Checking for update of app theming in appstore
Checked for update of app "theming" in appstore
Checking for update of app twofactor_backupcodes in appstore
Checked for update of app "twofactor_backupcodes" in appstore
Checking for update of app twofactor_totp in appstore
Checked for update of app "twofactor_totp" in appstore
Checking for update of app unsplash in appstore
Checked for update of app "unsplash" in appstore
Checking for update of app updatenotification in appstore
Checked for update of app "updatenotification" in appstore
Checking for update of app viewer in appstore
Checked for update of app "viewer" in appstore
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
Turned off maintenance mode
Resetting log level

However, after the upgrade news addon is still generating errors in logs, namely this PHP error:

Error: mkdir(): Permission denied at /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/apps/news/lib/AppInfo/Application.php#104

Opening the issue at News app Github suggested to use 'tempdirectory' to override the default /tmp where Nextcloud stores temporary files.

So edited ../nextcloud/config/config.php and appended:

'tempdirectory' => '/siilo/6/pyyhttu/sites/tmp'

After above config change, the error was no longer visible.


DONE Found on [2020-12-25 Fri] after upgdade from 20.0.3 to 20.0.4

Noticed in the morning that iOS News client had stopped updating and further investigating showed that whole instance was offline. After navigating to login page there was an error:

It looks like you are trying to reinstall your
Nextcloud. However the file CAN_INSTALL is missing from your config
directory. Please create the file CAN_INSTALL in your config folder to
continue.

However, no updates were set to run in past 24h. In fact, latest update was completed on [2020-12-17 Thu] without issues.

Doing at /nextcloud/ $ touch CAN_INSTALL results in login page to update the message, this time offering a new installation, which is unwanted.

Noticed that /nextcloud/config/config.php had been getting modified on [2020-12-26 Sat], and the contents of it resembled nothing of a like normal config.php:

<?php
$CONFIG = array (
  'instanceid' => 'my-instance-id',
);

I had my last update backups at /nextcloud/data/updater-ocg80o430zwr/backups/nextcloud-20.0.3.2-1608203646/

So returning the backup by doing:

$ cp ../nextcloud/data/updater-ocg80o430zwr/backups/nextcloud-20.0.3.2-1608203646/config/config.php ../nextcloud/config/config.php

And then force reloading with Ctrl-F5 in browser the login page triggers the update from 20.0.3 to 20.0.4 after which I can run the update:

$ cd ../nextcloud/updater/

$ php updater.phar

And upgrade passed.

[2021-01-06 Wed] This happened again at 03:11 AM and [2021-01-08 Fri] at 08:13. This time decided to look at the nextcloud.log. There’s a mention of “stale file handle”:

{"reqId":"6yDSxPtiyjMXGbR1ocbP","level":0,"time":"2021-01-06T01:11:03+00:00","remoteAddr":"91.154.145.230","user":"Tuomas","app":"files_sharing","method":"PROPFIND","url":"/nextcloud/index.php/apps/files/","message":"/appinfo/app.php is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":"20.0.4.0"}
{"reqId":"6yDSxPtiyjMXGbR1ocbP","level":0,"time":"2021-01-06T01:11:03+00:00","remoteAddr":"91.154.145.230","user":"Tuomas","app":"twofactor_totp","method":"PROPFIND","url":"/nextcloud/index.php/apps/files/","message":"/appinfo/app.php is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":"20.0.4.0"}
{"reqId":"6yDSxPtiyjMXGbR1ocbP","level":0,"time":"2021-01-06T01:11:03+00:00","remoteAddr":"91.154.145.230","user":"Tuomas","app":"unsplash","method":"PROPFIND","url":"/nextcloud/index.php/apps/files/","message":"/appinfo/app.php is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":"20.0.4.0"}
{"reqId":"qV4yIynPEe1s7oufG5PS","level":2,"time":"2021-01-06T01:11:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"qV4yIynPEe1s7oufG5PS","level":2,"time":"2021-01-06T01:11:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"NyHajtXXg9kcHFdla8zA","level":2,"time":"2021-01-06T01:12:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"NyHajtXXg9kcHFdla8zA","level":2,"time":"2021-01-06T01:12:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"nYzN09Zfth4E5wmXE23K","level":2,"time":"2021-01-06T01:12:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"nYzN09Zfth4E5wmXE23K","level":2,"time":"2021-01-06T01:12:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"JZfsM4k17exqpdfecdRn","level":2,"time":"2021-01-06T01:13:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"JZfsM4k17exqpdfecdRn","level":2,"time":"2021-01-06T01:13:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"1bnAvm28rsVZkhMMHYX2","level":2,"time":"2021-01-06T01:13:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"1bnAvm28rsVZkhMMHYX2","level":2,"time":"2021-01-06T01:13:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"3DKFhRiM7MkulJ7nXY1C","level":2,"time":"2021-01-06T01:13:48+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"GET","url":"/nextcloud/index.php/csrftoken","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0","version":""}
{"reqId":"3DKFhRiM7MkulJ7nXY1C","level":2,"time":"2021-01-06T01:13:48+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"GET","url":"/nextcloud/index.php/csrftoken","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0","version":""}
{"reqId":"u3itDNmIzWHY4mt2HiDm","level":2,"time":"2021-01-06T01:14:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"u3itDNmIzWHY4mt2HiDm","level":2,"time":"2021-01-06T01:14:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"HkZtZuRY0Uf9pop9ofAx","level":2,"time":"2021-01-06T01:14:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"HkZtZuRY0Uf9pop9ofAx","level":2,"time":"2021-01-06T01:14:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"nNa4XrfMDfeikuQVGrkM","level":2,"time":"2021-01-06T01:15:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"nNa4XrfMDfeikuQVGrkM","level":2,"time":"2021-01-06T01:15:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"nXNRwwQd1fIXmpvmKZXu","level":3,"time":"2021-01-06T01:15:08+00:00","remoteAddr":"","user":"--","app":"cron","method":"","url":"--","message":{"Exception":"Exception","Message":"Not installed","Code":0,"Trace":[{"file":"/siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/base.php","line":653,"function":"checkInstalled","class":"OC","type":"::","args":[]},{"file":"/siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/base.php","line":1091,"function":"init","class":"OC","type":"::","args":[]},{"file":"/siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/cron.php","line":42,"args":["/siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/base.php"],"function":"require_once"}],"File":"/siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/base.php","Line":283,"CustomMessage":"--"},"userAgent":"--","version":""}
{"reqId":"YQlJFieaI6HsB2ZQCUB2","level":2,"time":"2021-01-06T01:16:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"YQlJFieaI6HsB2ZQCUB2","level":2,"time":"2021-01-06T01:16:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"SQm4Tbe9rqRyXdywbW8P","level":2,"time":"2021-01-06T01:16:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"SQm4Tbe9rqRyXdywbW8P","level":2,"time":"2021-01-06T01:16:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"SQm4Tbe9rqRyXdywbW8P","level":3,"time":"2021-01-06T01:16:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"PHP","method":"PROPFIND","url":"/nextcloud/index.php","message":{"Exception":"Error","Message":"scandir(/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/core/l10n/): failed to open dir: Stale file handle at /var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/L10N/Factory.php#295","Code":0,"Trace":[{"function":"onError","class":"OC\\Log\\ErrorHandler","type":"::"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/L10N/Factory.php","line":295,"function":"scandir"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/L10N/Factory.php","line":410,"function":"findAvailableLanguages","class":"OC\\L10N\\Factory","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/L10N/Factory.php","line":197,"function":"getLanguageFromRequest","class":"OC\\L10N\\Factory","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_Util.php","line":632,"function":"findLanguage","class":"OC\\L10N\\Factory","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_Template.php","line":115,"function":"addTranslations","class":"OC_Util","type":"::"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_Template.php","line":78,"function":"initTemplateEngine","class":"OC_Template","type":"::"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_Template.php","line":269,"function":"__construct","class":"OC_Template","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/core/Controller/SetupController.php","line":91,"function":"printGuestPage","class":"OC_Template","type":"::"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/core/Controller/SetupController.php","line":69,"function":"displaySetupForbidden","class":"OC\\Core\\Controller\\SetupController","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/base.php","line":946,"function":"run","class":"OC\\Core\\Controller\\SetupController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Log/ErrorHandler.php","Line":91,"CustomMessage":"--"},"userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"SQm4Tbe9rqRyXdywbW8P","level":3,"time":"2021-01-06T01:16:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"PHP","method":"PROPFIND","url":"/nextcloud/index.php","message":{"Exception":"Error","Message":"scandir(): (errno 116): Stale file handle at /var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/L10N/Factory.php#295","Code":0,"Trace":[{"function":"onError","class":"OC\\Log\\ErrorHandler","type":"::"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/L10N/Factory.php","line":295,"function":"scandir"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/L10N/Factory.php","line":410,"function":"findAvailableLanguages","class":"OC\\L10N\\Factory","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/L10N/Factory.php","line":197,"function":"getLanguageFromRequest","class":"OC\\L10N\\Factory","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_Util.php","line":632,"function":"findLanguage","class":"OC\\L10N\\Factory","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_Template.php","line":115,"function":"addTranslations","class":"OC_Util","type":"::"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_Template.php","line":78,"function":"initTemplateEngine","class":"OC_Template","type":"::"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/legacy/OC_Template.php","line":269,"function":"__construct","class":"OC_Template","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/core/Controller/SetupController.php","line":91,"function":"printGuestPage","class":"OC_Template","type":"::"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/core/Controller/SetupController.php","line":69,"function":"displaySetupForbidden","class":"OC\\Core\\Controller\\SetupController","type":"->"},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/base.php","line":946,"function":"run","class":"OC\\Core\\Controller\\SetupController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/private/Log/ErrorHandler.php","Line":91,"CustomMessage":"--"},"userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"XRLR9fqcjAwqxcctOSr4","level":2,"time":"2021-01-06T01:16:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"GET","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"XRLR9fqcjAwqxcctOSr4","level":2,"time":"2021-01-06T01:16:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"GET","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"6GHzz6ryUknPeOtXtmiX","level":2,"time":"2021-01-06T01:17:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"6GHzz6ryUknPeOtXtmiX","level":2,"time":"2021-01-06T01:17:02+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in http:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}
{"reqId":"fys9tImFq1apHOUvsrS2","level":2,"time":"2021-01-06T01:17:32+00:00","remoteAddr":"91.154.145.230","user":"--","app":"no app in context","method":"PROPFIND","url":"/nextcloud/index.php","message":"Could not detect any host in https:///nextcloud/data/htaccesstest.txt","userAgent":"Mozilla/5.0 (Windows) mirall/3.1.1stable-Win64 (build 20201222) (Nextcloud)","version":""}

Kapsi operates its filesystem with NFS, and they’ve had during 2021 stability problems with them which they attempt to fix by kernel update.

[2024-12-14 Sat]: Haven’t witnessed stale file handle errors anymore. Setting this to Done.


DONE Found on [2020-12-25 Fri] after upgdade from 20.0.3 to 20.0.4

Running $ php updater.phar gave:

Start update? [y/N] y

Info: Pressing Ctrl-C will finish the currently running step and then stops the updater.

[✔] Check for expected files
[✔] Check for write permissions
[ ] Create backup ...PHP Warning:  copy(/siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/data/updater-ocg80o430zwr/backups/nextcloud-22.2.1.2-1639213625/lib/public/Search/SearchResult.php): failed to open stream: Disk quota exceeded in phar:///siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/updater/updater.phar/lib/Updater.php on line 395
[✘] Create backup failed
Could not copy "/siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/lib/public/Search/SearchResult.php" to "/siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/data/updater-ocg80o430zwr/backups/nextcloud-22.2.1.2-1639213625/lib/public/Search/SearchResult.php". Destination /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/data/updater-ocg80o430zwr/backups/nextcloud-22.2.1.2-1639213625/lib/public/Search/SearchResult.php is not writable

Update failed. To resume or retry just execute the updater again.

Reason was the disk space for which I had exceeded the given quota. This can be checked with $ quota -s. More disk space can be requested from Kapsi admins.


DONE Found on [2022-02-17 Thu] after upgrade from 23.0.0 to 23.0.2

Warning in Settings - Overview:

The PHP OPcache module is not properly configured:

    The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply opcache.interned_strings_buffer to your PHP configuration with a value higher than 8.

Googling this out, gives plenty of results:

The OPcache interned strings buffer is nearly full #31223

adjust opcache settings #192

PHP OPcache module is not properly configured: OPcache interned strings buffer is nearly full #1692

Also troubleshooted this and contributed with a question.

Update [2023-01-24 Tue]: This was resolved after and upgrade to version 25.0.1.


DONE Found on [2022-02-17 Thu] after upgrade from 23.0.0 to 23.0.2

Entry will not be accessible due to incompatible encoding

$ php occ files:scan --all
Starting scan for user 1 out of 4 (Alvaro)
Starting scan for user 2 out of 4 (Heidi)
Starting scan for user 3 out of 4 (pyyhttu)
Starting scan for user 4 out of 4 (Tuomas)
        Entry "files/Photos/1997/06/Video_1997-06-15_Tuomas\ Rippi\ ja\ yo.mp4" will not be accessible due to incompatible encoding
+---------+--------+--------------+
| Folders | Files  | Elapsed time |
+---------+--------+--------------+
| 8881    | 138082 | 00:14:57     |
+---------+--------+--------------+

[2024-12-23 Mon]: Resolved by itself as this gives no longer an error:

$ php8.2 occ files:scan --path="/Tuomas/files/Photos/1997/06"
Starting scan for user 1 out of 1 (Tuomas)
+---------+-------+-----+---------+---------+--------+--------------+
| Folders | Files | New | Updated | Removed | Errors | Elapsed time |
+---------+-------+-----+---------+---------+--------+--------------+
| 1       | 1     | 0   | 0       | 0       | 0      | 00:00:00     |
+---------+-------+-----+---------+---------+--------+--------------+

DONE Found on [2024-02-17 Sat] after upgrade from 28.0.1 to 28.0.2

Warning in Settings - Overview:

Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks.

Warning documented here and here.

So warning resolved by adding 'maintenance_window_start' => 23, (maintenance then starts daily 23 UTC = 01 EET onward in some random 4h window).


DONE Found on [2024-02-17 Sat] after upgrade from 28.0.1 to 28.0.2

Warning in Settings - Overview:

This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: bz2.

Turns out this module is not needed after all, so it will be removed in the next point release.


DONE Found on [2024-02-17 Sat] after upgrade from 28.0.1 to 28.0.2

Error in Settings - Logging:

Could not load log entries

Verified by disabling ublock origin. Some of the blocklists caused the logging window entries to be falsely blocked, so resolved by adding to ublock’s Trusted sites my Nextcloud domain as whitelisted.


DONE Found on [2024-02-17 Sat] after upgrade from 28.0.1 to 28.0.2

Noticed in Settings - Personal info: The time under Locale field is s off by 2 hours. Also the logs are off by 2 hours with local time display option set.

This is caused by Nextcloud relying on browser telling the time, and gets this through fingerprinting. However, I don’t want to turn in about:config the privacy.resistFingerprinting to false, so I add my Nextcloud domain to privacy.resistFingerprinting.exemptedDomains instead, which gets the job done too.


DONE Found on [2024-05-25 Sat] after upgrade from 29.0.4 to 29.0.5

One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations

Seems to be bug a that will be fixed.

[2024-09-30 Mon]: Fixed in 29.0.7


DONE Found on [2024-09-24 Tue] after upgrade from 29.0.4 to 29.0.5

After doing an app update:

$ php occ app:update --all
memories new version available: 7.4.1
memories updated
cfg_share_links new version available: 6.1.0
Error: App "Configurable Share Links" cannot be installed because the following dependencies are not fulfilled: PHP 8.1 or higher is required.
cfg_share_links couldn't be updated
unsplash new version available: 3.0.1
unsplash updated
groupfolders new version available: 17.0.3
groupfolders updated

After this refreshing the Nextcloud app page I had open, caused error:

App update required
The following apps will be updated:

Configurable Share Links (cfg_share_links)

Please make sure that the database, the config folder and the data folder have been backed up before proceeding.
To avoid timeouts with larger installations, you can instead run the following command from your installation directory:

./occ upgrade

Root of the the problem is that I have old php version 8.0 still in use by Nextcloud, so I should look into have my Nextcloud upgraded with the latest supported php-version, at the time of writing php8.2: https://www.kapsi.fi/tiedotteet/#492

[2024-11-18 Mon]: If I do $ php -v I get deprecated php version:

$ php -v
PHP 8.0.30 (cli) (built: Sep 27 2024 04:04:55) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies

However, Nextcloud sees in /settings/admin/serverinfo-view that I have supported version 8.2.23 installed, and used. This is further confirmed by phpmyinfo which I can enable to access at same view by doing:

$ occ config:app:set --value=yes serverinfo phpinfo

Assuming Nextcloud chooses whatever supported php from /usr/bin/ and uses that. So, I’ll just upgrade with latest supported php (/usr/bin/php8.2 at the time of writing) and follow this up.

[2024-12-14 Sat]: I’ve now upgraded several dot-releases and one major version with php8.2 and so far no problems. Setting this as Done.


DONE Found on [2023-12-24 Sun] after upgrade from 29.0.5 to 29.0.7

Start update? [y/N] y

Info: Pressing Ctrl-C will finish the currently running step and then stops the updater.

[✔] Check for expected files
[✔] Check for write permissions
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[✔] Extracting
[✔] Enable maintenance mode
[✔] 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
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
Setting log level to debug
Repair step: Repair MySQL collation
Repair info: All tables already have the correct collation -> nothing to do
Repair step: Copy data from accounts table when migrating from ownCloud
Repair step: Drop account terms table when migrating from ownCloud
Updating database schema
Exception: Database error when running migration 30000Date20240814180800 for app core
An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1709 Index column size too large. The maximum column size is 767 bytes
Update failed
Maintenance mode is kept active
Resetting log level

Keep maintenance mode active? [y/N]

Solution was that I needed to append to ../config/config.php configuration value 'mysql.utf8mb4' => true.

After this $ php occ updater.phar finished successfully.


DONE Found on [2024-09-29 Sun] after upgrade from 29.0.5 to 29.0.7

Your webserver is not set up to serve `.js.map` files. Without these files, JavaScript Source Maps won't function properly, making it more challenging to troubleshoot and debug any issues that may arise. [2024-11-17 Sun]: Error is gone with version 29.0.9.


DONE Found on [2024-09-29 Sun] after upgrade from 29.0.5 to 29.0.7

Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type. To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`. [2024-11-17 Sun]: Error is gone with version 29.0.9.


DONE Found on [2024-09-29 Sun] after upgrade from 29.0.5 to 29.0.7

Could not check that your web server serves security headers correctly, unable to query `/nextcloud/index.php/heartbeat` For more details see the [[https://docs.nextcloud.com/server/29/go.php?to=admin-security][documentation]] ↗. This error seems to be because of bug in .well-known-patch. And it is triggered for me because my nextcloud installation is in subfolder. Following up. The error should go away in some future dot-release. [2024-11-17 Sun]: Error is gone with version 29.0.9.


DONE Found on [2024-09-29 Sun] after upgrade from 29.0.5 to 29.0.7

Could not check for WOFF2 loading support. Please check manually if your webserver serves `.woff2` files. To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`. For more details see the [[https://docs.nextcloud.com/server/29/go.php?to=admin-nginx][documentation]].
[2024-11-06 Wed]: Error is gone with version 29.0.8.


Observations and future direction

NEXT Move nextcloud installation to https://pyyhttu-siilo.kapsi.fi/

As this is a major change, do this after the offsite backups have been setup and taken with borg.

NEXT Custom domain

If I ever want to run nextcloud from custom domain, then see this.

NEXT Layout customization

Google gallery.cnf what is possible in terms of presentation and sorting.

DONE Large file uploads

Enable large file uploads, see manual. Also see this Reddit thread for pointers.

[2024-12-23 Mon]: Enabled by appending /nextcloud/.user.ini:

post_maxsize = 10000M
upload_maxfilesize = 10000M

Followup if errors (Expected filesize of...) still in logs related to this. If yes, revisit the manual and apply fixes.

DONE Investigate on enabling encryption

Check this blog for background. Ensure that data is backed up and then after enabling encryption, test nextcloud phone app that it works while encryption is enabled. Note: Encryption as of 14.0.3 is very Alpha quality. Retain from implementing until it is more mature. Edit [2020-08-24 Mon]: Much more mature now but still beta quality. Encryption key on server are located in ../data directory, that’s why server side encryption for local data is pointless. The encryption Nextcloud comes now with,is more for remote storage:

If your Nextcloud server is not connected to any remote storage services, then it is better to use some other form of encryption such as file-level or whole disk encryption. Because the keys are kept on your Nextcloud server, it is possible for your Nextcloud admin to snoop in your files, and if the server is compromised the intruder may get access to your files.

Source: Nextcloud’s encryption documentation

Different encryption methods explained. End to end encryption is a no-go due to the documented feature loss. A better choice is full disk encryption on home hosted server. Reconsider this when upgrading home NAS.

NEXT Research Cryptomator compatibility with NextCloud

Investigate especially if there’s any feature loss if iOS app is combined with iOS Nextcloud app. Google also cryptomator + nextcloud to see if there are problems with Nextcloud synchronization.

DONE Nextcloud iOS client settings

settings.png

advanced.png

auto-upload1.png

auto-upload2.png

NEXT Beorg iOS app settings

For beorg to sync over WebDAV to kapsi host, configure beorg settings like so:

Sync method: WebDAV
Folder: /Documents/Orgzly
WebDAV URL: https://YOURSITE-siilo.kapsi.fi/nextcloud/remote.php/dav/files/USERNAME
Username: USERNAME
Password: PASSWORD OR app password (which is more secure and performant

If you need to troubleshoot beorg sync issues over WebDAV to Kapsi, enable logging in beorg with (log-contents).

Write/screenshot documentation on ios client settings

Also document how to disable blank readme.md creation.

DONE Beorg init.org config

Create this file in beorg, as per instructions here.

* UI

#+BEGIN_SRC scheme
(set! ui-start-tab "files"
      "Start tab.")
(defvar ui-swap-item-swipe-direction #f
      "Whether the swipe direction on items in the agenda or TODO tab should be
swapped. If #t then swiping left-to-right will show state change options rather
than editing the item in the outliner.")
(set! show-notes-tab #f
      "Disable notes tab presented in v. 3.17 if having subdirectories enabled.")
(set! filter-include-default #t
      "Whether or not the built-in TODO filters should be shown")
(set! org-priorities '("A" "B" "C")
      "Priorities")
(filter-add "ÔØù´©ÅTop Priority TODO"
            (lambda (item)
              (and
               (string=? (item-priority item) "A")
               (string=? (item-state item) "NEXT")
               (not (member "ARCHIVE" (item-tags item)))
               )))
#+END_SRC

* Subdirectories, todo-states, disable delete

#+BEGIN_SRC scheme
(set! sync-subfolders #t
      "Subfolders support as per https://appsonthemove.freshdesk.com/support/discussions/topics/14000016681")
(set! org-todo-action-keywords '("NEXT" "FOLLOWUP")
      "Todo states.")
(set! org-todo-done-keywords '("DONE")
      "Done states.")
(set! file-disable-delete #f
      "If set to #t then the option to delete files won't be available in beorg.")
#+END_SRC

* Item Editor Quick Actions

#+BEGIN_SRC scheme
(define (my/schedule-for-today)
  (set-current-item-scheduled! (current-date)))

(define (my/schedule-todo-for-today)
  (begin (set-current-item-scheduled! (current-date))
         (set-current-item-state! "NEXT")))

(define (add-location-to-current-item)
  (location-get-lat-lon (lambda (lat lon)
                          (set-current-item-property! "location"
                                                      (string-append lat "," lon)))))

(define (make-current-item-top-priority-today)
  (begin (set-current-item-scheduled! (current-date))
         (set-current-item-priority! "A")))

(define (schedule-current-item-for-tomorrow)
  (set-current-item-scheduled! (date-adjust (current-date) 1 'days)))

(define (my/schedule-todo-for-tomorrow)
  (begin (set-current-item-scheduled! (date-adjust (current-date) 1 'days))
         (set-current-item-state! "NEXT")))

(define (remove-all-dates-from-current-item)
  (begin (delete-current-item-scheduled!)
         (delete-current-item-deadline!)
         (delete-current-item-active-date!)))

(defvar item-editor-menu
  '(("Assign current location" (add-location-to-current-item))
    ("Make top priority today" (make-current-item-top-priority-today))
    ("Schedule TODO for today" (my/schedule-todo-for-today))
    ("Schedule for today" (my/schedule-for-today))
    ("Schedule TODO for tomorrow" (my/schedule-todo-for-tomorrow))
    ("Schedule for tomorrow" (schedule-current-item-for-tomorrow))
    ("Remove all dates" (remove-all-dates-from-current-item)))
  "The items defined here can be run directly from the item editor screen to make quick adjustments.")
#+END_SRC

* Editor Toolbar Items
#+BEGIN_SRC scheme
(set! beorg-add-newline-between-headlines #t
      "https://appsonthemove.freshdesk.com/support/discussions/topics/14000015618")
(defvar editor-toolbar-items '(
                               ("icon-time" (insert (date->string (current-date) "<~Y-~m-~d ~a ~H:~M>")))
                               ("icon-list" (insert "+ "))
                               ("icon-todolist" (insert "+ [ ] "))
                               ("icon-change" (show-transform-commands))
                               ("icon-tools" (show-tools-commands))
                               ("icon-settings" (insert-code-snippet)))
      "A list of buttons to show above the keyboard when editing notes. The
      list is a list of lists stating the button text and the code to run.
      For example '(("icon-left" (backward-char)) ("icon-right" (forward-char))) defines a toolbar with the buttons < and > which respectively execute the functions backward-char and forward-char.")
#+END_SRC

DONE Beorg with Working Copy Git client

Notes can be version controlled in iOS with Working Copy Git client. It is a bit pricey but you can setup a synchronized directory against your Github repository. Here are the settings to use it with.

NEXT Address certain apps (group folders) crashes

If needed, reinstall whole nextcloud

NEXT Monit to Kapsi

Inbox: “Re: [TN#660857] Lakka asennuspyyntö: […]”, April 25th 2021 To bounce crashed apps based on nextcloud.log.

NEXT Google Photoprims or Librephotos, to be installed along Nextcloud in shared hosting

Seems to be possible, at least with Photoprism, but they have paid subscription model in mind. Would make it possible to have syncing of nextcloud and managing/tagging in photoprism? It seems that Photoprism can be pointed to my Nextcloud photos directory.

NEXT Check that previews are enabled in config.php

NEXT Enable HEIC support

See this.

Footnotes:

1

Do not copy and replace the files from backups as this will mess with nextcloud’s versioning. Rather, compare the backups to upgrade ones with diff and manually replace the changes.

2

Warnings are OK. In case of errors during upgrade, check the two logs from nextcloud/data: nextcloud.log and updater.log.

Tuomas Pyyhtiä / CC BY-SA NVim 0.9.5 (nvim-orgmode 0.3.4)