Blob Blame History Raw
nextcloud packaging notes
========================

Start
------
After installation you should be able to access the login/configuration page
at the following URL:

http://localhost/nextcloud/

If not, make sure your webserver is running properly.

Webserver
---------
Currently nextcloud in Fedora supports httpd (Apache) and nginx. You must install
at least one webserver subpackage (nextcloud-<webserver>). These packages
include additional configuration files for the webservers. Remote access is
disabled by default on httpd. To enable access from any host for Apache **AFTER** you
complete the initial setup process, do this:

ln -s /etc/httpd/conf.d/nextcloud-access.conf.avail /etc/httpd/conf.d/z-nextcloud-access.conf

If you wish to adjust any of the settings it is recommended that you create
a new configuration file that will override nextcloud.conf, rather than editing
it, so future changes to the packaged file will be respected on your server.
If you do not do this, please be careful to check for changes in the packaged
configuration file (especially on major nextcloud upgrades) and merge into
your modified configuration as appropriate.

Database
--------
You can choose between three databases: MySQL, PostgreSQL and SQLite.
For each of them there is an nextcloud subpackage (nextcloud-<database>).
You are required to install at least one of them. The packages only ensure
the necessary requirements to communicate with a database server of that type
are installed, they do not require the database server package itself, as
you may wish to use a remote database server. If you wish to use a local one,
you must ensure it is installed and configured.

For larger installs you should use MySQL or PostgreSQL.

If you choose MySQL or PostgreSQL, keep in mind that you must create a database
and user for nextcloud manually, before you can finish the setup process. The
README.postgresql and README.mysql files provide more details and help with
this.

In addition if using a remote database then then selinux must be configured to
allow the webserver to connect to it - see the selinux section further down.

Configuration
-------------
You can find the main configuration file at '/etc/nextcloud/config.php'. Until
you first access the server it will be just a small stub containing settings
that differ in this package from the upstream defaults. After you first access
nextcloud, the initial setup process will populate it with some more settings.
Other settings that can be provided in this file are documented at:
https://docs.nextcloud.com/server/10/admin_manual/configuration_server/config_sample_php_parameters.html

User Data
---------
The default data directory is '/var/lib/nextcloud/data'. Every file that is
uploaded by your users to nextcloud gets saved into this folder. Consider doing
a backup of this directory, together with the database and the main
configuration. Note that if you change this location, you must set appropriate
ownership and SELinux context attributes.

Logging
-------
As specified by the configuration file, nextcloud sends messages to the system
logger, which means in a standard Fedora configuration it will log to the
systemd journal: try "journalctl -b -t Nextcloud". You can also change the
loglevel or switch to the built-in log mechanism of nextcloud.

App Store
---------
If you install additional third party apps using the built-in app store, you
can find them in the directory '/var/lib/nextcloud/apps'. This functionality is
enabled by default. If this is moved then it's important to configure httpd/nginx
appropriately for the correct /nextcloud/apps-appstore path to alias to the new location.

The app store URL is coded into the core php and does not need to be listed in config.php

If there are any empty proxy entries in config.php this will prevent connectivity to the store.
If not using a proxy it is important to remove any proxy entries from config.php, not just be ""

Selinux Booleans
----------------
If you want to use external files (eg remote smb/cifs server) the httpd_can_network_connect
selinux boolean should be toggled on. If you want to use libreoffice document conversion
then the httpd_execmem should be toggled on and the unoconv package should be installed.

If not using an external file source but still using an external database then the boolean
httpd_can_network_connect_db should be toggled on for access to regular DB ports. The general
network connect can alternatiely be used for non-standard ports or for a broader permission
in case of future external files requirements.

Memory caching
--------------
For performance reasons a memory cache should be configured. In larger installs redis
may be required but as a basic lightweight alternative edit config.php as per upstream
documentation and install ACPu via:

dnf install 'php-pecl(apcu)'

For further information see http://nextcloud.org/ and http://doc.nextcloud.org/

Scheduling Background Jobs
--------------------------
The default behaviour is to use the AJAX webcron, however this is fairly inefficient and does not scale very well.

It's recommended to set the option "Cron" to use the system scheduler and to enable the included systemd timer.

systemctl enable --now nextcloud-cron.timer

Migration from owncloud
-----------------------

For detailed instructions on this please read MIGRATION.fedora