Ceci est une ancienne révision du document !
Table des matières
Yunohost dans un container LXC
Installation du container LXC
Créer le container avec comme nom ynh
lxc-create -n ynh -t download -- -d debian -r buster -a amd64
La config du container
nano /var/lib/lxc/ynh/config
# Template used to create this container: /usr/share/lxc/templates/lxc-download # Parameters passed to the template: -d debian -r buster -a amd64 # Distribution configuration lxc.include = /usr/share/lxc/config/common.conf lxc.arch = linux64 # Container specific configuration lxc.apparmor.profile = generated lxc.apparmor.allow_nesting = 1 lxc.rootfs.path = dir:/var/lib/lxc/ynh/rootfs lxc.uts.name = ynh # Network configuration lxc.net.0.type = veth lxc.net.0.link = lxcbr0 lxc.net.0.flags = up lxc.net.0.hwaddr = 00:16:3e:dd:91:8b
Démarrer le container
lxc-start ynh
Vérifier et lister les container
lxc-ls -f
NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED ynh RUNNING 0 - 10.0.3.243 - false
Entrer dans le container
lxc-attach ynh root@ynh:~#
Taper exit pour en sortir
Configurations complémentaires de l'hôte à prendre en compte :
Config LXC
Faire marcher le système de gestion du temps, ajouter une config pour les containers LXC : Yes, every option you place in files you include in /usr/share/lxc/config/common.conf.d/ will be automatically included. So if you do something like:
nano /usr/share/lxc/config/common.conf.d/01-sys-time.conf
y ajouter
lxc.cap.drop = lxc.cap.drop = mac_admin mac_override sys_module sys_rawio
Redémarrer le container
lxc-stop ynh lxc-start ynh
Voir également les fichiers de config génériques de lxc
nano /etc/default/lxc nano /etc/default/lxc-net
Apache vhost proxy vers le container
Apache va servir de proxy pour renvoyer le traffic au container yunohost, une fois apache installé, on lui rajoute des bouts
a2enmod expires headers ssl proxy proxy_http proxy_html proxy_wstunnel
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
nano /etc/apache2/sites-available/ynh.futuretic.fr-le-ssl.conf
- ynh.futuretic.fr-le-ssl.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin tech@futuretic.fr ServerName ynh.futuretic.fr SSLEngine on SSLProxyEngine On SSLCertificateFile /etc/letsencrypt/live/ynh.futuretic.fr/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/ynh.futuretic.fr/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ProxyPreserveHost On ProxyRequests Off ProxyPass / https://ynh.futuretic.fr/ ProxyPassReverse / https://ynh.futuretic.fr/ # For WebSockets RewriteEngine on RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /(.*) wss://ynh.futuretic.fr/$1 [P,L] RequestHeader set X-Forwarded-Proto “https” RequestHeader set X-Forwarded-Port “443” #SetEnv proxy-sendchunks 1 <Proxy *> Order deny,allow Allow from all </Proxy> ErrorLog /var/log/apache2/ynh.futuretic.fr.error.log LogLevel error CustomLog /var/log/apache2/ynh.futuretic.fr.access.log vhost_combined </VirtualHost> </IfModule>
A noter le LogLevel à mettre sur debug à la place de error si debug
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
Pour débug :
coté hôte : tail -f /var/log/apache2/ynh.futuretic.fr.error.log coté ynh lxc : tail -f /var/log/yunohost/yunohost-api.log
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
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