mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
f1ac252020
* fix PHP error when running occ as per https://forum.yunohost.org/t/solved-using-occ-command-on-nextcloud/19788/5 * Add link to Python regex doc which is specific on some points
206 lines
7.3 KiB
Markdown
206 lines
7.3 KiB
Markdown
---
|
|
title: Nextcloud
|
|
template: docs
|
|
taxonomy:
|
|
category: docs, apps
|
|
routes:
|
|
default: '/app_nextcloud'
|
|
---
|
|
|
|
![Nextcloud's logo](image://nextcloud_logo.png)
|
|
|
|
Nextcloud is a file hosting service, many applications can be installed to offer it new features such as a calendar, a directory, notes and many others (you can find some applications in the [third-party applications](#AppsTiers) part but there are many others depending on your needs).
|
|
|
|
## Discovering the Nextcloud environment <a name="EnvironmentNextcloud" href=""></a>
|
|
|
|
Due to the creation of Nextcloud, a database with third-party applications to install, this chapter will only concern the nextcloud database without added applications. More information on applications in the dedicated section or in the nextcloud application catalogue: [apps.nextcloud.com](https://apps.nextcloud.com).
|
|
Nextcloud is first and foremost a cloud service (like Seafile and others), it allows synchronization and file sharing on the Internet and between several terminals (computers, smartphone) but also with several people.
|
|
|
|
## Mobile and computer client software <a name="ClientSoftware" href=""></a>
|
|
|
|
There are client software for all platforms. You can find them on the official nextcloud website: https://nextcloud.com/install/#install-clients
|
|
|
|
## Useful Manipulations & Problems Encountered <a name="UtileManipulations" href=""></a>
|
|
|
|
### Add storage space <a name="AddSpace" href=""></a>
|
|
|
|
Solution I. allows you to add a link to a local or remote folder.
|
|
Solution II. allows to move the main storage space of Nextcloud.
|
|
|
|
#### I. Add an external storage space
|
|
|
|
Parameter =>[Administration] External storage.
|
|
|
|
At the bottom of the list you can add a folder (It is possible to define a subfolder using the `folder/subfolder` convention.)
|
|
Select a storage type and specify the requested connection information.
|
|
You can restrict this folder to one or more nextcloud users with the column `Available for`.
|
|
With the gear you can allow or prohibit previewing and file sharing.
|
|
Finally click on the check mark to validate the folder.
|
|
|
|
#### II. Migrate Nextcloud data to a larger partition
|
|
|
|
**Note**: The following assumes that you have a hard disk mounted on `/media/storage`. Refer to[this article](/external_storage) to prepare your system.
|
|
|
|
**Note**: Replace `nextcloud` with the name of its instance, if you have several Nextcloud apps installed.
|
|
|
|
First turn off the web server with the command:
|
|
```bash
|
|
systemctl stop nginx
|
|
```
|
|
|
|
##### Choice of location
|
|
|
|
**Case A: Blank storage, exclusive to Nextcloud**
|
|
|
|
For the moment only root can write to it in `/media/storage`, which means that NGINX and Nextcloud will not be able to use it.
|
|
|
|
```bash
|
|
chown -R nextcloud:nextcloud /media/storage
|
|
chmod 775 -R /media/storage
|
|
```
|
|
|
|
**Case B: Shared storage, data already present, Nextcloud data in a subfolder**
|
|
|
|
If you want to use this disk for other applications, you can create a subfolder belonging to Nextcloud.
|
|
|
|
```bash
|
|
mkdir -p /media/storage/nextcloud_data
|
|
chown -R nextcloud /media/storage/nextcloud_data
|
|
chmod 775 -R /media/storage/nextcloud_data
|
|
```
|
|
|
|
##### Migrate data
|
|
|
|
Migrate your data to the new disk. To do this *(be patient, it can take a long time)*:
|
|
|
|
```bash
|
|
Case A: cp -ia /home/yunohost.app/nextcloud /media/storage
|
|
Case B: cp -ia /home/yunohost.app/nextcloud /media/storage/nextcloud_data
|
|
```
|
|
|
|
The `i` option allows you to ask yourself what to do if there is a file conflict, especially if you overwrite an old Owncloud or Nextcloud data folder.
|
|
To check that everything went well, compare what these two commands display (the content must be identical):
|
|
|
|
```bash
|
|
ls -la /home/yunohost.app/nextcloud
|
|
|
|
Case A: ls -al /media/storage
|
|
Case B: ls -al /media/storage/nextcloud_data/nextcloud
|
|
```
|
|
|
|
##### Configure Nextcloud
|
|
|
|
To inform Nextcloud of its new directory, modify the `/var/www/nextcloud/config/config.php` file with the command:
|
|
|
|
```bash
|
|
nano /var/www/nextcloud/config/config.php
|
|
```
|
|
|
|
Look for the line:
|
|
|
|
```bash
|
|
'datadirectory' => '/home/yunohost.app/nextcloud/data',
|
|
```
|
|
|
|
That you modify:
|
|
|
|
```bash
|
|
CASE A:'datadirectory' =>'/media/storage',
|
|
CASE B:'datadirectory' =>'/media/storage/nextcloud_data/nextcloud/data',
|
|
```
|
|
|
|
Save it with `ctrl+x` then `y` or `o` (depending on your server locale).
|
|
|
|
Restart the web server:
|
|
|
|
```bash
|
|
systemctl start nginx
|
|
```
|
|
|
|
Add the.ocdata file
|
|
```bash
|
|
CASE A: nano /media/storage/.ocdata
|
|
CASE B: nano /media/storage/nextcloud_data/nextcloud/data/.ocdata
|
|
```
|
|
Add a space to the file to be able to save it
|
|
|
|
Back up with `ctrl+x` then `y` or `o` (depending on your server locale).
|
|
|
|
Run a scan of the new directory by Nextcloud:
|
|
|
|
```bash
|
|
cd /var/www/nextcloud
|
|
sudo -u nextcloud php8.1 --define apc.enable_cli=1 files:scan --all
|
|
```
|
|
|
|
Update the YunoHost setting, so automatic upgrades and backups know where the datadir is located:
|
|
```bash
|
|
Case A: yunohost app setting nextcloud datadir -v /media/storage
|
|
Case B: yunohost app setting nextcloud datadir -v /media/storage/nextcloud_data/nextcloud/data/
|
|
```
|
|
|
|
It's over now. Now test if everything is fine, try connecting to your Nextcloud instance, upload a file, check its proper synchronization.
|
|
|
|
### Nextcloud and Cloudflare
|
|
|
|
If you use Cloudflare for your DNS, *which may be useful if you have a dynamic IP*, you will most likely have authentication problems with the Nextcloud application. On the Internet many people propose to create a rule that disables all options related to security and Cloudflare speed for the URL pointing to your Nextcloud instance. Although it works, it is not the optimal solution. I propose, certainly to create a rule for the URL pointing to your Nextcloud instance but to disable only 2 options. So here's how:
|
|
|
|
#### Cloudflare Page Rules
|
|
|
|
In the Cloudflare control panel select your domain and find Page Rules
|
|
the URL in your address bar will look like this: https://dash.cloudflare.com/*/domain.tld/page-rules
|
|
|
|
##### Add a rule
|
|
|
|
The rule to be added must apply to the URL of your Nextcloud instance either:
|
|
|
|
- `https://nextcloud.domain.tld/**` if you use a subdomain
|
|
- `https://domain.tld/nextcloud/*` if you have deployed Nextcloud in a directory
|
|
|
|
The options to disable (Off) are:
|
|
|
|
- Rocket Loader
|
|
- Email Obfuscation
|
|
|
|
Save and clean your caches (Cloudflare, browser...) and that's it.
|
|
|
|
## About Keeweb
|
|
|
|
The KeeWeb application is a password manager integrated into Nextcloud. For example, it allows you to read a KeePass file (*.kdbx*) stored on your Nextcloud instance.
|
|
But sometimes Nextcloud does not let the application support these files, which makes it impossible to read them from KeeWeb. To remedy this,
|
|
[a solution](https://github.com/jhass/nextcloud-keeweb/blob/master/README.md#mimetype-detection) exists.
|
|
|
|
Go to the Nextcloud configuration directory:
|
|
|
|
```bash
|
|
cd /var/www/nextcloud/config/
|
|
```
|
|
|
|
If it does not exist, create the *mimetypemapping.json* file whose owner is the user *nextcloud* :
|
|
|
|
```bash
|
|
sudo su nextcloud -c "nano mimetypemapping.json"
|
|
```
|
|
|
|
Then add in this file the following text:
|
|
|
|
```bash
|
|
{
|
|
"kdbx": ["x-application/kdbx"]
|
|
}
|
|
```
|
|
|
|
Save the file (**CTRL** + **o**) and exit nano (**CTRL** + **c**).
|
|
|
|
Then run a scan by executing next command as root:
|
|
|
|
```bash
|
|
sudo -u nextcloud php8.1 --define apc.enable_cli=1 files:scan --all
|
|
```
|
|
|
|
Now the problem is fixed.
|
|
|
|
## Useful links <a name="UsefulLinks" href=""></a>
|
|
|
|
- Official website: [nextcloud.com](https://nextcloud.com/)
|
|
- Application catalogue for Nextcloud: [apps.nextcloud.com](https://apps.nextcloud.com/)
|