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/).
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é.
Création de notre Base (AsustorTutoNextcloud pour moi) :
On vérifie que celle-ci apparait bien :
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 »
Vous voilà sur la page de configuration, il vous sera demandé de créer un compte Admin nextcloud :
Configuration de la partie BDD :
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
On restart apache :
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 :
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”
Extrait de Size-Monitor.log :
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
Leave a Reply