Outils pour utilisateurs

Outils du site


yunohost_un_container_lxc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
yunohost_un_container_lxc [2020/11/25 00:51] – [Apache vhost proxy vers le container] Benjamin Labomediayunohost_un_container_lxc [2023/02/19 23:09] (Version actuelle) – [Installation de Cryptpad via Yunohost] Benjamin Labomedia
Ligne 6: Ligne 6:
 La config du container La config du container
   nano /var/lib/lxc/ynh/config   nano /var/lib/lxc/ynh/config
-<code>+<file bash config>
 # Template used to create this container: /usr/share/lxc/templates/lxc-download # Template used to create this container: /usr/share/lxc/templates/lxc-download
 # Parameters passed to the template: -d debian -r buster -a amd64 # Parameters passed to the template: -d debian -r buster -a amd64
Ligne 22: Ligne 22:
 lxc.net.0.flags = up lxc.net.0.flags = up
 lxc.net.0.hwaddr = 00:16:3e:dd:91:8b lxc.net.0.hwaddr = 00:16:3e:dd:91:8b
-</code>+</file>
 Démarrer le container Démarrer le container
   lxc-start ynh   lxc-start ynh
Ligne 34: Ligne 34:
   lxc-attach ynh   lxc-attach ynh
   root@ynh:~#   root@ynh:~#
 +Taper exit pour en sortir
  
 ===== Configurations complémentaires de l'hôte à prendre en compte : ===== ===== Configurations complémentaires de l'hôte à prendre en compte : =====
Ligne 61: Ligne 61:
 Installer un certificat https avec certbot et un vhost type Installer un certificat https avec certbot et un vhost type
  
-On constitue ensuite un vhost proxy pour le https, le http redirige systématiquement sur ce vhost+On constitue ensuite un vhost proxy pour le https, le http redirige systématiquement sur ce vhost, [[https://github.com/xwiki-labs/cryptpad/wiki/Apache|voir cette page à ce sujet à propos de cryptpad]]
   nano /etc/apache2/sites-available/ynh.futuretic.fr-le-ssl.conf    nano /etc/apache2/sites-available/ynh.futuretic.fr-le-ssl.conf 
-<code<+<file php ynh.futuretic.fr-le-ssl.conf>
 <IfModule mod_ssl.c> <IfModule mod_ssl.c>
 +
         <VirtualHost *:443>         <VirtualHost *:443>
 +
                 ServerAdmin     tech@futuretic.fr                 ServerAdmin     tech@futuretic.fr
                 ServerName      ynh.futuretic.fr                 ServerName      ynh.futuretic.fr
-                +
                 SSLEngine on                 SSLEngine on
                 SSLProxyEngine On                 SSLProxyEngine On
 + # ajout suite a default ssl handshake et suite à AH01097: pass request body failed
 + SSLProxyVerify none
 + SSLProxyCheckPeerCN off
 + SSLProxyCheckPeerName off
 + SSLProxyCheckPeerExpire off
 +
                 SSLCertificateFile /etc/letsencrypt/live/ynh.futuretic.fr/fullchain.pem                 SSLCertificateFile /etc/letsencrypt/live/ynh.futuretic.fr/fullchain.pem
                 SSLCertificateKeyFile /etc/letsencrypt/live/ynh.futuretic.fr/privkey.pem                 SSLCertificateKeyFile /etc/letsencrypt/live/ynh.futuretic.fr/privkey.pem
                 Include /etc/letsencrypt/options-ssl-apache.conf                 Include /etc/letsencrypt/options-ssl-apache.conf
   
-         ProxyPreserveHost       On+ ProxyPreserveHost       On
          ProxyRequests Off          ProxyRequests Off
 +
 +                # HSTS
 +                <IfModule mod_headers.c>
 +                        Header always set Strict-Transport-Security "max-age=15768000"
 +                </IfModule>
 +
 + # proxy pour cetificat
 + DocumentRoot /var/www/html
 + ProxyPass /.well-known !
 +
  
  ProxyPass / https://ynh.futuretic.fr/  ProxyPass / https://ynh.futuretic.fr/
  ProxyPassReverse / https://ynh.futuretic.fr/  ProxyPassReverse / https://ynh.futuretic.fr/
 + #ProxyPass "/" "https://10.0.3.243/"
 + #ProxyPassReverse "/" "https://10.0.3.243/"
  
  # For WebSockets  # For WebSockets
Ligne 103: Ligne 123:
  
 </IfModule> </IfModule>
-</code+</file
  
-A noter le LogLevel à mettre sur debug à la place de error si debug +A noter le LogLevel à mettre sur debug à la place de error si debug voir [[https://documentation.bloomreach.com/14/library/deployment/configuring/configure-apache-httpd-as-reverse-proxy-for-hippo.html|cette page pour paramètres proxy 
- +]] 
-Il faut aussi donner des règles pour transférer les websockets, sinon yunohost-api ne reçoit pas les messages par ce bias et cryptpad n'est pas content non plus+**Ajouter l'adresse à votre fichier hosts** 
 +  nano /etc/hosts 
 +  10.0.3.243 ynh.futuretic.fr
  
 +**Il faut aussi donner des règles pour transférer les websockets**, sinon yunohost-api ne reçoit pas les messages par ce bias et cryptpad n'est pas content non plus, installer aussi le module headers pour apache
 +  sudo a2enmod headers
 +  sudo systemctl restart apache2
 +  
 +**Il est nécessaire d'ajouter des paramètres pour que les [[https://serverfault.com/questions/1017710/ah00898-error-during-ssl-handshake-with-remote-server-localhost|poignées de main ssl]] se passent bien**
 + SSLProxyVerify none
 + SSLProxyCheckPeerCN off
 + SSLProxyCheckPeerName off
 + SSLProxyCheckPeerExpire off
 +  
 Pour débug : Pour débug :
    coté hôte : tail -f /var/log/apache2/ynh.futuretic.fr.error.log    coté hôte : tail -f /var/log/apache2/ynh.futuretic.fr.error.log
    coté ynh lxc :  tail -f /var/log/yunohost/yunohost-api.log    coté ynh lxc :  tail -f /var/log/yunohost/yunohost-api.log
 +   
 +Et le debuggeur du navigateur
 +==== Créer un nouveau certificat pour un sous domaine proxy vers yunohost ====
 +  nano /etc/apache2/sites-available/000-ynh2ssl.futuretic.fr.conf 
 +  cd /etc/apache2/sites-available/
 +  a2ensite 000-ynh2ssl.futuretic.fr.conf 
 +  systemctl reload apache2
 +  certbot certonly --http-01-address 135.181.129.123 -d pass.futuretic.fr
 +  a2dissite 000-ynh2ssl.futuretic.fr.conf 
 +  cp cpad.futuretic.fr.conf pass.futuretic.fr.conf
 +  cp cpad.futuretic.fr-le-ssl.conf pass.futuretic.fr-le-ssl.conf
 + 3127  nano pass.futuretic..fr.conf 
 +Remplacer cpad par pass (dans nano ctrl \ )
 +  nano pass.futuretic.fr.conf
 +  nano pass.futuretic.fr-le-ssl.conf 
 +  a2ensite pass.futuretic.fr-le-ssl.conf pass.futuretic.fr.conf
 +Ajouter à l'ip du container le sous domaine pass.futuretic.fr dans le fichier host
 +  nano /etc/hosts
 +  systemctl reload apache2
 +
 +
 +===== Installation de yunohost  dans le container LXC =====
 +**Entrer dans le container**
 +  lxc-attach ynh
 +  root@ynh:~#
 +**Installer les outils de base**
 +  apt update
 +  apt upgrade
 +  apt install curl git htop locate netcat nano nload iotop mcrypt rsync sudo unzip
 +**Lancer l'install de Yunohost**
 +  curl https://install.yunohost.org | bash
 +Suivre la procédure de post install en définissant le domaine et le password admin
 +
 +**Modif de sécu pou faire marcher le tout**
 +  nano /etc/nginx/conf.d/security.conf.inc
 +<code php>
 +# Follows the Web Security Directives from the Mozilla Dev Lab and the Mozilla $
 +# https://wiki.mozilla.org/Security/Guidelines/Web_Security
 +# https://observatory.mozilla.org/
 +#more_set_headers "Content-Security-Policy : upgrade-insecure-requests";
 +#more_set_headers "Content-Security-Policy-Report-Only : default-src https: dat$
 +#more_set_headers "X-Content-Type-Options : nosniff";
 +more_set_headers "X-XSS-Protection : 1; mode=block";
 +more_set_headers "X-Download-Options : noopen";
 +more_set_headers "X-Permitted-Cross-Domain-Policies : none";
 +more_set_headers "X-Frame-Options : SAMEORIGIN";
 +</code>
 +
 +Ci-dessus 3 lignes commentées, à voir coté sécu ce que prend en charge le apache du host et ce qui revient au nginx du container ("interférences" dans la transmission des headers et du ssl du fait de la containeurisation à maitriser)
 +
 +**Créer un premier utilisateur via le back office de yunohost** 
 +
 +==== Installation de Cryptpad via Yunohost ====
 +L'[[https://github.com/YunoHost-Apps/cryptpad_ynh|application Yunohost]] pour Cryptpad - Zero Knowledge realtime collaborative editor
 +
 +Il faut installer Cryptpad sur un (sous).domaine dédié (cpad.futuretic.fr par exemple) et depuis la version 5.2.1, il convient de créer préalablement un sous domaine pour faire la mise à jour (sandbox-cpad.futuretic.fr par exemple). Il faut alors créer le vhost dans le apache en front qui agit comme proxy, générer les certificats sur le host, créer le domaine dans yunohost situé dans le container sans avoir à créer les certificats réels
 +
 +
 +**Pour tuner la config, ça se passe là :**
 +  nano /var/www/cryptpad/config/config.js
 +<code js>
 + *
 +  CUSTOMIZE AND UNCOMMENT THIS FOR PRODUCTION INSTALLATIONS.
 + */
 +    // httpSafeOrigin: "https://some-other-domain.xyz",
 +
 +//httpSafeOrigin: "cpad.futuretic.fr",
 +
 +...
 +
 + / CryptPad can log activity to stdout
 +      This may be useful for debugging
 +     */
 +    logToStdout: false,
 +
 +
 +/*  Log levels
 +     * silly, verbose, debug, feedback, info, warn, error
 +     * This will affect both logging to the console and the disk.
 +     */
 +    logLevel: 'error',
 +...
 +</code>
 +
 +**Redémarrer le service**
 +  systemctl restart cryptpad
 +  systemctl status cryptpad
 +  journalctl -u cryptpad
 +
 +
 +==== Installation et utilisation de Borg Backup pour faire des sauvegardes entre 2 Yunohost ====
 +  * Documentation https://github.com/YunoHost-Apps/borg_ynh
 +Coté serveur A à sauvegarder, debug
 +  systemctl status borg.service
 +  journalctl -feu borg.service
 +Configuration du port et +
 +  nano /etc/yunohost/apps/borg/settings.yml 
 +
 +==== Export de tous les Pads depuis un etherpad vieillissant dans yunohost pour archivage au format markdown ====
 +Créer un répertoire de backup
 +  mkdir etherpadbackup
 +Faire une sauvegarde de la db
 +  mysqldump -u etherpad_mypads -p etherpad_mypads > /home/user/etherpadbackup/etherpaddb10102021.sql
 +Lister tous les pads de l'instance et mettre leur nom dans un fichier texte
 +  mysql -u etherpad_mypads -p etherpad_mypads -e 'select store.key from store' | grep -Eo '^pad:[^:]+'    | sed -e 's/pad://'    | sort    | uniq -c    | sort -rn    | awk '{if ($1!="2") {print $2 }}' > /home/user/etherpadbackup/pad_names.txt
 +Faire un script bash qui va créer un export au format etherpad et mardown de tous ces pads et les mettre dans un répertoire respectif
 +<code lang=bash>
 +#!/bin/sh
 +
 +# The base url to where etherpad is hosted
 +ETHERPAD_SERVER="https://pad.monserveur.org"
 +
 +while IFS= read -r line; do
 +  printf '%s\n' "$line"
 +  echo "$ETHERPAD_SERVER/p/$line/export/etherpad /home/user/etherpadbackup/etherpad/$line.etherpad"
 +  curl "$ETHERPAD_SERVER/p/$line/export/etherpad" >"/home/user/etherpadbackup/etherpad/$line.etherpad"
 +  curl "$ETHERPAD_SERVER/p/$line/export/markdown" >"/home/user/etherpadbackup/md/$line.md"
 +done < $1 
 +
 +</code>
 +Lancer le script en passant le nom de fichier contenant la liste des pads en argument :
 +  sh export_etherpad.sh pad_names.txt
 +Compresser les dossiers et les transférer en scp 
 +  tar -czvf etherpadmonserveurbackupmd.tar.gz /home/user/etherpadbackup/
 +Les fichiers au format markdown gardent +/- leur formattage quand ouvert dans l'éditeur de Nextcloud :)
 +
 +==== Installation de Opensondage dans Yunohost ====
 +Via la mécanique habituelle, petite subtilité : dans l'interface d'admin > Utilisateurs > il faut ajouter aux visiteurs anonymes la permission **" OpenSondage - Calage de date et vote (admin) "**
 +
 +Sinon à la fin de la création du sondage, les utilisateurs non loggués ne voient pas la page qui résume les liens et accès à l'admin du sondage (nénamoins envoyés par mail)
 +
 +{{ ::opensondageutilisateuradmin.png |}}
 +
 +===== Migration de Yunohost 4 Debian 10 à Yunohost 11 et Debian 11 =====
 +Ça marche à priori tout seul, [[https://yunohost.org/fr/buster_bullseye_migration|voir cette page de documentation]]
 +
 +Dans le container ynh, taper :
 +  yunohost tools migrations migrate --debug
 +
 +{{tag>bj yunohost infrastructure futuretic linux etherpad codimd opensondage}}
 +  
yunohost_un_container_lxc.1606265497.txt.gz · Dernière modification : 2020/11/25 00:51 de Benjamin Labomedia