#+TITLE: Nextcloud installation to shared hosting (kapsi.fi) #+SUBTITLE: With Borg backups #+DATE: <2017-06-04 Tue> #+AUTHOR: Tuomas Pyyhtiä #+EMAIL: pyyhttu+nextcloud@pm.me #+DESCRIPTION: How Nextcloud was installed to kapsi.fi hosting #+KEYWORDS: nextcloud kapsi.fi debian #+LANGUAGE: en # Don't show table of contents, export underscore as underscore (was: ^:nil)...rest of options as explained here: https://orgmode.org/manual/Export-Settings.html: #+OPTIONS: toc:nil ':t pri:t num:nil p:nil stat:t tags:t tasks:t tex:t timestamp:t #+BEGIN_COMMENT #+PROPERTY: header-args :eval never-export :exports both :results replace #+END_COMMENT # Include usable macros from https://github.com/fniessen/org-macros: #+INCLUDE: ../org-mode/macros/org-macros.setup #+BEGIN_COMMENT #+INFOJS_OPT: view:content ltoc:nil path:../org-mode/js/org-info.js # for more info see: https://orgmode.org/worg/code/org-info-js #+END_COMMENT #+HTML_HEAD: #+begin_comment #+HTML_LINK_HOME: https://pyyhttu.kapsi.fi #+HTML_LINK_UP: https://pyyhttu.kapsi.fi/debian/ #+end_comment * 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 [[https://www.kapsi.fi/palvelut/levytila.html][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. [[https://www.kapsi.fi/][Kapsi]], that has the needed infrastructure already setup and maintained (MariaDB, php, etc.). Install there to data storage called [[https://www.kapsi.fi/palvelut/levytila.html]["Siilo"]]. Request from Kapsi admins a data storage page, [[https://www.kapsi.fi/ohjeet/web2.html][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 [[https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html][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: #+BEGIN_SRC bash The “Strict-Transport-Security” HTTP header is not configured to at least “15552000” seconds. #+END_SRC To do away with that, modify =.htaccess=: ~$ nano ~/siilo/sites/yoursite.siilo.kapsi.fi/www/nextcloud/.htaccess~ Insert inside ==: #+BEGIN_SRC bash Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" #+END_SRC +Allow access from different ip-addresses if accessing Nexcloud with+ +multiple clients. Inside == insert:+ #+BEGIN_SRC bash RewriteCond %{ENV:HTTPS} !on RewriteRule (.*) https://yoursite-siilo.kapsi.fi/$1 [R=301,L] #+END_SRC *[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: #+BEGIN_SRC bash IndexIgnore * order allow,deny allow from all #+END_SRC ** Edit =.user.ini= Otherwise error is thrown in =Settings - Overview:= #+BEGIN_SRC bash The PHP memory limit is below the recommended value of 512MB #+END_SRC *[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 [[https://www.kapsi.fi/ohjeet/phpini.html][Kapsi's php.ini instructions]] by appending to =/nextcloud/.user.ini= the values: #+BEGIN_SRC bash post_max_size = 10000M upload_max_filesize = 10000M memory_limit = 512M #+END_SRC Same issue has been reported at [[https://github.com/nextcloud/server/issues/15609][Github's nextcloud project]]. *[2024-12-01 Sun]*: [[https://www.php.net/manual/en/ini.list.php][Contents]] of =/www/nextcloud/.user.ini=: #+begin_src bash 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 #+end_src At least =output_buffering=0= [[https://help.nextcloud.com/t/php-configuration-option-output-buffering-must-be-disabled-nextcloud-20-0-1-ubuntu/97918/2][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: #+BEGIN_SRC -n -r bash 'trashbin_retention_obligation' => '30, 60', (ref:trashbin) 'versions_retention_obligation' => '30, 180', (ref:versions) 'tempdirectory' => '/siilo/6/pyyhttu/sites/tmp', (ref:tempdirectory) 'simpleSignUpLink.shown' => false, (ref:signuplink) 'default_phone_region' => 'FI', (ref:phone) #+END_SRC Where, - [[(trashbin)][=trashbin_retention_obligation=]] controls when the deleted files are purged, - [[(versions)][=versions_retention_obligation=]] controls when the versioned files are purged. More information from [[https://www.reddit.com/r/NextCloud/comments/koqg7y/nextcloud_tech_tip_by_default_at_least_with_mine/][here]] and from [[https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html?highlight=trashbin_retention_obligation][official documentation]]. - [[(tempdirectory)][=tempdirectory=]] defines custom, writable location for Nextcloud's temp-files. - [[(signuplink)][=signuplink=]] hides "register free account" link on shared links. - [[(phone)][=default_phone_region=]] to [[https://help.nextcloud.com/t/unavoidable-security-setup-warnings-with-nc-21-update/108667][avoid warning]] "Your installation has no default phone region set". ** Migrate data Migrating existing data into Nextcloud can currently be done from [[https://nextcloud.com/blog/easy-migration-to-nextcloud-from-insecure-and-privacy-unfriendly-platforms-now-available/][Google Photos, Dropbox and OneDrive]]. However, I used [[https://rclone.org/][Rclone]] and [[file:///c:/users/tpyyhtia/Nextcloud/Documents/Orgzly/exiftool/exiftool.html][exiftool.]] After I had the data on my local, it was a matter of setting it up with [[../exiftool/exiftool.html][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 [[https://apps.apple.com/us/app/authenticator/id766157276][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: - [[https://apps.nextcloud.com/apps/metadata][Metadata]] - [[https://apps.nextcloud.com/apps/contacts][Contacts]] To setup the contact record synchronization from iOS client's Contacts app to Nextcloud via CardDAV, follow the [[https://docs.nextcloud.com/server/18/user_manual/pim/sync_ios.html#contacts][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.). - [[https://apps.nextcloud.com/apps/groupfolders][Group Folders]] Group folders are setup like so: #+CAPTION: =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= | - [[https://apps.nextcloud.com/apps/news][News]] Also edit cron so that News [[https://crontab.guru/#*/15_*_*_*_*]["at every 15th minute"]] polls the content from the feeds: ~$ crontab -e~ #+BEGIN_SRC bash # */15 * * * * php8.2 -f /home/users/pyyhttu/siilo/sites/yoursite.kapsi.fi/www/nextcloud/cron.php #+END_SRC Then [[https://github.com/nextcloud/news#sync-clients][install a client]] for your phone/desktop. - [[https://apps.nextcloud.com/apps/unsplash][Unsplash]] - [[https://apps.nextcloud.com/apps/camerarawpreviews][Camera Raw Previews]] - [[https://apps.nextcloud.com/apps/extract][Extract]] - [[https://apps.nextcloud.com/apps/files_rightclick][Right Click]] - [[https://apps.nextcloud.com/apps/sharingpath][Sharing Path]] - [[https://apps.nextcloud.com/apps/maps][Maps]] [2024-12-08 Sun]: Now Maps should work also for photos in group folders, see [[https://github.com/nextcloud/maps/issues/123#issuecomment-1454266089][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~ #+begin_note *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. #+end_note - [[https://apps.nextcloud.com/apps/memories][Memories]] 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= #+BEGIN_SRC bash $ 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 #+END_SRC If needed to use =.nomedia= see this [[https://github.com/pulsejet/memories/issues/185][issue.]] *[2025-01-22 Wed]:* Note that =.nomedia= is not yet supported in [[https://github.com/nextcloud/ios/issues/2864][iOS Nextcloud client]]. [[https://apps.nextcloud.com/apps/previewgenerator][Preview Generator]] After installed, run in =../nextcloud/=: ~$ php occ preview:generate-all -vvv~ Once finished, add the crojob: ~$ crontab -e~ #+BEGIN_SRC bash */10 * * * * php /home/users/pyyhttu/siilo/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/occ preview:pre-generate -vvv~ #+END_SRC *** NEXT Figure out how much disk space this takes, and where - Seems to be installed to ==nextcloud/data/appdata_ocg80o430zwr/preview/= and takes 78Gb. - Find a way to disable mp3s from those previews. - Set Memories for previews at =/settings/admin/memories=. - Study the article [[https://ownyourbits.com/2019/06/29/understanding-and-improving-nextcloud-previews/][Understanding and improving Nextcloud Previews]] for recommended settings. - Also study [[https://www.allerstorfer.at/nextcloud-install-preview-generator/][the alternative install instructions]]. [2023-08-08 Tue] noticed the logs contained a lot of errors: #+begin_src bash 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 #+end_src Reported in [[https://github.com/nextcloud/server/issues/44578][44578]]. Followup. [2024-12-08 Sun]: Still happens with version 30.0.2. *** DONE Disable these official Apps - [[https://github.com/nextcloud/recommendations/][Recommendations]]. Disabled [[https://help.nextcloud.com/t/recently-edited-items-in-nextcloud-16/52280/6][to hide recently edited files]] from UI. - [[https://apps.nextcloud.com/apps/apporder][AppOrder]]. Not needed, default order is fine. - [[https://apps.nextcloud.com/apps/side_menu][Side menu]]. Not needed, top bar navigation is fine. - [[https://apps.nextcloud.com/apps/phonetrack][PhoneTrack]]. Could be handy, but I have Owntracks in use already. ** 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 ([[https://www.reddit.com/r/NextCloud/comments/gnjt4r/nextcloud_system_monitor_for_iphone/][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 [[https://help.nextcloud.com/t/security---host-prefix-cookie-setting/9740/5][installed to a subdirectory]]. Observe also [[https://www.reddit.com/r/NextCloud/comments/llrjuw/all_those_having_a_security_scan_ratinghow_did_u/][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 ** DONE Upgrading instance New version is announced at [[https://nextcloud.com/blog/][Nextcloud blog]]. Here's the [[https://nextcloud.com/feed][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 [[https://www.reddit.com/r/NextCloud/comments/j7cjn9/still_no_update_from_1902_to_12_in_the_updater/g83rx0s/?context=3][until the first dot release is out]]. More information at [[https://nextcloud.com/release-channels/][release channels]]. Changelog of releases is available at [[https://nextcloud.com/changelog/][Nextcloud Server Changelog]]. In any case, always take backups prior upgrading since downgrading is [[https://www.reddit.com/r/NextCloud/comments/gywwtu/downgrade_from_19_to_1805/][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 ~ 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 [[https://docs.nextcloud.com/server/15/admin_manual/maintenance/update.html#using-the-command-line-based-updater][cmd line with updater.phar]] as the method avoids e.g. [[https://help.nextcloud.com/t/updater-app-runs-into-timeout/12891][php time-out errors]]. ~$ cd to /nextcloud/updater/~ ~$ php updater.phar~ #+BEGIN_SRC bash $ 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] #+END_SRC Hit {{{kbd(Y)}}} to start the update: #+BEGIN_SRC bash Info: Pressing 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] #+END_SRC Hit {{{kbd(Y)}}} to start the upgrade: #+BEGIN_SRC bash 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 ... 2019-12-20T19:08:30+00:00 Updated to 0.14.2 2019-12-20T19:08:31+00:00 Checking for update of app accessibility in appstore [...] #+END_SRC Upgrade finishes with message: #+begin_src bash Keep maintenance mode active? [y/N] #+end_src Hit {{{kbd(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= [fn:1] Navigate to login page and login. Go to =Settings - Logging= and check them for any errors. If none, upgrade has now been completed. [fn:2] ** NEXT Investigate into backup strategy I will eventually use the [[https://ecc-comp.blogspot.com/2020/07/backing-up-for-mortals.html][3-2-1 rule]] for backups, which will result in automatized, versioned backups. [[https://proton.me/blog/3-2-1-backup][3-2-1-backups]] explained. For now, we run a manual rsync [[https://docs.nextcloud.com/server/15/admin_manual/maintenance/backup.html][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 Install borgbackup on NAS pi and pull periodic backups from Kapsi to pi OpenMediaVault Investigate how to accomplish as per these [[https://www.google.fi/search?sclient=psy-ab&site=&source=hp&q=nextcloud+backup+borg&=&=&oq=&pbx=1][search results]]. Also setup the borg script to backuo everything else from kapsi (highlander decks, debian notes etc.). ** 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 [[https://github.com/pbek/nextbackup/issues/55#issuecomment-1329603845][obsoleted]]. ** DONE [[https://www.reddit.com/r/selfhosted/comments/pq6ixl/backup_nextcloud_to_somewhere_else/hdac4qs/][backup contacts]] Contacts can be exported/imported using the standard =.vcf=-file. [[https://docs.nextcloud.com/server/latest/user_manual/en/groupware/contacts.html][Documentation]]. ** 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 Maps: Fix off-coordinates for photos Sometimes GPS coordinates are inaccurate and photos in Maps end up displayed several kilometers off. You can fix the coordinates: 1. In =/apps/maps/= Select desired location by right clicking on it and select "Share this location" - GPS coordinates are copied to clipboard. 2. Open =/apps/memories/map= and select the photo and "Edit metadata". Paste the coordinates from clipboard to its field "Geolocation". 3. Go back to =/apps/maps/= and hit {{{kbd(ctrl-r)}}}. You'll see a banner: "/A background job updated 0 from 1 changed photos. This might take a while/". 4. After a while, the photo has been moved to its correct coordinates. #+begin_note *Note:* Modifying the coordinates of the photo modifies the photo's =File Modification Date/Time= which means in iOS Nextcloud app's Media view that the photo you fixed the coordinates for, bumps to the top. Fix this in backend at =www/nextcloud/data/Tuomas/files= by running: ~$ exiftool -m -r '-FileModifyDate__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 #+END_SRC This was then fixed by continuing upgrade manually: ~$ php occ upgrade~ #+BEGIN_SRC bash 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 ... Updated 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 #+END_SRC However, after the upgrade news addon is still generating errors in logs, namely this PHP error: #+BEGIN_SRC bash Error: mkdir(): Permission denied at /siilo/6/pyyhttu/sites/pyyhttu-siilo.kapsi.fi/www/nextcloud/apps/news/lib/AppInfo/Application.php#104 #+END_SRC Opening the issue at [[https://github.com/nextcloud/news/issues/1020][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: #+BEGIN_SRC bash 'tempdirectory' => '/siilo/6/pyyhttu/sites/tmp' #+END_SRC 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: #+BEGIN_SRC bash 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. #+END_SRC 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=: #+BEGIN_SRC bash 'my-instance-id', ); #+END_SRC 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 {{{kbd(Ctrl)}}}-{{{kbd(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": #+BEGIN_SRC bash {"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":""} #+END_SRC Kapsi operates its filesystem with NFS, and they've had during [[https://www.kapsi.fi/tiedotteet/2021.html#471][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: #+BEGIN_SRC bash 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. #+END_SRC 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:= #+BEGIN_SRC bash 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. #+END_SRC Googling this out, gives plenty of results: [[https://github.com/nextcloud/server/issues/31223][The OPcache interned strings buffer is nearly full #31223]] [[https://github.com/nextcloud/all-in-one/issues/192][adjust opcache settings #192]] [[https://github.com/nextcloud/docker/issues/1692][ PHP OPcache module is not properly configured: OPcache interned strings buffer is nearly full #1692]] Also troubleshooted this and [[https://github.com/nextcloud/all-in-one/issues/192#issuecomment-1053652741][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= #+BEGIN_SRC bash $ 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 | +---------+--------+--------------+ #+END_SRC *[2024-12-23 Mon]*: Resolved by itself as this gives no longer an error: #+begin_src bash $ 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 | +---------+-------+-----+---------+---------+--------+--------------+ #+end_src ----- ** DONE Found on [2024-02-17 Sat] after upgrade from 28.0.1 to 28.0.2 Warning in =Settings - Overview:= #+BEGIN_SRC bash 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. #+END_SRC Warning documented [[https://docs.nextcloud.com/server/28/admin_manual/configuration_server/background_jobs_configuration.html][here]] and [[https://help.nextcloud.com/t/nextcloud-server-has-no-maintenance-window-start-time-configured-error/180556/4][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:= #+BEGIN_SRC bash This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: bz2. #+END_SRC Turns out this module is [[https://help.nextcloud.com/t/docker-image-setup-warning-missing-bz2-after-update-to-nc-28-0-0/176605][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:= #+BEGIN_SRC bash Could not load log entries #+END_SRC Verified by [[https://github.com/nextcloud/logreader/issues/1058][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 [[https://help.nextcloud.com/t/time-of-nextcloud-instance-not-correct/53096/4][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 Sun] 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 [[https://github.com/nextcloud/server/issues/47359][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: #+begin_src bash $ 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 #+end_src After this refreshing the Nextcloud app page I had open, caused error: #+begin_src bash 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 #+end_src 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: #+begin_src bash $ 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 #+end_src 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 [2024-00-24 Tue] after upgrade from 29.0.5 to 29.0.7 #+begin_src bash 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] #+end_src [[https://github.com/nextcloud/server/issues/23369#issuecomment-707313974][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 [[https://help.nextcloud.com/t/nc29-setup-warnings-well-known-and-other/201525/3][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=. ----- ** DONE Found on [2025-02-27 Thu] after upgrade from 30.0.6 to 31.0.0 Logs started to show warning: ="Selected provider 'Unsplash' could not be found. Using Default. Please select an existing provider in the settings!"= Going to =/settings/admin/theming= and =Splash= revealed for =UnsplashAPI=: #+BEGIN_QUOTE Set the required token. To get a token, visit: [[https://unsplash.com/documentation#creating-a-developer-account][Unsplash: Developer Account Instructions]] On the linked instruction page, register an application. You should not need to apply for production. Use their token here. #+END_QUOTE Then added to =Token= their Access Key. ----- ** DONE Found on [2025-04-02 Wed] after upgrade from 30.0.6 to 31.0.0 [[https://securityheaders.com/?q=https%3A%2F%2Fpyyhttu-siilo.kapsi.fi%2Fnextcloud&followRedirects=on][securityheaders.com]] showed =Permissions-Policy= as a missing security header: #+ATTR_HTML: :width:100%; height:auto; [[file:images/1.png]] Fixed by editing =/nextcloud/.htaccess= by adding inside tag ==: #+begin_src htaccess