Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nextcloud.16697 for openSUSE:Leap:15.2:Update checked in at 2021-07-20 21:21:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2:Update/nextcloud.16697 (Old) and /work/SRC/openSUSE:Leap:15.2:Update/.nextcloud.16697.new.2632 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nextcloud.16697" Tue Jul 20 21:21:50 2021 rev:1 rq:906267 version:20.0.11 Changes: -------- New Changes file: --- /dev/null 2021-07-16 00:38:45.556344817 +0200 +++ /work/SRC/openSUSE:Leap:15.2:Update/.nextcloud.16697.new.2632/nextcloud.changes 2021-07-20 21:21:52.418893777 +0200 @@ -0,0 +1,2628 @@ +------------------------------------------------------------------- +Tue Jul 13 11:57:40 UTC 2021 - ecsos <ec...@opensuse.org> + +- Update to 20.0.11 + - Fix boo#1188247 - CVE-2021-32678: OCS API response ratelimits are not applied + - Fix boo#1188248 - CVE-2021-32679: filenames where not escaped by default in controllers using DownloadResponse + - Fix boo#1188249 - CVE-2021-32680: share expiration date wasn't properly logged + - Fix boo#1188250 - CVE-2021-32688: lacking permission check with application specific tokens + - Fix boo#1188251 - CVE-2021-32703: lack of ratelimiting on the shareinfo endpoint + - Fix boo#1188252 - CVE-2021-32705: lack of ratelimiting on the public DAV endpoint + - Fix boo#1188253 - CVE-2021-32725: default share permissions were not being respected for federated reshares of files and folders + - Fix boo#1188254 - CVE-2021-32726: webauthn tokens were not deleted after a user has been deleted + - Fix boo#1188255 - CVE-2021-32734: possible full path disclosure on shared files + - Fix boo#1188256 - CVE-2021-32741: lack of ratelimiting on the public share link mount endpoint + - Bump handlebars from 4.7.6 to 4.7.7 (server#26900) + - Bump lodash from 4.17.20 to 4.17.21 (server#26909) + - Bump hosted-git-info from 2.8.8 to 2.8.9 (server#26920) + - Don't break OCC if an app is breaking in it's Application class (server#26954) + - Add bruteforce protection to the shareinfo endpoint (server#26956) + - Ignore readonly flag for directories (server#26965) + - Throttle MountPublicLinkController when share is not found (server#26971) + - Respect default share permissions for federated reshares (server#27001) + - Harden apptoken check (server#27014) + - Use parent wrapper to properly handle moves on the same source/target storage (server#27016) + - Fix error when using CORS with no auth credentials (server#27027) + - Fix return value of getStorageInfo when 'quota_include_external_storage' is enabled (server#27108) + - Bump patch dependencies (server#27183) + - Use noreply@ as email address for share emails (server#27209) + - Bump p-queue from 6.6.1 to 6.6.2 (server#27226) + - Bump browserslist from 4.14.0 to 4.16.6 (server#27247) + - Bump webpack from 4.44.1 to 4.44.2 (server#27297) + - Properly use limit and offset for search in Jail wrapper (server#27308) + - Make user:report command scale (server#27319) + - Properly log expiration date removal in audit log (server#27325) + - Propagate throttling on OCS response (server#27337) + - Set umask before operations that create local files (server#27349) + - Escape filename in Content-Disposition (server#27360) + - Don't update statuses to offline again and again (server#27412) + - Header must contain a colon (server#27456) + - Activate constraint check for oracle / pqsql also for 20 (server#27523) + - Only allow removing existing shares that would not be allowed due to reshare restrictions (server#27552) + - Bump ws from 7.3.1 to 7.5.0 (server#27570) + - Properly cleanup entries of WebAuthn on user deletion (server#27596) + - Throttle on public DAV endpoint (server#27617) + - Bump vue-loader from 15.9.3 to 15.9.7 (server#27639) + - Bump eslint-plugin-standard from 4.0.1 to 4.0.2 (server#27651) + - Validate the theming color also on CLI (server#27680) + - Downstream encryption:fix-encrypted-version for repairing bad signature errors (server#27728) + - Remove encodeURI code (files_pdfviewer#396) + - Only ask for permissions on HTTPS (notifications#998) + - Fix sorting if one of the file name is only composed with number (photos#785) + - Backport 20 fix Photos not shown in large browser windows #630 (#686) (photos#810) + - Update File.vue (photos#813) + - Update chart.js (serverinfo#309) + - Only return workspace property for top node in a propfind request (text#1611) + - ViewerComponent: pass on autofocus to EditorWrapper (text#1647) + - Use text/plain as content type for fetching the document (text#1692) + - Log exceptions that happen on unknown exception and return generic messages (text#1698) + - Add fixup (viewer#924) + - Fix: fullscreen for Firefox (viewer#929) + +------------------------------------------------------------------- +Wed Feb 3 11:25:49 UTC 2021 - ecsos <ec...@opensuse.org> + +- Update to 20.0.7 + - Catch NotFoundException when querying quota (server#25315) + - CalDAV] Validate notified emails (server#25324) + - Fix/app fetcher php compat comparison (server#25347) + - Show the actual error on share requests (server#25352) + - Fix parameter provided as string not array (server#25366) + - The objectid is a string (server#25374) + - 20.0.7 final (server#25387) + - Properly handle SMB ACL blocking scanning a directory (server#25421) + - Don't break completely when creating the digest fail for one user (activity#556) + - Only attempt to use a secure view if hide download is actually set (files_pdfviewer#296) + - Fix opening PDF files with special characters in their name (files_pdfviewer#298) + - Fix PDF viewer failing on Edge (not based on Chromium) (files_pdfviewer#299) + - Cannot unfold plain text notifications (notifications#846) + - Remove EPUB mimetype (text#1391) + +------------------------------------------------------------------- +Tue Jan 26 17:02:07 UTC 2021 - ecsos <ec...@opensuse.org> + +- Update to 20.0.6 + - Make sure to do priority app upgrades first (server#25077) + - Respect DB restrictions on number of arguments in statements and queries (server#25120) + - Add a hint about the direction of priority (server#25143) + - Do not redirect to logout after login (server#25146) + - Fix comparison of PHP versions (server#25152) + - Add "composer.lock" for acceptance tests to git (server#25178) + - Update CRL due to revoked gravatar.crl (server#25190) + - Don't log keys on checkSignature (server#25193) + - Update 3rdparty after Archive_Tar (server#25199) + - Bump CA bundle (server#25219) + - Update handling of user credentials (server#25225) + - Fix encoding issue with OC.Notification.show (server#25244) + - Also use storage copy when dav copying directories (server#25261) + - Silence log message (server#25263) + - Extend ILDAPProvider to allow reading arbitrairy ldap attributes for users (server#25276) + - Do not obtain userFolder of a federated user (server#25278) + - Bump pear/archive_tar from 1.4.11 to 1.4.12 (3rdparty#603) + - Add gitignore entry for .github folder of dependencies (3rdparty#604) + - Clear event array on getting them (activity#551) + +------------------------------------------------------------------- +Thu Jan 14 15:41:07 UTC 2021 - ecsos <ec...@opensuse.org> + +- Update to 20.0.5 + - Don't log params of imagecreatefromstring (server#24546) + - Use storage copy implementation when doing dav copy + (server#24590) + - Use in objectstore copy (server#24592) + - Add tel, note, org and title search (server#24697) + - Check php compatibility of app store app releases + (server#24698) + - Fix #24682]: ensure federation cloud id is retruned if FN + property not found (server#24709) + - Do not include non-required scripts on the upgrade page + (server#24714) + - LDAP: fix inGroup for memberUid type of group memberships + (server#24716) + - Cancel user search requests to avoid duplicate results being + added (server#24728) + - Also unset the other possible unused paramters (server#24751) + - Enables the file name check also to match name of mountpoints + (server#24760) + - Fixes sharing to group ids with characters that are being url + encoded (server#24763) + - Limit getIncomplete query to one row (server#24791) + - Fix Argon2 descriptions (server#24792) + - Actually set the TTL on redis set (server#24798) + - Allow to force rename a conflicting calendar (server#24806) + - Fix IPv6 localhost regex (server#24823) + - Catch the error on heartbeat update (server#24826) + - Make oc_files_trash.auto_id a bigint (server#24853) + - Fix total upload size overwritten by next upload (server#24854) + - Avoid huge exception argument logging (server#24876) + - Make share results distinguishable if there are more than one + with the exact same display name (server#24878) + - Add migration for oc_share_external columns (server#24963) + - Don't throw a 500 when importing a broken ics reminder file + (server#24972) + - Fix unreliable ViewTest (server#24976) + - Update root.crl due to revocation of transmission.crt + (server#24990) + - Set the JSCombiner cache if needed (server#24997) + - Fix column name to check prior to deleting (server#25009) + - Catch throwable instead of exception (server#25013) + - Set the user language when adding the footer (server#25019) + - Change defaultapp in config.sample.php to dashboard to improve + docs and align it to source code (server#25030) + - Fix clearing the label of a share (server#25035) + - Update psalm-baseline.xml (server#25066) + - Don't remove assignable column for now (server#25074) + - Add setup check to verify that the used DB version is still + supported??? (server#25076) + - Correctly set the user for activity parsing when preparing + a notifica??? (activity#542) + - Bump vue-virtual-grid from 2.2.1 to 2.3.0 (photos#597) + - Catch possible database exceptions when fetching document data + (text#1221) + - Make sure we have the proper PHP version installed before + running composer (text#1234) + - Revert removal of transformResponse (text#1235) + - Bump prosemirror-view from 1.16.1 to 1.16.5 (text#1255) + - Bump @babel/preset-env from 7.12.1 to 7.12.11 (text#1257) + - Bump babel-loader from 8.1.0 to 8.2.2 (text#1259) + - Bump eslint-plugin-standard from 4.0.2 to 4.1.0 (text#1261) + - Bump vue-loader from 15.9.5 to 15.9.6 (text#1263) + - Bump prosemirror-model from 1.12.0 to 1.13.1 (text#1265) + - Bump core-js from 3.7.0 to 3.8.1 (text#1266) + - Bump stylelint from 13.7.2 to 13.8.0 (text#1269) + - Bump @babel/plugin-transform-runtime from 7.12.1 to 7.12.10 + (text#1271) + - Bump sass-loader from 10.0.5 to 10.1.0 (text#1273) + - Bump webpack-merge from 5.3.0 to 5.7.2 (text#1274) + - Bump @babel/core from 7.12.3 to 7.12.10 (text#1277) + - Bump cypress from 5.1.0 to 5.6.0 (text#1278) + - Bump @vue/test-utils from 1.1.1 to 1.1.2 (text#1279) + - Bump webpack-merge from 5.7.2 to 5.7.3 (text#1303) + +------------------------------------------------------------------- +Tue Dec 15 08:21:19 UTC 2020 - ecsos <ec...@opensuse.org> + +- The apache subpackage must require the main package, otherwise it + will not be uninstalled when the main package is uninstalled. + +------------------------------------------------------------------- +Mon Dec 14 19:26:37 UTC 2020 - ecsos <ec...@opensuse.org> + +- Update to 20.0.4 + - Avoid dashboard crash when accessibility app is not installed (server#24636) + - Bump ini from 1.3.5 to 1.3.7 (server#24649) + - Handle owncloud migration to latest release (server#24653) + - Use string for storing a OCM remote id (server#24654) + - Fix MySQL database size calculation (serverinfo#262) + - Bump cypress-io/github-action@v2 (viewer#722) ++++ 2431 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:Leap:15.2:Update/.nextcloud.16697.new.2632/nextcloud.changes New: ---- README README.SELinux README.SUSE apache_secure_data nextcloud-20.0.11.tar.bz2 nextcloud-cron nextcloud-cron.service nextcloud-cron.timer nextcloud-rpmlintrc nextcloud.changes nextcloud.spec robots.txt ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nextcloud.spec ++++++ # # spec file for package nextcloud # # Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # # %if 0%{?suse_version} %define apache_myserverroot %{apache_serverroot}/htdocs %define apache_confdir %{apache_sysconfdir}/conf.d %define apache_docdir /usr/share/doc/packages %else %if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} %define apache_serverroot /var/www/html %define apache_confdir /etc/httpd/conf.d %define apache_user apache %define apache_group apache %define __jar_repack 0 %else %define apache_serverroot /var/www %define apache_confdir /etc/httpd/conf.d %define apache_user www %define apache_group www %endif %endif %define nc_user %{apache_user} %define nc_dir %{apache_myserverroot}/%{name} %define ocphp_bin /usr/bin %if 0%{?rhel} == 600 || 0%{?rhel_version} == 600 || 0%{?centos_version} == 600 %define statedir /var/run %else %define statedir /run %endif Name: nextcloud Version: 20.0.11 Release: 0 Summary: File hosting service License: AGPL-3.0-only Group: Productivity/Networking/Web/Utilities URL: https://nextcloud.com Source0: https://download.nextcloud.com/server/releases/%{name}-%{version}.tar.bz2 Source1: apache_secure_data Source2: README Source3: README.SELinux Source4: README.SUSE Source5: robots.txt Source10: %{name}-cron Source11: %{name}-cron.service Source12: %{name}-cron.timer Source99: %{name}-rpmlintrc BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch BuildRequires: apache-rpm-macros BuildRequires: cron BuildRequires: fdupes BuildRequires: unzip # Requires: cron Requires: curl Requires: libxml2-2 Requires: mysql Requires: php-bz2 Requires: php-dom Requires: php-gd Requires: php-intl Requires: php-json Requires: php-mbstring Requires: php-mysql Requires: php-posix Requires: php-zip # %if 0%{?fedora_version} || 0%{?rhel} || 0%{?rhel_version} || 0%{?centos_version} Requires: php < 7.5.0 Requires: php >= 7.2.0 Requires: php-process Requires: php-xml Recommends: sqlite %endif # %if 0%{?suse_version} Requires: php-ctype Requires: php-curl # SUSE does not include the fileinfo module in php-common. Requires: php-fileinfo Requires: php-iconv Requires: php-openssl Requires: php-pear Requires: php-xmlreader Requires: php-xmlwriter Requires: php-zip Requires: php-zlib Recommends: sqlite3 %{?systemd_requires} %endif # Database connectors: Recommends: php-sqlite #Recommends: php-pgsql # Require for specific apps: Requires: php-ftp Requires: php-ldap #Requires: php-imap #Requires: php-smbclient # Recommend for specific apps: Recommends: php-exif Recommends: php-gmp # For enhanced server performance: Recommends: php-APCu Recommends: php7-bcmath # For preview generation: Recommends: php-imagick Recommends: php-ffmpeg #Recommends: libreoffice # For command line processing: Recommends: php-pcntl %description Nextcloud is a suite of client-server software for creating file hosting services and using them. %package apache Summary: Apache configuration for %{name} Group: Productivity/Networking/Web/Utilities BuildRequires: apache2 >= 2.4 Requires: %{name} = %{version} Requires: apache2 Requires: mod_php_any < 7.5.0 Requires: mod_php_any >= 7.2.0 Supplements: packageand(apache2:%name) %description apache This subpackage contains the Apache configuration files %prep %setup -q -n %{name} cp %{SOURCE2} . cp %{SOURCE3} . cp %{SOURCE4} . cp %{SOURCE5} . ### Don't remove git files!! ### git files should not be removed, otherwise nextcloud rise up integrity check failure in some situations. ### ## delete unneeded gitfiles #rm -r `find . -name ".gitignore" -or -name ".gitkeep" -or -name ".github"` ## remove entries in signature.json to prevent integrity check failure #find . -iname signature.json \ # -exec sed -i "/\/.gitignore\": ./d" "{}" \; \ # -exec sed -i "/\/.gitkeep\": ./d" "{}" \; \ # -exec sed -i "/\/.github\": ./d" "{}" \; #rm -f 3rdparty/symfony/debug/Resources/ext/*.{c,h} %build %install # no server side java code contained, alarm is false idir=$RPM_BUILD_ROOT/%{apache_myserverroot}/%{name} mkdir -p $idir mkdir -p $idir/data mkdir -p $idir/search cp -aRf * $idir cp -aRf .htaccess $idir cp -aRf .user.ini $idir # $idir/l10n to disappear in future #rm -f $idir/l10n/l10n.pl if [ ! -f $idir/robots.txt ]; then install -p -D -m 644 %{SOURCE5} $idir/robots.txt fi # create the AllowOverride directive install -p -D -m 644 %{SOURCE1} $RPM_BUILD_ROOT/%{apache_confdir}/nextcloud.conf ocpath="%{apache_myserverroot}/%{name}" sed -i -e"s|@DATAPATH@|${ocpath}|g" $RPM_BUILD_ROOT/%{apache_confdir}/nextcloud.conf # not needed for distro packages rm -f ${idir}/indie.json %if 0%{?suse_version} # link duplicate doc files %fdupes -s $RPM_BUILD_ROOT/%{apache_myserverroot}/%{name} %endif # CronJob install -d -m 0755 %{buildroot}%{_sysconfdir}/cron.d install -D -m 0644 %{SOURCE10} %{buildroot}%{_sysconfdir}/cron.d/%{name} install -D -m 0644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}-cron.service install -D -m 0644 %{SOURCE12} %{buildroot}%{_unitdir}/%{name}-cron.timer sed -i -e"s|@APACHE_USER@|%{apache_user}|g" %{buildroot}%{_sysconfdir}/cron.d/%{name} sed -i -e"s|@APACHE_MYSERVERROOT@|%{apache_myserverroot}|g" %{buildroot}%{_sysconfdir}/cron.d/%{name} sed -i -e"s|@APACHE_USER@|%{apache_user}|g" %{buildroot}%{_unitdir}/%{name}-cron.service sed -i -e"s|@APACHE_MYSERVERROOT@|%{apache_myserverroot}|g" %{buildroot}%{_unitdir}/%{name}-cron.service mkdir -p %{buildroot}%{_sbindir} ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}-cron %pre %service_add_pre %{name}-cron.timer %{name}-cron.service # avoid fatal php errors, while we are changing files # https://github.com/nextcloud # # We don't do this for new installs. Only for updates. # If the first argument to pre is 1, the RPM operation is an initial installation. If the argument is 2, # the operation is an upgrade from an existing version to a new one. if [ $1 -gt 1 -a ! -s %{statedir}/apache_stopped_during_nextcloud_install ]; then echo "%{name} update: Checking for running Apache" # FIXME: this above should make it idempotent -- a requirement with openSUSE. # it does not work. %if 0%{?suse_version} && 0 %if 0%{?suse_version} <= 1110 rcapache2 status | grep running > %{statedir}/apache_stopped_during_nextcloud_install rcapache2 stop %else service apache2 status | grep running > %{statedir}/apache_stopped_during_nextcloud_install service apache2 stop %endif %endif %if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} service httpd status | grep running > %{statedir}/apache_stopped_during_nextcloud_install service httpd stop %endif fi if [ -s %{statedir}/apache_stopped_during_nextcloud_install ]; then echo "%{name} pre-install: Stopping Apache" fi if [ $1 -eq 1 ]; then echo "%{name}-server: First install starting" else echo "%{name}-server: Upgrade starting ..." fi # https://github.com/nextcloud if [ -x %{ocphp_bin}/php -a -f %{nc_dir}/occ ]; then echo "%{name}: occ maintenance:mode --on" su %{nc_user} -s /bin/sh -c "cd %{nc_dir}; PATH=%{ocphp_bin}:$PATH php ./occ maintenance:mode --on" || true echo yes > %{statedir}/occ_maintenance_mode_during_nextcloud_install fi %post %service_add_post %{name}-cron.timer %{name}-cron.service if [ $1 -eq 1 ]; then %if 0%{?suse_version} %if 0%{?suse_version} >= 1500 a2enmod php7 %else a2enmod php5 %endif %endif fi if [ -s %{statedir}/apache_stopped_during_nextcloud_install ]; then echo "%{name} post-install: Restarting Apache" ## If we stopped apache in pre section, we now should restart. -- but *ONLY* then! ## Maybe delegate that task to occ upgrade? They also need to handle this, somehow. %if 0%{?suse_version} %if 0%{?suse_version} <= 1310 rcapache2 start %else rcapache2 restart apache2.service %endif %endif %if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} service httpd start %endif fi if [ -s %{statedir}/occ_maintenance_mode_during_nextcloud_install ]; then echo "%{name}: occ maintenance:repair (fix possible errors)" su %{nc_user} -s /bin/sh -c "cd %{nc_dir}; PATH=%{ocphp_bin}:$PATH php ./occ maintenance:repair" || true echo "%{name}: occ update apps" su %{nc_user} -s /bin/sh -c "cd %{nc_dir}; PATH=%{ocphp_bin}:$PATH php ./occ app:update --all" || true echo "%{name}: occ upgrade" su %{nc_user} -s /bin/sh -c "cd %{nc_dir}; PATH=%{ocphp_bin}:$PATH php ./occ upgrade" || true echo "%{name}: occ maintenance:mode --off" su %{nc_user} -s /bin/sh -c "cd %{nc_dir}; PATH=%{ocphp_bin}:$PATH php ./occ maintenance:mode --off" || true fi rm -f %{statedir}/apache_stopped_during_nextcloud_install rm -f %{statedir}/occ_maintenance_mode_during_nextcloud_install if [ $1 -eq 1 ]; then echo "%{name}-server: First install complete" else echo "%{name}-server: Upgrade complete" fi %preun %service_del_preun %{name}-cron.timer %{name}-cron.service %postun %service_del_postun %{name}-cron.timer %{name}-cron.service %files %defattr(644,root,root,755) %exclude %{apache_myserverroot}/%{name}/README %exclude %{apache_myserverroot}/%{name}/README.SUSE %exclude %{apache_myserverroot}/%{name}/README.SELinux %doc README README.SUSE README.SELinux %config(noreplace) %{_sysconfdir}/cron.d/%{name} %{_sbindir}/rc%{name}-cron %{_unitdir}/%{name}-cron.service %{_unitdir}/%{name}-cron.timer %{apache_myserverroot}/%{name} %attr(-,%{apache_user},%{apache_group}) %{apache_myserverroot}/%{name}/occ %config(noreplace) %{apache_myserverroot}/%{name}/.user.ini %defattr(664,%{apache_user},%{apache_group},775) %{apache_myserverroot}/%{name}/apps %{apache_myserverroot}/%{name}/core/js/mimetypelist.js %dir %{apache_myserverroot}/%{name}/core/img/filetypes %defattr(660,%{apache_user},%{apache_group},770) %{apache_myserverroot}/%{name}/config %{apache_myserverroot}/%{name}/data %files apache %config(noreplace) %{apache_confdir}/nextcloud.conf %changelog ++++++ README ++++++ nextcloud Overview and installation instructions ----------------------------------------------- Welcome to nextcloud, your self-hosted file sync and share solution. OwnCloud is open source file sync and share software for everyone from individuals operating the free Community Edition, to large enterprises and service providers operating nextcloud Enterprise Edition. nextcloud provides a safe, secure and compliant file sync and share solution on servers you control. With nextcloud you can share one or more folders on your PC, and sync them with your nextcloud server. Place files in your local shared directories, and those files are immediately synced to the server, and then to other PCs via the desktop client. Not near a desktop client? No problem, simply log in with the web client and manage your files there. The Android and iOS mobile apps allow you to browse, download and upload photos and videos. On Android, you may also create, download, edit and upload any other files, with the correct software installed. Whether using a mobile device, a workstation, or a web client, nextcloud provides the ability to put the right files in the right hands at the right time on any device in one simple-to-use, secure, private and controlled solution. After all, with nextcloud, it's Your Cloud, Your Data, Your Way. The Various Elements of nextcloud -------------------------------- nextcloud comes in three different Editions, with desktop clients and mobile apps available as add-ons. The three editions are: - Community Edition: the free, unsupported, open source version of nextcloud. This is the same server software that is included in Business and Enterprise Edition, it is just provided unsupported under AGPL license. It includes the server side application and the built in web client. - Business Edition: the certified and supported nextcloud server provided under AGPL license (support provided by nextcloud, Inc.), including the desktop clients and intended as a starter pack for small businesses, or as a PoC for large businesses or service providers. - Enterprise Edition: the certified and supported nextcloud server provided under AGPL or nextcloud license, including desktop clients and mobile apps, available in increments up to an unlimited number of users, and intended as an enterprise or service provider offering. While there are three different Editions of nextcloud, the nextcloud server is open source, and is essentially the same in all three offerings. This installation guide is designed for installation of the nextcloud server, a part of all three nextcloud Editions. For more information on nextcloud Editions, please visit nextcloud.com/overview. nextcloud is a Web Application ----------------------------- nextcloud is a web based application that is intended to provide access to files. As such, understand that once you take an nextcloud instance live, it must be maintained as you would any other website or server. This means keeping up with patches to the web server, PHP, your database, as well as updates to nextcloud itself. Active monitoring of the application and logs are recommended, SSL connections are a good idea for security reasons, and a local server soft firewall is just smart - and in most cases part of the default server setup. Be thorough with nextcloud and your web server, and you will have the secure file, sync and share solution you are looking for for many years to come. Prerequisites ------------- nextcloud requires a webserver, PHP5 and a database to operate. We support Apache, though it is possible to run nextcloud on Microsoft's IIS on Windows 7 or Windows Server 2008 R2 via FastCGI. nextcloud recommends Apache and PHP5, for performance and overhead reasons. For databases, we support SQLite, MySQL, and PostgreSQL. See "Choosing the Database" for more information on which database to choose. Installation Scale ------------------ nextcloud is simple to install with a little technical know-how, and depending on your situation, can be installed in minutes. However, before installing nextcloud, it is important to understand what it is. nextcloud is a PHP based web application, so you also need to install PHP5 and Apache2. You can install nextcloud on Linux, Windows and Mac servers, as well as in virtual machine(s), where you install the application is entirely dependent on the scale of your operations. nextcloud is highly flexible software, supporting small to massive implementations. For small installations, you can install all of nextcloud on an old desktop or workstation, on a single server, or inside a single virtual machine. For mid-sized installations, you can separate the app and database server to enhance security and improve scalability, and add a second app server and MySQL server for redundancy. At the large end of the installation spectrum, you may have a load balancer out front of many nextcloud application servers, with a database cluster, and network attached storage on the back end, enabling massive scalability and performance tuning for your instance. For the purposes of this document, the assumption is made that a small to mid sized installation is the desired outcome, either for personal use, or as a demo, proof of concept, or pilot. Choosing the Database --------------------- When you install nextcloud, first take a hard look at the scale of your implementation. nextcloud can be installed with MySQL, PostgreSQL or SQLite. Which you choose is dependent on your environment, the number of users, and the scale of your implementation. SQLite is a lightweight, zero-configuration, self contained database engine. The best parts of SQLite are the ease with which one can implement and use SQLite, and the speed and low overhead required for it to work. However, this is really designed for small implementations of nextcloud. In general, it is best to keep the use of SQLite to personal installations, or to PoC or pilot installations with no more than 50 users. For these sorts of implementations, SQLite works great. If you have security concerns, or just don't know which to choose, then we recommend stepping up to MySQL, as the tradeoff in server overhead is typically worth the added benefits of a heavier database engine. If you are installing nextcloud Business or Enterprise Edition, the database choice is a matter of preference between MySQL and PostgreSQL. While we recommend MySQL for the large install base, large ecosystem, and the additional features, such as MySQL clusters, you can use either database. On first run, nextcloud will configure the instance using your defined database instance name, location, user name and password. For this to work, you must first install and start a database, and configure a database user for nextcloud. For the purposes of this install guide, we will use MySQL. Installation ------------ Enough of the background stuff, lets get started installing! Getting Started --------------- In this section, we will guide you to the links for the software you need to install to get nextcloud operating. If you have an alternative or preferred approach to finding and installing Apache, PHP and MySQL, you may use it. On Linux, though, we highly recommend sticking to the package manager installations, which will greatly simplify updates, upgrades and un-installs in the future. To get started with your nextcloud installation, install the latest Apache release (as of writing, the latest Apache release is 2.4.1): Linux: through your package manager Windows: download from http://httpd.apache.org/download.cgi Start the web server, and open a browser to localhost to be sure the web server is installed and operating. When that is installed, download and install the latest version of PHP (as of writing, the latest PHP release is 5.4.0): - Linux: through your package manager. The PHP or nextcloud package installation will handle these dependencies at the next step, but it is wise to make sure that these packagesare installed before you load nextcloud for the first time: - mod_php - php-mysql - php-json - php-gd - php-mb_multibyte - php-ctype - php-zip - Windows: download from http://php.net/downloads.php Note: you will be selecting the FastCGI installation as well, for PHP support. Note for Fedora 16 users: please check http://blogs.fsfe.org/samtuke/?p=333 for information on getting php-zip installed! When that is installed, download and install the latest version of the MySQL community server (as of writing, the latest MySQL release is 5.6): - Linux: through your package manager. - Windows: download from http://dev.mysql.com/downloads/ Mac Users: If you are running a Mac, the easiest installation for this entire stack (including the database) is to download the MAMP "one click solution for setting up your personal web server". This can be found at http://www.mamp.info/en/index.html . At this point, you have the necessary prerequisites installed. Now it is time to configure the database. Setting up the Database ----------------------- As already mentioned, nextcloud will automatically create tables inside a database at first run, but it needs to connect to a running instance of the database. If you are using SQLite, this is not an issue, as SQLite is essentially embedded in nextcloud. But, if you are using MySQL or PostgreSQL, you must install and configure the instance, as well as an nextcloud user. Please refer to the latest documentation for your database. http://dev.mysql.com/doc/#manual (5.6) http://www.postgresql.org/docs/manuals/ (9.1) Ensure that the database is installed, started, and that you have configured an nextcloud user with complete rights to create, read, update and delete tables and records, as this user will be used to create tables at nextcloud first run, and then to manage users, groups, quota and more during ongoing operations. For security considerations, we strongly suggest that you do not use the database root account to access the database from nextcloud. You may install the nextcloud database on a separate server from the nextcloud installation. In fact, for the largest nextcloud installations, we recommend installing a MySQL cluster environment, with multiple load balanced nextcloud application servers out front, all accessing the shared cluster. Depending on your hardware, security considerations, and expected load, you may want to separate the database from the app server. Simply note the username, password, and address of the database, and enter this information into the form within nextcloud at first run, and nextcloud will create the instance and tables. Configuring PHP --------------- There are a few default configuration settings that you will want to change to enable nextcloud to operate more effectively as a self hosted file sync and share server. When uploading through the web client, nextcloud is governed by PHP and Apache. As a default, PHP is configured for only 2 MB uploads. This is not entirely useful, so it is important to increase these variables to the sizes you want to support on your server. Point your favorite text editor over to your php.ini file. On different server operating systems this is located in different places. On openSUSE and Ubuntu, for example, this is located in /etc/php5/apache2/php.ini Note: the commend 'find / -name php.ini' can help you locate your php.ini on Linux. On Windows, you can find this file within C:/Program Files (x86)/PHP/PHP.ini Edit the php.ini file, looking for: - upload_max_filesize = 500 MB - post_max_size = 600 MB The defaults for these values are quite small, so change them to to 500 MB and 600MB, or 1G and 1.2G, for example, and you have adjusted the maximum file size that can be uploaded at one time. Make sure you restart your Apache server after these changes, or it will not take affect! Note: You will want these two values to be about the same size, with post_max_size slightly larger to account for headers in the uploaded files. If you find later that files keep timing out on upload, you may want to also change these settings in the php.ini file: max_input_time memory_limit max_execution_time post_max_size See below for more on php.ini settings from radlinks.com. PHP.ini settings - upload_max_filesize and post_max_size Files are usually POSTed to the webserver in a format known as 'multipart/form-data'. The post_max_size sets the upper limit on the amount of data that a script can accept in this manner. Ideally this value should be larger than the value that you set for upload_max_filesize. It's important to realize that upload_max_filesize is the sum of the sizes of all the files that you are uploading. post_max_size is the upload_max_filesize plus the sum of the lengths of all the other fields in the form plus any mime headers that the encoder might include. Since these fields are typically small you can often approximate the upload max size to the post max size. According to the PHP documentation you can set a MAX_UPLOAD_LIMIT in your HTML form to suggest a limit to the browser. Our understanding is that browsers totally ignore this directive and the only solution that can impose such a client side restriction is our own Rad Upload Applet - memory_limit When the PHP engine is handling an incoming POST it needs to keep some of the incoming data in memory. This directive has any effect only if you have used the --enable-memory-limit option at configuration time. Setting too high a value can be very dangerous because if several uploads are being handled concurrently all available memory will be used up and other unrelated scripts that consume a lot of memory might effect the whole server as well. - max_execution_time and max_input_time These settings define the maximum life time of the script and the time that the script should spend in accepting input. If several mega bytes of data are being transfered max_input_time should be reasonably high. You can override the setting in the ini file for max_input_time by calling the set_time_limit() function in your scripts. Additional IIS Server Upload Step --------------------------------- Now you have to go back to IIS manager and make one last change to enable file uploads on the webserver larger than 30MB. - Go to the start menu, and type in 'iis manager' - Open IIS Manager - Select the website you want enable to accept large file uploads - In the main window in the middle double click on the icon "Request filtering" - Once the window is opened you will see a bunch of tabs across the top - On the far right, select "Edit Feature Settings" and modify the "Maximum allowed content length (bytes)" In here, you can change this to up to 4.1 GB. Note: this entry is in BYTES, not KB! - Click OK and then restart IIS. Installing nextcloud Server -------------------------- For Linux we HIGHLY RECOMMEND using your package manager! - Go to https://download.nextcloud.com/server/ - Select "nextcloud Server", "rpm" and click "Download" You will be taken to the openSUSE Build Service, where you can select the OS for the installation, which will take you to the appropriate repositories for your OS version. When stepping through the installation process, be sure you remain subscribed to these repositories so that you can get the latest updates through the package manager!!! These steps will download and install two packages and their dependencies on your server: - nextcloud - nextcloud-3rdparty Both are required for nextcloud to function, but for licensing reasons, they must be packaged separately. You may also download nextcloud-unsupported packages from the same repository, following the instructions above, if you would like the unsupported packages installed as well. These are the packages that are provided by the community, but for which nextcloud, Inc. does not provide support. They are not required for nextcloud to function. Install from source tarball: Through a manual process of download and extracting the files. There are a few Linux distributions, as well as Mac and Windows that have no alternative and will need to use this method. If you are running Linux and can use the package manager, we recommend you do so because using a Tarball, all updates and maintenance will have to be handled manually. - Go to https://download.nextcloud.com/server/releases/ - Select "nextcloud Server", ".tar.bz2" and click "Download" Once downloaded, extract the archive to a folder of your choice Copy the archive contents into the root of your web server - Linux: varies, but examples are /srv/www/htdocs/ or /var/www/html - Windows: c:/inetpub/wwwroot/ You have just installed the nextcloud application on your server! Note: there are Linux specific download and installation instructions available for the Community Edition at https://docs.nextcloud.org/server/9/admin_manual/ if you need additional details on how to install nextcloud. If you follow those instructions, just be sure you download the nextcloud application from https://download.nextcloud.com/server/releasses/ the latest stable and supported version of nextcloud will always be available at this URL. Configuration ------------- After successfully installing nextcloud, you will find a folder in your web server root called /nextcloud. The entire nextcloud application is installed in that directory. - Changing Permissions Once nextcloud is installed, you need to change permissions so that the web server user can access and update the nextcloud application and configuration files. To do this, go to your root web server directory and change the owner of the files to the web server. openSUSE / SLES - Go to /srv/www/htdocs/ - type: chown -R wwwrun:www nextcloud Fedora / RHEL - Go to /var/www/html/ - type: chown -R apache:apache nextcloud - If you are running SELinux, please read /usr/share/doc/nextcloud/README.SELinux Ubuntu - Go to /var/www - type: chown -R www-data:www-data nextcloud Windows - Navigate your windows explorer over to C:/inetpub/wwwroot/nextcloud (or your installation directory if you selected something different). - Right click and select properties. - Click on the security tab, and click the button "to change permissions, click edit". - Select the "users" user from the list, and check the box "write". - Apply these settings and close Performing First Run -------------------- Once all of this is completed, it is time to run the "first run" wizard. Point your browser over to the instance of nextcloud you are setting up, e.g. http://localhost/nextcloud This will open the nextcloud "first run" wizard. On this page, you enter your desired nextcloud username and password for the administrator, and expand the little arrow. You can select the appropriate database here, and enter the database user name and password, instance name and address. We recommend MySQL as the database, on this page enter the user name and password you setup for MySQL earlier, and pick any name for the database instance. Note: the nextcloud admin password and the MySQL password CANNOT be the same in any way! Click next, and the nextcloud server will write to the /nextcloud/config folder the config.php file, connect to the database and create the tables nextcloud needs, and then nextcloud should have you logged in as the admin user in the nextcloud interface. Now you an get started exploring nextcloud, creating other users and more from the web interface. Configuring SSL --------------- Configuring SSL within nextcloud is not difficult, as nextcloud is a web based application. Simply get a certificate and follow your procedures for enabling SSL on your web server. If you have are looking for procedures to follow, you may follow a number of standard online tutorials at Apache.org or a variety of other sites. They will demonstarte how to create a self signed certificate, or how to generate a certificate request and get a certificate authority signed certificate, where to place the certificate on the server, and how to enable SSL in the Apache configuration files. As nextcloud is a web application, following these procedures will enable you to effectively use SSL, and if you choose, leverage SSL on all of your client, mobile app and web based access to the server. Just remember to close HTTP and open HTTPS on your server firewall if you would like to force all clients to use HTTPS. Desktop Clients --------------- While all OwnCloud Editions can be accessed by our desktop clients, only the Business and Enterprise Editions come with support subscriptions for the client. You can gain access to any of the clients on the http://dnextcloud.com/download website. Windows Client Installation --------------------------- - Go to http://nextcloud.com/download - Find the nextcloud Windows Client and click Download - Once downloaded, run the installation wizard Note: On some Norton Antivirus systems, Norton raises a flag on this client software. It doesn't say the software is a virus, just that it is unknown to Norton. Essentially, this is new software from nextcloud, and Norton doesn't have a record in their database for the file, so it quarantines it. It is a simple matter to remove it from the quarantine and install the client. - Once the client is installed, find the application in your Start menu, and open it. You will be notified that "There is no nextcloud connection available. Please configure one by clicking on the tray icon." In your system tray, right click on the nextcloud icon and click configure. This will take you to the "Create an nextcloud Connection" wizard. - Here you enter your nextcloud instance address and click next, and then enter your user name and password and click next. - The desktop client will attempt to conenct to your server, and if successful, will try to create the c:/users/'your user name'/nextcloud directory, and will link this directory to a new folder on the server in your account it will create called "syncclient". This is the automated setup wizard. Note: if either of these folders exist already, it will not link them for security reasons. - If you want to add folders to Sync on the server, simply right click and select "Add Folder". This will take you to the "Express Upload Source" directory, where you can select other folders to sync on your PC, and connect them to other folders you create on your server. Note: you cannot sync a parent directory, and then sync a child directory, as you would be syncing two directories that are essentially the same, which the server does not allow. >From here, any files or folders put into any synced directory will be automatically uploaded the server, and server files will automatically be downloaded to the client. If a conflict is detected, the sync client will create a file with "conflict" in the name, and you can view and determine which file to keep and which to delete. Also note, if you wish to share files, all sharing is enables through the web client. Log in to an account through a web browser, and select the files and folders to share, and they will be shared automatically with other users of nextcloud, or publicly with a read only, shared public link. Linux Client Installation ------------------------- - Go to http://nextcloud.com/download - Find the nextcloud Linux Clients and click Download - Select the operating system you are working with, the version, and click the button - Your package manager will automatically download the client and any dependencies not already installed. Remember to select to stay subscribed to the repository so that updates can be easily installed on the Linux client!!! - Once the client is installed, find the application in your Start menu, and open it. You will be notified that "There is no nextcloud connection available. Please configure one by clicking on the tray icon." In your system tray, right click on the nextcloud icon and click configure. This will take you to the "Create an nextcloud Connection" wizard. - Here you enter your nextcloud instance address and click next, and then enter your user name and password and click next. - The desktop client will attempt to connect to your server, and if successful, will try to create the /home/'your user name'/nextcloud directory, and will link this directory to a new folder on the server in your account it will create called "syncclient". This is the automated setup wizard. Note: if either of these folders exist already, it will not link them for security reasons. - If you want to remove an existing folder, or add folders to Sync to the server, simply right click on the nextcloud system try icon and select "Add Folder". This will take you to the "Express Upload Source" directory, where you can select other folders to sync on your PC, and connect them to other folders you create on your server. Note: you cannot sync a parent directory, and then sync a child directory, as you would be syncing two directories with the same content, which the server does not allow. >From here, any files or folders put into any synced directory will be automatically uploaded the server, and server files will automatically be downloaded to the client. If a conflict is detected, the sync client will create a file with "conflict" in the name, and you can view and determine which file to keep and which to delete. If you wish to share files, all sharing is enables through the web client. Log in to an account through a web browser, and select the files and folders to share, and they will be shared automatically with other users of nextcloud, or publicly with a read only, shared public link. Enjoy your own Cloud! ++++++ README.SELinux ++++++ If you are running Fedora 16 with SELinux enabled, you need to relabel the ownCloud installation directory to allow the webserver to store files there. To do that, execute the following commands as user root AFTER you installed ownCloud: # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data' # restorecon '/var/www/html/nextcloud/data' # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config' # restorecon '/var/www/html/nextcloud/config' To remove the ownCloud directory label execute the following commands as user root AFTER you uninstalled ownCloud: # semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data' # restorecon '/var/www/html/nextcloud/data' # semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config' # restorecon '/var/www/html/nextcloud/config' Note: all of the above applies only to the default policies. If you modified them, please give the webserver write-access to the directories /var/www/html/nextcloud/data and /var/www/html/nextcloud/config Note: for non-Fedora / Redhat systems running SELinux the policy might be called differently. ++++++ README.SUSE ++++++ To speed up nextcloud you should enable PHP OPcache The OPcache improves the performance of PHP applications by caching precompiled bytecode. We recommend at least following settings: Put this in this insert in /etc/php5/apache2/php.ini opcache.enable=On opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 ++++++ apache_secure_data ++++++ Alias /nextcloud "@DATAPATH@/" <Directory "@DATAPATH@"> Options +FollowSymLinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> <IfModule mod_headers.c> Header always set Referrer-Policy no-referrer Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" </IfModule> SetEnv HOME @DATAPATH@ SetEnv HTTP_HOME @DATAPATH@ </Directory> <Directory "@DATAPATH@/data/"> # just in case if .htaccess gets disabled Require all denied </Directory> Redirect 301 /ocm-provider/ /nextcloud/ocm-provider/ Redirect 301 /ocs-provider/ /nextcloud/ocs-provider/ <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^/\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L] RewriteRule ^/\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L] RewriteRule ^/\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L] RewriteRule ^/\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L] RewriteRule ^/\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L] </IfModule> ++++++ nextcloud-cron ++++++ # # Nextcloud CronJob every 5 minutes. # # Uncomment to enable it. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin #*/5 * * * * @APACHE_USER@ /usr/bin/php -f @APACHE_MYSERVERROOT@/nextcloud/cron.php /dev/null 2>&1 ++++++ nextcloud-cron.service ++++++ [Unit] Description=Nextcloud CronJob [Service] User=@APACHE_USER@ ExecStart=/usr/bin/php -f @APACHE_MYSERVERROOT@/nextcloud/cron.php [Install] WantedBy=basic.target ++++++ nextcloud-cron.timer ++++++ [Unit] Description=Nextcloud CronJob - run every 5 minutes [Timer] OnBootSec=5min OnUnitActiveSec=5min Unit=nextcloud-cron.service [Install] WantedBy=timers.target ++++++ nextcloud-rpmlintrc ++++++ # False positive addFilter('explicit-lib-dependency'); # git files should not be removed, otherwise nextcloud rise up integrity check failure in some situations. addFilter('version-control-internal-file'); addFilter('hidden-file-or-dir'); addFilter('non-etc-or-var-file-marked-as-conffile'); ++++++ robots.txt ++++++ User-agent: * Disallow: /