Nextcloud: Difference between revisions
No edit summary |
No edit summary |
||
(17 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Nextcloud is a self hosted cloud solution. It is | Nextcloud is a self-hosted cloud storage and file sharing solution. | ||
It is open-source under AGPL-3. | |||
==Administration== | ==Administration== | ||
===Configuration=== | |||
The primary configuration file is <code>config/config.php</code>. | |||
You can view a list of configuation parameters [https://docs.nextcloud.com/server/19/admin_manual/configuration_server/config_sample_php_parameters.html here]. | |||
I recommend adding the following to your configuation file: | |||
* <code>'simpleSignUpLink.shown' => false,</code> disables some sign up links which direct to nextcloud.com. | |||
===Moving data directory=== | ===Moving data directory=== | ||
See [https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170 https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170] | See [https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170 https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170] | ||
Nextcloud doesn't include a clean built-in way to migrate data. | |||
The ''proper'' way to do it is to fix all the paths in the Nextcloud database. However, this is slightly complicated and prone to errors. | |||
The '''easy''' way is to create a symlink: | |||
<syntaxhighlight lang="bash"> | |||
sudo -u www-data php /path/to/nextcloud/occ maintenance:mode --on | |||
mkdir -p /new/path/to/data | |||
rsync -a /path/to/data/. /new/path/to/data | |||
mv /path/to/data /path/to/dataBackup | |||
ln -s /new/path/to/data /path/to/data | |||
chown -h www-data:www-data /path/to/data # To set symlink ownership | |||
chown -R www-data:www-data /new/path/to/data # To set actual data dir ownership | |||
sudo -u www-data php /path/to/nextcloud/occ maintenance:mode --off | |||
</syntaxhighlight> | |||
===Caching=== | |||
See [https://docs.nextcloud.com/server/19/admin_manual/configuration_server/caching_configuration.html?highlight=caching Caching configuration]. | |||
You should use caching to achieve a reasonable performance. | |||
NextCloud recommends APCu for local caching and Redis for lock caching: | |||
<syntaxhighlight lang="php"> | |||
'memcache.local' => '\OC\Memcache\APCu', | |||
'memcache.distributed' => '\OC\Memcache\Redis', | |||
'memcache.locking' => '\OC\Memcache\Redis', | |||
'redis' => [ | |||
'host' => 'localhost', | |||
'port' => 6379, | |||
], | |||
</syntaxhighlight> | |||
===Troubleshooting=== | |||
====Large Files==== | |||
Rclone is useful for transferring large files over Webdav. However, you need to make sure the server is set up for it. | |||
To transfer large files, double check the following: | |||
* Apache body limit is at least 512 MB. Set the following in your Dockerfile: | |||
*: <syntaxhighlight lang="Dockerfile"> | |||
RUN echo "LimitRequestBody 0" > /etc/apache2/conf-enabled/nextcloud-apache.conf | |||
</syntaxhighlight> | |||
* Nginx does not have a body limit and is not proxying requests or responses. In ingress-nginx, set the following annotations: | |||
*:<syntaxhighlight lang="yaml"> | |||
annotations: | |||
nginx.ingress.kubernetes.io/proxy-body-size: "0" | |||
nginx.ingress.kubernetes.io/proxy-connect-timeout: "86400" | |||
nginx.ingress.kubernetes.io/proxy-read-timeout: "86400" | |||
nginx.ingress.kubernetes.io/proxy-send-timeout: "86400" | |||
nginx.ingress.kubernetes.io/proxy-buffering: "off" | |||
nginx.ingress.kubernetes.io/proxy-request-buffering: "off" | |||
</syntaxhighlight> | |||
==Markdown== | |||
NextCloud comes with its own WYSIWYG markdown editor. | |||
If you prefer to type markdown yourself, do the following: | |||
# Disable the "Text" app | |||
# Install the "Plain text editor" app | |||
# Install the "Markdown Editor" app | |||
Markdown does not have a Latex app. |
Latest revision as of 02:00, 6 July 2023
Nextcloud is a self-hosted cloud storage and file sharing solution.
It is open-source under AGPL-3.
Administration
Configuration
The primary configuration file is config/config.php
.
You can view a list of configuation parameters here.
I recommend adding the following to your configuation file:
'simpleSignUpLink.shown' => false,
disables some sign up links which direct to nextcloud.com.
Moving data directory
See https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170
Nextcloud doesn't include a clean built-in way to migrate data.
The proper way to do it is to fix all the paths in the Nextcloud database. However, this is slightly complicated and prone to errors.
The easy way is to create a symlink:
sudo -u www-data php /path/to/nextcloud/occ maintenance:mode --on
mkdir -p /new/path/to/data
rsync -a /path/to/data/. /new/path/to/data
mv /path/to/data /path/to/dataBackup
ln -s /new/path/to/data /path/to/data
chown -h www-data:www-data /path/to/data # To set symlink ownership
chown -R www-data:www-data /new/path/to/data # To set actual data dir ownership
sudo -u www-data php /path/to/nextcloud/occ maintenance:mode --off
Caching
You should use caching to achieve a reasonable performance.
NextCloud recommends APCu for local caching and Redis for lock caching:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],
Troubleshooting
Large Files
Rclone is useful for transferring large files over Webdav. However, you need to make sure the server is set up for it.
To transfer large files, double check the following:
- Apache body limit is at least 512 MB. Set the following in your Dockerfile:
RUN echo "LimitRequestBody 0" > /etc/apache2/conf-enabled/nextcloud-apache.conf
- Nginx does not have a body limit and is not proxying requests or responses. In ingress-nginx, set the following annotations:
annotations: nginx.ingress.kubernetes.io/proxy-body-size: "0" nginx.ingress.kubernetes.io/proxy-connect-timeout: "86400" nginx.ingress.kubernetes.io/proxy-read-timeout: "86400" nginx.ingress.kubernetes.io/proxy-send-timeout: "86400" nginx.ingress.kubernetes.io/proxy-buffering: "off" nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
Markdown
NextCloud comes with its own WYSIWYG markdown editor.
If you prefer to type markdown yourself, do the following:
- Disable the "Text" app
- Install the "Plain text editor" app
- Install the "Markdown Editor" app
Markdown does not have a Latex app.