Mardi 6 août 2019

Olimex A20-OlinuxIno-Micro

Fichier 2017-11-28-Yunohost-yanspm-A20-Olinuxino-Micro.md

Documentation olimex

alt text

alt text

Installation Debian Jessie

Matériel

  • Carte olimex A20-OLinuXino-MICRO
  • Bloc Alimentation 10V 1A
  • Dongle Wifi/USB RT5370
  • Carte micro SD 4GO
  • SSD 128GO
  • Batterie Li-ion 3.7v 5000mAh

SDcard

SDcard créer avec les paquets debian armhf
Index of /debian/dists/buster/main/installer-armhf/current/images/netboot/SD-card-images/

  1. Télécharger firmware.A20-OLinuXino-MICRO.img.gz et partition.img.gz puis se rendre dans le répertoire contenant les fichiers
  2. Insérer le lecteur USB/SDcard, relever le périphérique par dmesg , ex /dev/sde
  3. Ecriture image sur la SDcard :
    sudo zcat firmware.A20-OLinuXino-MICRO.img.gz partition.img.gz > /dev/sde

Connexion liaison série

Utilisation module USB/Série /dev/ttyUSB0 et minicom
Insertion carte SD et mise sous tension A20-OlinuxIno-Micro
Installation :

  • Europe/France
  • Hostname : olinuxino
  • Domaine :
  • Miroir : France , ftp.fr.debian.org
  • Http Proxy :
  • Root/mp : root/ytreu49
  • Utilisateur/mp : oli/oli49
  • Partionnement
    • SDcard /boot ext2 512M
    • SSD 128GO ,LVM → / root 25Go ext4, /home 35Go ext4 ,swap 4Go
  • software to install : SSH server et standard system utilities

A la fin de l’installation,redémarrage

Connexion utilisateur oli via liaison USB/Série et minicom
Passage en super utilisateur
su
Installer sudo et modifier /etc/sudoers pour accès sans mot de passe à l’utilisateur yann

apt install sudo
echo "oli     ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

LVM

root@olinuxino:/home/oli# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home olimex -wi-ao---- <32.60g                                                    
  root olimex -wi-ao----  23.28g                                                    
  swap olimex -wi-ao----   3.72g                                                    
root@olinuxino:/home/oli# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda1  olimex lvm2 a--  59.60g    0 
root@olinuxino:/home/oli# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  olimex   1   3   0 wz--n- 59.60g    0 
root@olinuxino:/home/oli# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home olimex -wi-ao---- <32.60g                                                    
  root olimex -wi-ao----  23.28g                                                    
  swap olimex -wi-ao----   3.72g        

Les points de montage
mount | grep 'mapper\|mmc'

/dev/mapper/olimex-root on / type ext4 (rw,relatime,errors=remount-ro)
/dev/mapper/olimex-home on /home type ext4 (rw,relatime)
/dev/mmcblk0p1 on /boot type ext2 (rw,relatime,block_validity,barrier,user_xattr,acl)

Version linux et debian:
uname -a
Linux olinuxino 4.19.0-5-armmp-lpae #1 SMP Debian 4.19.37-5+deb10u1 (2019-07-19) armv7l GNU/Linux
cat /etc/debian_version
10.0

locales fr_FR.UTF-8

dpkg-reconfigure locales
Generating locales (this might take a while)...
  fr_FR.UTF-8... done
Generation complete.

Yunohost

Installation yunohost

Les DNS sont configurées de base…
Connexion sur “shuttle” en su (par console ou SSH)
Installez git

sudo apt install git

Clonez le dépôt du script d’installation de YunoHost

git clone https://github.com/YunoHost/install_script /tmp/install_script

Lancez le script d’installation

cd /tmp/install_script && sudo ./install_yunohost

Post-installation

Domaine par défaut : yanspm.com
Mot de passe administration : xxxxxx

Domaines + certificats

En mode commande
Ajout domaine ouestline.net , devel.ouestline.net et music.ouestline.net

sudo -s
yunohost domain add ouestline.net
yunohost domain add devel.ouestline.net
yunohost domain add music.ouestline.net

Certificats letsencrypt pour les domaines yanspm.com et ouestline.net
yunohost domain cert-install

Erreurs

root@yanspm:~# yunohost domain cert-install
Success! The SSOwat configuration has been generated
Error: Error registering: 400 {
  "type": "urn:acme:error:malformed",
  "detail": "Provided agreement URL [https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf] does not match current agreement URL [https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf]",
  "status": 400
}
Error: Certificate installation for yanspm.com failed !

Modifier un fichier
nano /usr/lib/moulinette/yunohost/vendor/acme_tiny/acme_tiny.py
Remplacer : “https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf”
Par : “https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf”
Puis relancer :
yunohost domain cert-install

Success! Successfully installed Let's Encrypt certificate for domain yanspm.com!
Success! Successfully installed Let's Encrypt certificate for domain ouestline.net!
Success! Successfully installed Let's Encrypt certificate for domain devel.ouestline.net!
Success! Successfully installed Let's Encrypt certificate for domain music.ouestline.net!

Clé Diffie-Hellman

Générer une clé Diffie-Hellman

sudo openssl dhparam -out /etc/ssl/private/dh4096.pem -outform PEM -2 4096  

Clé sous /etc/ssl/private ,propriétaire et droits

sudo chown root.ssl-cert /etc/ssl/private/dh4096.pem   
sudo chmod 640 /etc/ssl/private/dh4096.pem  

Modifier les fichiers de configuration des différents domaines activer Diffie-Hellmann ssl_dhparam /etc/ssl/private/dh4096.pem;

sudo -s
sed -i 's:#ssl_dhparam /etc/ssl/private/dh2048.pem;:ssl_dhparam /etc/ssl/private/dh4096.pem;:g' /etc/nginx/conf.d/yanspm.com.conf
sed -i 's:#ssl_dhparam /etc/ssl/private/dh2048.pem;:ssl_dhparam /etc/ssl/private/dh4096.pem;:g' /etc/nginx/conf.d/ouestline.net.conf
sed -i 's:#ssl_dhparam /etc/ssl/private/dh2048.pem;:ssl_dhparam /etc/ssl/private/dh4096.pem;:g' /etc/nginx/conf.d/devel.ouestline.net.conf
sed -i 's:#ssl_dhparam /etc/ssl/private/dh2048.pem;:ssl_dhparam /etc/ssl/private/dh4096.pem;:g' /etc/nginx/conf.d/music.ouestline.net.conf
exit

Vérifier syntaxe
sudo nginx -t
Recharger nginx
sudo systemctl reload nginx

IPV6

Adresse inet6 locale “shuttle” : fe80:::::f22b/64 scope link
Depuis Freebox OS 2.0, la configuration IPv6 permet de configurer des “next hops” pour 8 prefixes /64 (Autrement dit, chaque abonné Freebox dispose d’un /61).
Modifier la configuration IPV6 de la freebox
Adresse IPV6 lien local : fe80:::::aa20 Délégation de prefixe
Attention si vous configurez un Next Hop pour le premier subnet, il ne sera plus annoncé par la Freebox sur votre réseau
Prefixe : 2a01:::b270::/64
Next hop : Prefixe : 2a01:::b271::/64
Next hop : fe80:::::f22b

Configurer le réseau IPV6 /etc/network/interfaces ,ajouter

# This is an autoconfigured IPv6 interface
#iface eth0 inet6 auto
#delegation  
iface eth0 inet6 static
  address 2a01:::b271::1
  netmask 64
  post-up ip -6 route add default via fe80:::::aa20 dev eth0

Redémarrer la machine

Connexion web admin

Connexion en admin https://yanspm.com

Ajout Utilisateurs
Création yanspm
Adresse de messagerie : yanspm@yanspm.com
Création ouestline
Adresse de messagerie : ouestline@ouestline.net

Domaines

Configuration DNS yanspm.com

# Basic ipv4/ipv6 records
@ 3600 IN A 78.230.171.39
* 3600 IN A 78.230.171.39
@ 3600 IN AAAA 2a01:::b271::1
* 3600 IN AAAA 2a01:::b271::1

# XMPP
_xmpp-client._tcp 3600 IN SRV 0 5 5222 yanspm.com.
_xmpp-server._tcp 3600 IN SRV 0 5 5269 yanspm.com.
muc 3600 IN CNAME @
pubsub 3600 IN CNAME @
vjud 3600 IN CNAME @

# Mail
@ 3600 IN MX 10 yanspm.com.
@ 3600 IN TXT "v=spf1 a mx ip4:78.230.171.39 ip6:2a01:::b271::1 -all"
mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjvnlbRu0UpQW+1m+znoBdi7gEpcPmZpDv1H8BDcz5wfgP85zqlSP/4qw9STnfHa27tR9e/ySOUTGYLHik7kHkj6LK9VSEd6s17A8wUZca09bWrLNblu57IhWoRrpYuVYNsnTBUlKwh2NX/0ko+lP42ZWrqEOHugVD1Gcc/hq9YQIDAQAB"
_dmarc 3600 IN TXT "v=DMARC1; p=none"

Configuration DNS ouestline.net

# Basic ipv4/ipv6 records
@ 3600 IN A 78.230.171.39
* 3600 IN A 78.230.171.39
@ 3600 IN AAAA 2a01:::b271::1
* 3600 IN AAAA 2a01:::b271::1

# XMPP
_xmpp-client._tcp 3600 IN SRV 0 5 5222 ouestline.net.
_xmpp-server._tcp 3600 IN SRV 0 5 5269 ouestline.net.
muc 3600 IN CNAME @
pubsub 3600 IN CNAME @
vjud 3600 IN CNAME @

# Mail
@ 3600 IN MX 10 ouestline.net.
@ 3600 IN TXT "v=spf1 a mx ip4:78.230.171.39 ip6:2a01:::b271::1 -all"
mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWgwMV3B8TcOPQ97pHCbhwGPaHcayguADVCpprvp/3lEtmOrwFs5vs19/hwl8lBTz91tljsm0bde0xDmRWFsfE0HH69YU97STsYd6KIUDhWZ4pb+GcqkI5Dj+3OVk9BdXuCA+VA+Jlk2Z8a0XqlKW7rrUumh+o5abV2ZRvxgOkewIDAQAB"
_dmarc 3600 IN TXT "v=DMARC1; p=none"

Ces paramètres seront utilisés dans la mise à jour du gestionnaire de domaine (OVH)

SSH par clés

Pour éviter les blocages en sortie connexion SSH
sudo apt-get install libpam-systemd

Ajout clé publique shuttle.pub depuis poste appelant

scp ~/.ssh/shuttle_ed25519.pub yann@192.168.0.45:/home/yann

Sur le poste distant création en mode utilisateur “yann” du dossier .ssh et des droits

mkdir ~/.ssh
chmod 700 ~/.ssh

Ajout de la clé publique

cat shuttle_ed25519.pub >> ~/.ssh/authorized_keys
#modifier les droits
chmod 600 ~/.ssh/authorized_keys
#Effacer le fichier de la clé
rm shuttle_ed25519.pub

Modification fichier configuration ssh

sudo nano /etc/ssh/sshd_config
Port 55022
PermitRootLogin		no
PasswordAuthentication	no
#si délai lors d'une connexion ssh sous Linux
UseDNS no

Activer le port 55022 et désactiver le port 22 sur le parefeu yunohost

sudo yunohost firewall allow TCP 55022
sudo yunohost firewall disallow TCP 22

Relancer service SSH

sudo systemctl restart ssh

Test depuis un poste sur le réseau
ssh yann@192.168.0.45 -p 55022 -i /home/yannick/.ssh/shuttle_ed25519

Exécution script sur connexion
Exécuter un fichier utilisateur nommé $HOME/.ssh/rc si présent
Pour tous les utilisateurs exécuter un fichier nommé /etc/ssh/sshrc si présent
Installer les utilitaires curl jq figlet
sudo apt install curl jq figlet
Le batch
nano ~/.ssh/rc

#!/bin/bash

#clear
PROCCOUNT=`ps -Afl | wc -l`  		# nombre de lignes
PROCCOUNT=`expr $PROCCOUNT - 5`		# on ote les non concernées
GROUPZ=`users`
ipinfo=$(curl -s ipinfo.io) 		# info localisation format json
publicip=$(echo $ipinfo | jq -r '.ip')  # extraction des données , installer préalablement "jq"
ville=$(echo $ipinfo | jq -r '.city')
pays=$(echo $ipinfo | jq -r '.country')
cpuname=`cat /proc/cpuinfo |grep 'model name' | cut -d: -f2 | sed -n 1p`

echo "\033[0m\033[1;31m"  
figlet "yanspm.com"
echo "\033[0m
\033[1;35m    \033[1;37mHostname \033[1;35m= \033[1;32m`hostname`
\033[1;35m    \033[1;37mWired Ip \033[1;35m= \033[1;32m`ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | cut -d/ -f1`
\033[1;35m      \033[1;37mKernel \033[1;35m= \033[1;32m`uname -r`
\033[1;35m      \033[1;37mDebian \033[1;35m= \033[1;32m`cat /etc/debian_version`
\033[1;35m      \033[1;37mUptime \033[1;35m= \033[1;32m`uptime | sed 's/.*up ([^,]*), .*/1/' | sed -e 's/^[ \t]*//'`
\033[1;35m         \033[1;37mCPU \033[1;35m= \033[1;32m`echo $cpuname`
\033[1;35m  \033[1;37mMemory Use \033[1;35m= \033[1;32m`free -m | awk 'NR==2{printf "%s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'`
\033[1;35m    \033[1;37mUsername \033[1;35m= \033[1;32m`whoami`
\033[1;35m    \033[1;37mSessions \033[1;35m= \033[1;32m`who | grep $USER | wc -l`
\033[1;35m\033[1;37mPublic Ip V4 \033[1;35m= \033[1;32m`echo $publicip`
\033[1;35m\033[1;37mPublic Ip V6 \033[1;35m= \033[1;32m`ip addr show eth0 | grep -E 'inet6' |grep -E 'global' | awk '{print $2}' | cut -d/ -f1`
\033[0m"
#curl fr.wttr.in/Paris?0

Effacer motd
sudo rm /etc/motd
Déconnexion puis connexion

fstab ,ajout dossiers

Disque Sata 4To

Toutes les opérations se font en mode su
sudo -s
On va ajouter les montages sur video et yanplus
Création des points de montage

mkdir /media/{video,yanplus}

Ajout des points de montage au fichier /etc/fstab

/dev/mapper/vg--nas--one-yanplus /media/yanplus  ext4    defaults          0       2
/dev/mapper/vg--nas--one-video   /media/video    ext4    defaults          0       2

Remonter le tout

mount -a

Vérifier

ls /media/yanplus
ls /media/video

NFS serveur

Installation

on passe en mode su
sudo -s
Installation
apt install nfs-kernel-server
systemctl start nfs-kernel-server

Sécurisation

Le protocole RPC n’a pas la réputation d’être bien sécurisé, mais la version 4 de NFS entend corriger ce problème, elle est donc à privilégier. Il est déconseillé d’effectuer un partage NFS via internet, ou bien dans ce cas, opter pour un tunnel crypté.

  • S’assurer que les partages sont réservés à certaines IP dans /etc/exports
  • S’appuyer sur rpcbind (/etc/hosts.deny et /etc/hosts.allow) pour sécuriser l’accès au serveur NFS
  • Configurer convenablement iptables

Tout le monde est interdit, puis le LAN est autorisé:
nano /etc/hosts.deny

 rpcbind mountd nfsd statd lockd rquotad : ALL

nano /etc/hosts.allow

rpcbind mountd nfsd statd lockd rquotad: 192.168.0.

iptables (NFS)

Par défaut, les différents services NFS (lockd, statd, mountd, etc.) demandent des assignations de ports aléatoires à partir du portmapper (portmap/rpcbind), ce qui signifie que la plupart des administrateurs doivent ouvrir une gamme de ports dans leur base de règles de pare-feu pour que NFS fonctionne.

Il va donc falloir fixer les ports de ces services afin de créer les règles iptables.
nano /etc/default/nfs-common
STATDOPTS=”–port 32765 –outgoing-port 32766”
nano /etc/default/nfs-kernel-server
RPCMOUNTDOPTS=”-p 32767”
nano /etc/default/quota
RPCRQUOTADOPTS=”-p 32769”
sysctl --system
/etc/init.d/nfs-kernel-server restart

Nous pouvons maintenant fixer nos règles iptables:

iptables -A INPUT -s 10.11.12.0/24 -p tcp -m multiport --ports 111,2049,32764:32769 -j ACCEPT

Dans le cas d’une installation Yunohost ,commandes pour établir les règles iptables pour le serveur NFS

yunohost firewall allow TCP 111
yunohost firewall allow TCP 2049
yunohost firewall allow TCP 32764:32769

Configuration du partage

Indiquer au serveur dans le fichier /etc/exports les répertoires qui seront partagés, les machines qui y auront accès et les conditions de ce partage.
nano /etc/exports

# ' exportfs -a' : Met à jour la liste des systèmes de fichiers exportés
#
/media/yanplus   		192.168.0.0/24(rw,no_subtree_check,no_root_squash)
/media/video			192.168.0.0/24(rw,no_subtree_check,no_root_squash)

Relancer le service nfs pour la prise en charge
systemctl restart nfs-kernel-server

NFS Client Archlinux/Manjaro

Installer le paquet nfs-utils

sudo pacman -S nfs-utils

Coté client le service rpcbind est utilisé

systemctl start rpcbind
systemctl status rpcbind
systemctl enable rpcbind

Création des dossiers sur le client

mkdir -p /mnt/devel

Démarrage auto par ajout dans /etc/fstab

192.168.0.45:/media/yanplus/devel	  	/mnt/devel 	  nfs4 noauto,x-systemd.automount 0  0

Sauvegardes

PhpMail

Utilitaire /usr/local/bin/phpmail pour envoi de message

#!/usr/bin/php
<?php

/*
syntaxe:

exemple:
*/

//*** Lecture des arguments ***
    foreach ($argv as $arg) {
         $e=explode("=",$arg);
        if(count($e)==2)
            $_GET[$e[0]]=$e[1];
        else   
            $_GET[]=$e[0];
    }

//var_dump($_GET);

// Aide
if ($e[0] == "--help" || $e[0] == "-h") {
   echo 'syntaxe :'."\n".'phpmail --message="texte du message" --exe="la commande à exécuter (texte)" --subject="objet du message" --from="adresse mail expéditeur" --to="adresse mail destinataire"'."\n";
   echo 'Option "--exe" facultative ,commande à exécuter entre 2 "`"'."\n";
exit();
}

//message
$message = '';
// option --exe
if (isset($_GET["--exe"])) {
 $message = shell_exec($_GET["--exe"]);
}

// option --message
if (isset($_GET["--message"])) {
  if (empty($message)) {
    $message =  $_GET["--message"];
  } else {
    $message = $_GET["--message"]."\n".$message;
  }
}

// Envoie message uniquement si option "--exe" ou/et "--message"
if (isset($_GET["--exe"]) || isset($_GET["--message"])) {
	$headers = 'From: '.$_GET["--from"]."\r\n".'Content-Type: text/plain; charset=utf-8'."\r\n";
	mail($_GET["--to"], '=?utf-8?B?'.base64_encode($_GET["--subject"]).'?=', $message, $headers);
}
?>

Serveur de sauvegarde (backupuser)

Création utilisateur backupuser et jeu de clé ssh
sudo adduser backupuser #mot de passe à saisir
Cette commande va vous demander plusieurs informations et notamment un mot de passe à noter impérativement.
N’hésitez pas à définir un mot de passe compliqué, d’environ 16 caractères avec des chiffres, des lettres majuscule/minuscule et quelques caractères spéciaux car vous n’aurez à le taper réellement qu’une fois.

On se connecte en backupuser sudo su backupuser
On va au dossier
cd /home/backupuser
Création dossier .ssh
mkdir /home/backupuser/.ssh/
Générer les clés RSA

ssh-keygen -t rsa
chmod 400 id_rsa*       #lecture seule pour utilisateur backupuser 
exit                   # retour sur utilisateur précédent

Supprimer le lien media
sudo rm /home/backupuser/media
Copier la clé publique id_rsa.pub sur l’hôte distant

Sauvegarde des serveurs distants par rsync sur dossier /media/yanplus/sauvegarde/aujourdhui
/home/backupuser/sauvegarde.sh

#!/bin/bash
#
#echo $(date) "Effacement dossier /media/yanplus/sauvegarde/hier/" >> /home/backupuser/sauvegarde.log
#/bin/rm -rf /media/yanplus/sauvegarde/hier/ 
#echo $(date) "Copie dossier /media/yanplus/sauvegarde/aujourdhui dans /media/yanplus/sauvegarde/hier"  >> /home/backupuser/sauvegarde.log
#/bin/cp -al /media/yanplus/sauvegarde/aujourdhui /media/yanplus/sauvegarde/hier 
# serveur de sauvegarde
echo $(date) "Sauvegarde locale shuttle"  >> /home/backupuser/sauvegarde.log
/usr/bin/rsync -a --delete --exclude-from '/home/backupuser/exclude.txt' / /media/yanplus/sauvegarde/aujourdhui/shuttle &>> /home/backupuser/sauvegarde.log
echo $(date) "Fin sauvegarde locale shuttle"  >> /home/backupuser/sauvegarde.log

# hôtes distants
echo $(date) "Sauvegarde hôte distant yanfi.net"  >> /home/backupuser/sauvegarde.log
/usr/bin/rsync -aev --delete --rsync-path=/home/backupuser/rsync-wrapper.sh --exclude-from '/home/backupuser/exclude.txt' --rsh="/usr/bin/ssh -p 49022 -i /home/backupuser/.ssh/id_rsa" backupuser@yanfi.net:/ /media/yanplus/sauvegarde/aujourdhui/yanfi &>> /home/backupuser/sauvegarde.log
echo $(date) "Fin sauvegarde hôte distant yanfi.net"  >> /home/backupuser/sauvegarde.log

echo $(date) "Sauvegarde hôte distant cinay.pw"  >> /home/backupuser/sauvegarde.log
/usr/bin/rsync -aev --delete --rsync-path=/home/backupuser/rsync-wrapper.sh --exclude-from '/home/backupuser/exclude.txt' --rsh="/usr/bin/ssh -p 55027 -i /home/backupuser/.ssh/id_rsa" backupuser@cinay.pw:/ /media/yanplus/sauvegarde/aujourdhui/cinay.pw &>> /home/backupuser/sauvegarde.log
echo $(date) "Fin sauvegarde hôte distant cinay.pw"  >> /home/backupuser/sauvegarde.log

/usr/local/bin/phpmail --exe="`echo "grep -A 20 '$(date +"%-d %B %Y")' /home/backupuser/sauvegarde.log"`" --subject="Sauvegarde du $(date +"%d %B %Y")" --from="shuttle" --to="yanspm@yanspm.com"

Le fichier d’exclusion rsync pour la sauvegarde des installations linux debian
/home/backupuser/exclude.txt

dev/*
proc/*
sys/*
tmp/*
run/*
mnt/*
media/*
/home/yunohost.transmission/*
lost+found

Avant de lancer la première sauvegarde il faut initialiser la session SSH des distants

ssh -p 49022 -i /home/backupuser/.ssh/id_rsa backupuser@yanfi.net # Are you sure you want to continue connecting (yes/no)? yes ,exit
ssh -p 55027 -i /home/backupuser/.ssh/id_rsa backupuser@cinay.pw  # Are you sure you want to continue connecting (yes/no)? yes ,exit

Lancement manuel
sudo -s && cd /home/backupuser && ./sauvegarde.sh

Sauvegarde locale

Sauvegarde yunohost /home/backupuser/savyuno.sh

#!/bin/bash

DOMAINE="yanspm.com"
rm /home/backupuser/$DOMAINE.info.json
rm /home/backupuser/$DOMAINE.tar.gz
/usr/bin/yunohost backup create -n $DOMAINE
mv /home/yunohost.backup/archives/$DOMAINE.info.json /home/backupuser/
mv /home/yunohost.backup/archives/$DOMAINE.tar.gz /home/backupuser/

Aperçu du résultat sur un lancement manuel
sudo -s && cd /home/backupuser && ./savyuno

Succès ! Sauvegarde terminée
name: yanspm.com
results: 
  apps: 
    multi_webapp: Success
    multi_webapp__2: Success
    nextcloud: Success
  system: 
    conf_cron: Success
    conf_ldap: Success
    conf_nginx: Success
    conf_ssh: Success
    conf_ssowat: Success
    conf_xmpp: Success
    conf_ynh_certs: Success
    conf_ynh_currenthost: Success
    conf_ynh_firewall: Success
    conf_ynh_mysql: Success
    data_home: Success
    data_mail: Success
size: 498806502

Sauvegardes programmées (cron)

Modifier le “scheduler”
sudo crontab -e
Ajouter en fin de fichier

30 1 * * *  /home/backupuser/savyuno.sh
15 3 * * * /home/backupuser/sauvegarde.sh

La sauvegarde locale savyuno.sh démarre à 1h30m
La sauvegarde sauvegarde.sh de shuttle et des distants (yanfi.net et cinay.pw) démarre à 3h15

Applications

Pour une application web de type sub.modomaine.tld, il faut créer le domaine et lui générer des certificats SSL

Développement

Développement
Installer une application personnalisée Multi custom webapp https://github.com/YunoHost-Apps/multi_webapp_ynh
Libellé pour Multi custom webapp : Développement
Choisissez un domaine pour votre Webapp : dev.ouestline.net
Choisissez un chemin pour votre Webapp : / (il ne sera plus possible d’ajouter quoique ce soit à ce domaine)
Choisissez l’utilisateur YunoHost associé : yan spm
Créer une base de données? : Non (ne pas cocher la case)
Est-ce un site public ? : Non (ne pas cocher la case)
Vous ne pourrez pas installer d’autres applications sur dev.ouestline.net. Continuer ? OK

Dossier root web /var/www/webapp_yanspm/devel.ouestline.net/
Supprimer le dossier root
sudo rm -r /var/www/webapp_yanspm/devel.ouestline.net/
Créer un lien avec devel
sudo ln -s /media/yanplus/devel/ouestline /var/www/webapp_yanspm/devel.ouestline.net
Modifier la configuration pour ajouter fancy
sudo nano /etc/nginx/conf.d/devel.ouestline.net.d/webapp_devel.ouestline.net.conf

location / {
	alias /var/www/webapp_yanspm/devel.ouestline.net/ ;
	if ($scheme = http) {
		rewrite ^ https://$server_name$request_uri? permanent;
	}
	index index.html index.php ;
	try_files $uri $uri/ index.php;
	location ~ [^/]\.php(/|$) {
		fastcgi_split_path_info ^(.+?\.php)(/.*)$;
		fastcgi_pass unix:/var/run/php5-fpm-webapp_devel.ouestline.net.sock;
		fastcgi_index index.php;
		include fastcgi_params;
		fastcgi_param REMOTE_USER $remote_user;
		fastcgi_param PATH_INFO $fastcgi_path_info;
		fastcgi_param SCRIPT_FILENAME $request_filename;
	}

    fancyindex on;              # Enable fancy indexes.
    fancyindex_exact_size off;  # Output human-readable file sizes.
	# Include SSOWAT user panel.
	include conf.d/yunohost_panel.conf.inc;
}

Redémarrer nginx sudo systemctl reload nginx

Subsonic

Subsonic
Installer une application personnalisée Multi custom webapp https://github.com/YunoHost-Apps/multi_webapp_ynh
Libellé pour Multi custom webapp : Subsonic
Choisissez un domaine pour votre Webapp : music.ouestline.net
Choisissez un chemin pour votre Webapp : / (il ne sera plus possible d’ajouter quoique ce soit à ce domaine)
Choisissez l’utilisateur YunoHost associé : yan spm
Créer une base de données? : Non (ne pas cocher la case)
Est-ce un site public ? : Oui (cocher la case)
Vous ne pourrez pas installer d’autres applications sur music.ouestline.net. Continuer ? OK

Subsonic est installé sur un serveur debian stretch à l’adresse 192.168.0.12 port 8090

Modifier le fichier de configuration nginx
nano /etc/nginx/conf.d/music.ouestline.net.d/webapp_music.ouestline.net.conf

location / {
      proxy_pass   http://192.168.0.12:8090;
}

Recharger nginx
sudo systemctl reload nginx
Accès https://music.ouestline./net

NE PAS OUBLIER : admin Autoriser l’accès à ces dossiers de médias Music