Nextcloud sur Asustor

Installation NextCloud Asustor

Nous allons tout d’abord récupérer les sources de Nextcloud à l’adresse suivante : https://nextcloud.com/install/

Nous partons du principe que votre NAS Asustor a son service « Serveur web » activé.

Une fois le fichier « Nextcloud-9.0.53.zip » téléchargé, il vous faudra l’extraire et mettre le dossier Nextcloud sur le NAS dans votre répertoire partagé « /Web » (via ssh : / volume1/Web/).

Capture d’écran 2016-07-30 à 16.26.00

Une fois ce dossier nextcloud collé à la racine /Web, nous allons maintenant créer une base de donnée dédié à l’utilisation de NextCloud.

Soit via phpmyadmin :

Onglet Bases de Données -> Créer une base de données, choisir le nom de votre base Nextcloud.

Soit en se connectant en ssh sur le NAS et utilisant la ligne de commande.

On se connecte à mysql :
votre password vous sera alors demandé.

connection-mysql

Création de notre Base (AsustorTutoNextcloud pour moi) :

createdb-asustortuto

On vérifie que celle-ci apparait bien :

check-dblist

Ensuite nous allons sur l’url suivante qui nous permettra de configurer notre nextcloud :

« https://votredomaine.com/nextcloud »

Dans mon cas l’url sera « https://mondomaine.com/nextcloud2 »

url-nextcloud

Vous voilà sur la page de configuration, il vous sera demandé de créer un compte Admin nextcloud :

create-adm-nextcloud

Configuration de la partie BDD :

conf-db

Nous allons devoir adapter les droits sur le répertoire nextcloud2/ car le service apache Asustor n’utilise pas les mêmes comptes que sur des systèmes standard. Celui-ci est configuré pour utiliser : user admin / group administrators.

Voici le script :

#!/bin/bash
ncpath='/volume1/Web/nextcloud2'
htuser='admin'
htgroup='administrators'
rootuser='root'

printf "Creating possible missing Directories\n"
mkdir -p $ncpath/data
mkdir -p $ncpath/assets
mkdir -p $ncpath/updater

printf "chmod Files and Directories\n"
find ${ncpath} -type f -print0 | xargs -0 chmod 0640
find ${ncpath} -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ncpath}
chown -R ${htuser}:${htgroup} ${ncpath}/apps/
chown -R ${htuser}:${htgroup} ${ncpath}/assets/
chown -R ${htuser}:${htgroup} ${ncpath}/config/
chown -R ${htuser}:${htgroup} ${ncpath}/data/
chown -R ${htuser}:${htgroup} ${ncpath}/themes/
chown -R ${htuser}:${htgroup} ${ncpath}/updater/

chmod +x ${ncpath}/occ

printf "chmod/chown .htaccess\n"
if [ -f ${ncpath}/.htaccess ]
 then
   chmod 0644 ${ncpath}/.htaccess
   chown ${rootuser}:${htgroup} ${ncpath}/.htaccess
fi
if [ -f ${ncpath}/data/.htaccess ]
 then
   chmod 0644 ${ncpath}/data/.htaccess
   chown ${rootuser}:${htgroup} ${ncpath}/data/.htaccess
fi

Rendre le script exécutable puis on l’exécute.

chmod +x nextcloud.sh

script-nextcloud.sh

On restart apache :

apache-restart-nextcloud

Sécurité, souhaitez-vous que vos fichiers une fois créer sur nextcloud soit chiffré ?
Une application permet cela via le menu en haut à gauche dans application ensuite dans la catégorie « Désactivées » vous trouverez l’application :

encryption-module

Une fois activé il vous faudra vous déconnecter/reconnecter pour que celui-ci puisse générer votre clé permettant le chiffrement de vos fichiers.

Maintenant nous allons voir comment effectuer le backup des data Nextcloud.

Voici un petit script que je me suis écrit (je vous laisse adapter les paths à votre convenance, je n’ai pas également eu le temps de l’optimiser par exemple il manque une partie find permettant la suppression des backup ayant une date de plus de 7J etc.. mais vous pouvez récupérer cette ligne find dans mon précédent tuto VHOST).

#!/bin/bash
lgpath='/var/log/nextcloud-jobs'
ncpath='/volume1/Web/nextcloud2'
bcpath='/volume1/Backup_apps/nextcloud_bak'
extpath='/your/repository/destination/'
syslog='/usr/sbin/syslog'
date=`date +"%d%m%Y"`

# Logs of backup jobs.
echo "" > ${lgpath}/${date}.log

# On start le backup en local
rsync --log-file=${lgpath}/${date}.log -ai ${ncpath}/ ${bcpath}/${date}/

# On start le backup external utilisant un port ssh specifique
#rsync --log-file=${lgpath}/${date}.log -e "ssh -p XXXX" -ai ${ncpath}/ root@XX.XX.XX.XX:${extpath}${date}/

# On start le backup external via classic ssh port
#rsync --log-file=${lgpath}/${date}.log -ai ${ncpath}/ root@XX.XX.XX.XX:${extpath}${date}

# Size folder
repsize=/volume1/Backup_apps/nextcloud_bak/${date}/

printf "######## SIZE FOLDER ########\n" >> ${lgpath}/Size-Monitor.log
du -hs ${repsize} >> ${lgpath}/Size-Monitor.log

#var=`grep ${date} ${lgpath}/Size-Monitor.log`
# Notification
python mailnotifs.py

Comme vous pouvez le constater je fais appel à un petit script python à la fin du script backup

le voici :

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders

## For Nextcloud backup Notification During Asustor Tuto ##
mysenderaddr = "XXXXXX@XXXXX"
myreceiveraddr = "XXXXXX@XXXXX"
msg = MIMEMultipart()
msg['From'] = mysenderaddr
msg['To'] = myreceiveraddr
msg['Subject'] = "Asustor Nextcloud Backup Notification"

body = "The Backup of Your Nextcloud Apps is now done\n You found in attachement of this mail the size reporting of your nextcloud's backup.\n Best regards\n Asustor for the Win"
msg.attach(MIMEText(body, 'plain'))

filename = "Size-Monitor.log"
reporting = open("/var/log/nextcloud-jobs/Size-Monitor.log", "rb")

part = MIMEBase('application', 'octet-stream')
part.set_payload((reporting).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "reporting; filename= %s" % filename)

msg.attach(part)

server = smtplib.SMTP('ssl0.ovh.net', 587)
server.starttls()
server.login(mysenderaddr, "VOTRE MDP")
text = msg.as_string()
server.sendmail(mysenderaddr, myreceiveraddr, text)
server.quit()

Vous pourrez constater que je met en pièce jointe le fichier de log précédemment généré « Size-Monitor.log »

mail-notif

Extrait de Size-Monitor.log :

Capture d’écran 2016-07-31 à 23.56.17

Je vous laisse jeter un oeil au tuto VHOST, qui vous permettra de mettre en place votre subdomaine nextcloud tels que : https://nextcloud.votredomaine.com

<VirtualHost *:443>
    ServerName nextcloud.votredomaine.com
    DocumentRoot "/volume1/Web/nextcloud2/"
    <IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
    </IfModule>
    SSLEngine on
</VirtualHost>

Voilà nous nous arrêtons là pour aujourd’hui

see-you-soon1

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.