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édentes Révision précédente
Prochaine révision
Révision précédente
linux_weblate [2019/12/10 14:54] – [Installation] nekanlinux_weblate [2021/03/05 16:27] (Version actuelle) nekan
Ligne 1: Ligne 1:
-~CLOSETOC~~ 
 ====== Weblate - Outil de traduction collaboratif ====== ====== Weblate - Outil de traduction collaboratif ======
 +<label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/12/10 16:38//
  
 Weblate (pour "Web" et "Translate") est une plateforme de gestion d'outils de traduction en mode collaboratif permettant la traduction de documents de multiples formats et sur différents outils orientés Web. Weblate (pour "Web" et "Translate") est une plateforme de gestion d'outils de traduction en mode collaboratif permettant la traduction de documents de multiples formats et sur différents outils orientés Web.
Ligne 6: Ligne 6:
   * Référence : [[https://docs.weblate.org/en/latest/index.html|Weblate]]   * Référence : [[https://docs.weblate.org/en/latest/index.html|Weblate]]
  
-<note warning>Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes.</note>+<callout type="danger" icon="true" title="Droits">Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes.</callout>
  
-<note>Cette procédure a été réalisé sur une débian 9.8</note>+<callout type="primary" icon="true" title="Environnement">Cette procédure a été réalisé sur une débian 9.8 et un Weblate en version 3.9.1.</callout>
  
 ===== Prérequis ===== ===== Prérequis =====
Ligne 15: Ligne 15:
   * 2 Go de RAM   * 2 Go de RAM
   * 2 coeurs niveau CPU   * 2 coeurs niveau CPU
-  * 1 GO d'espace libre+  * 1 Go d'espace libre
  
 On commencera par installer les paquets nécessaires pour démarrer l'installation : On commencera par installer les paquets nécessaires pour démarrer l'installation :
Ligne 25: Ligne 25:
 apt-get -y install docker-ce docker-compose</sxh> apt-get -y install docker-ce docker-compose</sxh>
  
-<note important>Attention à la ligne 4. L'architecture, symbolisée par ''[arch=amd64]'', peut varier selon votre environnement.</note>+<callout type="warning" icon="true" title="Architecture">Attention à la ligne 4. L'architecture, symbolisée par ''[arch=amd64]'', peut varier selon votre environnement.</callout>
  
 ===== Installation ===== ===== Installation =====
Ligne 39: Ligne 39:
  
   * Dans ce fichier, de type YAML, on va y ajouter les informations personnalisées suivantes :   * Dans ce fichier, de type YAML, on va y ajouter les informations personnalisées suivantes :
-    * **ports** : indique en premier le port d'écoute sur l'hôte et en second, le port d'écoute traduit dans le conteneur.+    * **ports** : indique en premier le port d'écoute sur l'hôte et en second, le port d'écoute traduit dans le conteneur. Généralement, on indiquera une première ligne pour le protocole HTTP et une seconde pour le protocole HTTPS.
     * **WEBLATE_EMAIL_HOST** : indique le serveur SMTP pour les notifications de weblate.     * **WEBLATE_EMAIL_HOST** : indique le serveur SMTP pour les notifications de weblate.
     * **WEBLATE_EMAIL_HOST_USER** : en cas d'authentification nécessaire pour l'utilisation du serveur SMTP, indique le nom à utiliser.     * **WEBLATE_EMAIL_HOST_USER** : en cas d'authentification nécessaire pour l'utilisation du serveur SMTP, indique le nom à utiliser.
Ligne 48: Ligne 48:
     * **WEBLATE_ADMIN_PASSWORD** : indique le mot de passe de l'administrateur de weblate. Si cette directive est absente, un mot de passe créée automatiquement par le système sera utilisé et affiché durant l'installation.     * **WEBLATE_ADMIN_PASSWORD** : indique le mot de passe de l'administrateur de weblate. Si cette directive est absente, un mot de passe créée automatiquement par le système sera utilisé et affiché durant l'installation.
     * **WEBLATE_ADMIN_EMAIL** : indique l'adresse mail de l'administrateur.     * **WEBLATE_ADMIN_EMAIL** : indique l'adresse mail de l'administrateur.
 +    * **WEBLATE_REQUIRE_LOGIN** : définie à 1, cette directive permet de forcer les utilisateurs à se connecter et interdit la navigation anonyme. 
   * Cela donne un fichier de ce style :   * Cela donne un fichier de ce style :
 <sxh yaml>version: '2' <sxh yaml>version: '2'
Ligne 54: Ligne 55:
     ports:     ports:
       - 80:8080       - 80:8080
 +      - 443:4443
     environment:     environment:
       WEBLATE_EMAIL_HOST: smtp.shyrkasystem.com       WEBLATE_EMAIL_HOST: smtp.shyrkasystem.com
Ligne 63: Ligne 65:
       WEBLATE_ADMIN_PASSWORD: Azerty123       WEBLATE_ADMIN_PASSWORD: Azerty123
       WEBLATE_ADMIN_EMAIL: weblate.admin@shyrkasystem.com       WEBLATE_ADMIN_EMAIL: weblate.admin@shyrkasystem.com
 +      WEBLATE_REQUIRE_LOGIN: 1
 </sxh> </sxh>
 +
 +  * Pour pouvoir utiliser le protocole HTTPS, il faut disposer d'un certificat. Pour l'exemple, j'ai utilisé un certificat auto-signé.
 +    * Référence : [[snakeoil|Créer un certificat auto-signé]]
 +    * Référence : [[crt2pem|Convertir un certificat CRT et PEM]]
 +  * On crée dans le volume du docker (pour moi, il se trouve dans ''/var/lib/docker/volumes/weblatedocker_weblate-data/_data/'' mais cela peut varier selon les systèmes), un dossier ''ssl''
 +  * On copie dans ce dossier, le certificat sous le nom ''fullchain.pem'' et la clé privée correspondante sous le nom ''privkey.key''.
 +
 +<callout type="warning" icon="true" title="Propriété">Vérifier bien, après votre copie, que les fichiers ont bien les mêmes propriétaires et groupes que les autres fichiers du volumes, sinon nginx ne démarrera pas. </callout>
 +
 +  * On construit le docker :
 +<sxh bash>docker-compose -f docker-compose.yml -f docker-compose.override.yml build</sxh>
  
   * Il nous reste plus qu'à lancer le déploiement de weblate via la commande :   * Il nous reste plus qu'à lancer le déploiement de weblate via la commande :
-<sxh bash>docker-compose up</sxh>+<sxh bash>docker-compose -f docker-compose.yml -f docker-compose.override.yml up</sxh>
  
   * Le système va désormais télécharger les composant de weblate et monter le conteneur.   * Le système va désormais télécharger les composant de weblate et monter le conteneur.
-  * Une fois terminée+  * Une fois terminée, le site est accessible via l'url indiqué dans **WEBLATE_ALLOWED_HOSTS**. Cette url devra bien sûr avoir été préalablement renseignée dans le DNS ou le fichier hosts. 
 + 
 +<image shape="thumbnail">{{ :linux:weblate:weblate_001.png |}}</image> 
 + 
 +<callout type="success" icon="true" title="Installation">Félicitations !!! Weblate est désormais installé. Il ne vous reste plus qu'à le paramétrer selon vos besoins.</callout> 
 + 
 +===== Restriction d'accès ===== 
 + 
 +Tel quel, weblate est accessible via une adresse IP et n'importe qui peut se connecter après avoir créer un compte. L'administrateur n'a pas de moyen d'empêcher cette création, il peut simplement supprimer les comptes créés après coup. Du coup, on est pas à l'abri des trolls... 
 + 
 +Une bonne solution est de limiter l'accès à weblate via un contrôle d'accès au niveau du serveur web (htaccess). 
 + 
 +Pour celà, on va apporter quelques modifications à la configuration de weblate (fichier ''docker-compose.override.yml'') qui ressemblera à ça : 
 +<sxh yaml>version: '2' 
 +services: 
 +  weblate: 
 +    ports: 
 +      - 127.0.0.1:8080:8080 
 +      - 127.0.0.1:4443:4443 
 +    environment: 
 +      WEBLATE_EMAIL_HOST: smtp.shyrkasystem.com 
 +      WEBLATE_EMAIL_HOST_USER: user 
 +      WEBLATE_EMAIL_HOST_PASSWORD: password 
 +      WEBLATE_SERVER_EMAIL: weblate@shyrkasystem.com 
 +      WEBLATE_DEFAULT_FROM_EMAIL: weblate@shyrkasystem.com 
 +      WEBLATE_ALLOWED_HOSTS: weblate.shyrkasystem.com,localhost,127.0.0.1 
 +      WEBLATE_ADMIN_PASSWORD: Azerty123 
 +      WEBLATE_ADMIN_EMAIL: weblate.admin@shyrkasystem.com 
 +      WEBLATE_REQUIRE_LOGIN:
 +</sxh> 
 + 
 +Avec cette configuration, le site n'est plus accessible qu'à partir de l'adresse ''http://127.0.0.1:8080''. On met alors en place un serveur apache pour le proxy : 
 + 
 +  * On installe les paquets nécessaires : 
 + 
 +<sxh bash>apt-get update 
 +ap-get install apache2</sxh> 
 + 
 +  * On active les modules nécessaires : 
 + 
 +<sxh bash>a2enmod ssl proxy proxy_http</sxh> 
 + 
 +  * On crée le fichier de configuration correspondant à notre site : 
 + 
 +<sxh bash>nano /etc/apache2/sites-available/weblate.conf</sxh> 
 + 
 +  * On ajoute la configuration suivante à notre fichier : 
 + 
 +<sxh bash><IfModule mod_ssl.c> 
 +        <VirtualHost *:443> 
 +                ServerAdmin             admin@shyrkasystem.com 
 +                ServerName              weblate.shyrkasystem.com 
 + 
 +                <Location /> 
 +                        AuthName        "Restricted Access" 
 +                        AuthType        Basic 
 +                        AuthUserFile    /usr/local/htpasswd.weblate 
 +                        Require         valid-user 
 +                </Location> 
 + 
 +                SSLEngine               On 
 +                SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem 
 +                SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key 
 + 
 +                ProxyPreserveHost       On 
 +                ProxyRequests           Off 
 +                ProxyPass               / https://127.0.0.1:4443/ 
 +                ProxyPassReverse        / https://127.0.0.1:4443/ 
 +                SSLProxyEngine          On 
 +                SSLProxyVerify          None 
 +                SSLProxyCheckPeerCN     Off 
 +                SSLProxyCheckPeerName   Off 
 +                SSLProxyCheckPeerExpire Off 
 + 
 +        </VirtualHost> 
 +</IfModule></sxh> 
 + 
 +  * On crée le fichier htpasswd.weblate (remplacez ''admin'' par le login que vous voulez utiliser) et on renseigne le mot de passe nécessaire au login choisi : 
 + 
 +<sxh bash>htpasswd -c /usr/local/htpasswd.weblate admin</sxh> 
 + 
 +  * On active le site et on recharge le service apache : 
 + 
 +<sxh bash>a2ensite weblate.conf 
 +service apache2 reload</sxh> 
 + 
 +Désormais, en appelant le site weblate, il nous faudra d'abord nous identifier via la fenêtre suivante : 
 +<image shape="thumbnail">{{ :linux:weblate:weblate_002.png |}}</image>
  
-{{:underconstruction-copy-300x150.jpg?400|}}+~~DISCUSSION~~
  
  • linux_weblate.1575986060.txt.gz
  • Dernière modification : 2019/12/10 12:54
  • (modification externe)