Afficher/cacher Sommaire
Olimex A20-OlinuxIno-Micro
Fichier 2017-11-28-Yunohost-yanspm-A20-Olinuxino-Micro.md
Installation Debian Jessie
Matériel
- Carte olimex A20-OLinuXino-MICRO
- Bloc Alimentation 10V 1A
-
Dongle Wifi/USB RT5370 - Carte micro SD 4GO
- HDD NAS 4To
-
Batterie Li-ion 3.7v 5000mAh
SDcard
SDcard créer avec les paquets debian armhf
Index of /debian/dists/jessie/main/installer-armhf/current/images/netboot/SD-card-images/
sudo -s
cd ~/media/dplus/iso/jessie
#Insérer le lecteur USB/SDcard
dmesg #relever le périphérique ,ici /dev/sdb
#Ecriture image
zcat firmware.A20-OLinuXino-MICRO.img.gz partition.img.gz > /dev/sdb
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 : shuttle
- Domaine :
- Miroir : France , ftp.fr.debian.org
- Http Proxy :
- Utilisateur : yann
- Partionnement
- SDcard /boot ext2 512M
- HDD NAS SATA 4To (alimentation +12v et +5v) , / root 30Go ext4, /home 80Go ext4 ,swap 4Go
- software to install : SSH server et standard system utilities
A la fin de l’installation,redémarrage
Connexion utilisateur yann via liaison USB/Série et minicom
Passage en super utilisateur
su
Les points de montage
mount
/dev/mapper/vg--nas--one-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/vg--nas--one-home on /home type ext4 (rw,relatime,data=ordered)
/dev/mmcblk0p1 on /boot type ext2 (rw,relatime)
Version linux et debian:
Linux shuttle 3.16.0-4-armmp-lpae #1 SMP Debian 3.16.43-2+deb8u5 (2017-09-19) armv7l GNU/Linux
8.9
locales
dpkg-reconfigure locales
Generating locales (this might take a while)...
fr_FR.UTF-8... done
Generation complete.
Installer sudo et modifier /etc/sudoers pour accès sans mot de passe à l’utilisateur yann
apt install sudo
echo "yann ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
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 (sous-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 "A20-Olinuxino"
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"
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) "Sauvegarde locale yanspm.com" >> /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 yanspm.com" >> /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 (yunohost backup)
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 yanspm.com 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
Site privée https://dev.ouestline.net avec visualisation des dossiers et sous-dossiers (nginx fancyindex)
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
Site accès publique https://music.ouestline.net ,proxy sur serveur subsonic
Les accès au serveur subsonic se font avec un login/mot de passe
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
Outils
tmux
sudo apt update && sudo apt install tmux
Documentation markdown
Le site privée https://md.ouestline.net contient essentiellement des documents au format “mardown” qui peuvent être affichés au format html avec le “viewer” mdwiki
Installer un domaine md.ouestline.net
Certificats SSL
Site doc md
Installer une application personnalisée Multi custom webapp https://github.com/YunoHost-Apps/multi_webapp_ynh
Libellé pour Multi custom webapp : Yansmp-Md
Choisissez un domaine pour votre Webapp : md.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 md.ouestline.net. Continuer ? OK
Dossier root web /var/www/webapp_yanspm/md.ouestline.net/
Supprimer le dossier root
sudo rm -r /var/www/webapp_yanspm/md.ouestline.net/
Créer un lien avec le dossier yanspm-md
sudo ln -s /media/yanplus/yanspm-md /var/www/webapp_yanspm/md.ouestline.net
Modifier la configuration pour ajouter fancy
sudo nano /etc/nginx/conf.d/md.ouestline.net.d/webapp_md.ouestline.net.conf
location / {
alias /var/www/webapp_yanspm/md.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_md.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;
}
NOTE : Le dossier /var/www/webapp_yanspm/md.ouestline.net/ contient un manageur de fichiers dans index.php et un “viewer markdown” mdwiki.html
Redémarrer nginx
sudo systemctl reload nginx
Calibre-Web
Calibre Web est une application web fournissant une interface propre pour la navigation, la lecture et le téléchargement de livres électroniques à l’aide d’une base de donnéesCalibre existante.
Installation application **calibre-web** dans le répertoire **/home/yann**
cd $HOME
git clone https://github.com/janeczku/calibre-web.git
cd calibre-web
# installation des prérequis
pip install --target vendor -r requirements.txt
cd ..
# déplacer vers **/opt**
sudo mv calibre-web /opt/
# les droits
sudo chown $USER. -R /opt/calibre-web/
Utilisation fichier systemd pour le lancement automatique
sudo nano /etc/systemd/system/calibre-web.service
Contenu du fichier
[Unit]
Description=Service calibre-web
After=network.target
[Service]
Type=simple
User=yann
ExecStart=/usr/bin/python /opt/calibre-web/cps.py
[Install]
WantedBy=multi-user.target
ATTENTION! , User est l’utilisateur connecté ($USER)
Lancer le service calibre-web :
sudo systemctl start calibre-web
Vérifier:
sudo systemctl status calibre-web
● calibre-web.service - Service calibre-web
Loaded: loaded (/etc/systemd/system/calibre-web.service; disabled)
Active: active (running) since jeu. 2018-01-11 13:27:10 CET; 9s ago
Main PID: 2623 (sh)
CGroup: /system.slice/calibre-web.service
├─2623 /bin/sh /opt/calibre-web/start_calibre-web.sh
└─2624 python cps.py
janv. 11 13:27:10 yanspm.com systemd[1]: Started Service calibre-web.
Activation
sudo systemctl enable calibre-web
Yunohost
Calibre-Web
Installer une application personnalisée Multi custom webapp https://github.com/YunoHost-Apps/multi_webapp_ynh
Libellé pour Multi custom webapp : Calibre Web
Choisissez un domaine pour votre Webapp : calibre.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 calibre.ouestline.net. Continuer ? OK
Dossier root web /var/www/webapp_yanspm/calibre.ouestline.net/
Sauver et modifier la configuration, créer un proxy pour l’application calibre-web
sudo mv /etc/nginx/conf.d/calibre.ouestline.net.d/webapp_calibre.ouestline.net_.conf /etc/nginx/conf.d/calibre.ouestline.net.d/webapp_calibre.ouestline.net_.conf.sav
sudo nano /etc/nginx/conf.d/calibre.ouestline.net.d/webapp_calibre.ouestline.net_.conf
location / {
proxy_pass http://127.0.0.1:8083;
}
Redémarrer nginx
sudo systemctl reload nginx
Premier lancement ,accès à la configuration https://calibre.ouestline.net/config
Renseigner “Location of Calibre database” : /media/yanplus/BiblioCalibre puis cliquer sur submit
Si le chemin est correct , cliquer sur le bouton login : Username: admin , Password: admin123 et submit
Paramétrage , cliquer sur Admin (pas sur admin avec le a minuscule)
Cliquer sur Add new user
Username : yann
Email address : yann@ouestline.net
Password : xxxxxx
Kindle email:
Language : français
Show books with language : ALL
Cliquer sur submit
Droits admin sur yann
Modifier admin , cliquer sur admin
delete this user
Cliquer sur submit
Se connecter avec yann pour vérifications