Nextcloud

Il est maintenant possible d’installer Nextcloud entièrement à partir de la ligne de commande. L’installation se fait en trois étapes.

Intaller en Standalone

Préparer la base de données

Nextcloud fonctionne avec Squlite3, MySQL et PostgreSQL. Ici j’utilise MySQL / MariaDB.
Commencez par vous connecter en tant qu’utilisateur root de votre base de données.

# mysql -u root -p

Création d’une base Nextcloud :

> CREATE DATABASE nextcloud;

Puis l’utilisateur associé à cette base :

> CREATE USER 'nextcloudUser'@'localhost' IDENTIFIED BY 'yourPassword';

Accordez-lui les privilèges sur la base de données précédemment créée :

> GRANT ALL ON nextcloud.* TO 'nextclouduser';

Puis flush les privilèges et sortez.

> FLUSH PRIVILEGES;
> exit;

configuration de NGINX

Fichier de configuration d’NGINX :

upstream php-handler {
#server 127.0.0.1:9000;
server unix:/run/php/php7.1-fpm.sock;
}

server {
listen 80;
server_name cloud.monDomaine.fr;
# enforce https
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl;
server_name cloud.monDomaine.fr;

# L'emplacement de vos certificats
ssl_certificate /etc/letsencrypt/live/monDomaine.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monDomaine.fr/privkey.pem;

# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;

# Path to the root of your installation
root /var/www/nextcloud/;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;

# Disable gzip to avoid the removal of the ETag header
gzip off;

# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;

index index.php
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;

rewrite ^/.well-known/carddav /remote.php/carddav/ permanent;
rewrite ^/.well-known/caldav /remote.php/caldav/ permanent;

# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}

location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}

location / {
rewrite ^/remote/(.*) /remote.php last;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ =404;
}

location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}

# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
# Optional: Don't log access to assets
access_log off;
}

# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
}

Installation de Nexcloud

Télécharger la dernière version de Nexcloud.

# wget https://download.nextcloud.com/server/releases/nextcloud-17.0.0.tar.bz2

Dézipper l’archive, il est important pour la suite de conserver le nom du répertoire en nextcloud.

# tar xvf nextcloud-17.0.0.tar.bz2

Changer les droits :

# chown -R www-data:www-data /var/www/nextcloud/

Via la ligne de commande

Utilisez la commande occ pour terminer votre installation. Cela remplace l’exécution de l’assistant d’installation graphique. La commande occ requiert l’utilsation de la commande sudo même sous Debian.

Installer sudo :

# apt install sudo

Se déplacer dans /var/www/nextcloud/ et ensuite lancer la commande occ

# cd /var/www/nextcloud/
# sudo -u www-data php occ maintenance:install --database "mysql" --database-name "nextcloud_db" --database-user "nextcloudUser" --database-pass "*P44ss*" --admin-user "admin" --admin-pass "+P44ss2+"

... (un certain temps)

Nextcloud was successfully installed

Si vous rencontrez des problèmes, tentez de mettre "nextcloudUser" en simple quote 'nextcloudUser'.

Se rendre ensuite sur son navigateur.

Via le GUI

Se rendre simplement sur https://cloud.mondomaine.ext.

Message Erreur

Nextcloud vous demandera de configurer les domaines de confiance.

Pour cela il faut modifier le fichier /var/www/nextcloud/config/config.php.

array (
#0 => 'localhost',
0 => 'cloud.monDomaine.fr',
),

Installer via Docker

@todo

Sinon voir Git

Documentation

https://nextcloud.com
https://linuxconfig.org/how-to-install-nextcloud-on-debian-9-stretch-linux
https://docs.nextcloud.com/server/17/admin_manual/installation/command_line_installation.html

> Partager <