YunoHost 2.5.0 Beta - Call for beta-testers and translators

(la suite)

 for ( i = 0; i < len; i++ ) {                                                                                                
      if ( val.substring(i,i+1).charCodeAt(0) < 255 ) {                                                                         
         // hack to eliminate the rest of unicode from this                                                                     
         if (isUnsafe(val.substring(i,i+1)) == false)                                                                           
            newStr = newStr + val.substring(i,i+1);                                                                             
         else                                                                                                                   
            newStr = newStr + convert(val.substring(i,i+1));                                                                    
      } else {                                                                                                                  
         // woopsie! restore.                                                                                                   
         //alert ("Found a non-ISO-8859-1 character at position: " + (i+1) + ",\nPlease eliminate before continuing.");         
         newStr = original;                                                                                                     
         // short-circuit the loop and exit                                                                                     
         i = len;                                                                                                               
      }                                                                                                                         
   }                                                                                                                            
                                                                                                                                
   return newStr;                                                                                                               
}                                                                                                                               
                                                                                                                                
function checkForm(){                                                                                                           
                                                                                                                                
        with ( document.forms[0] ){                                                                                             
                var temp = password.value;                                                                                      
                if (temp.length < 1){                                                                                           
                        alert (aye_msg(password_input_str));                                                                    
                        return 0;                                                                                               
                }                                                                                                               
                else{
                        //password.value = encodeUrl(password.value);                                                           
                        Set_Cookie( 'username', username.value, '1', '/');                                                      
                        Set_Cookie( 'timeout', passwdInfo[0].timeout, '1', '/');                                                
                        if(captchaEnbl == '1') {                                                                                
                            var loc= 'login.cgi?cli=' + 'access login encrypted ' + hex_md5('username '+username.value+' passwor
d '+password.value)+' authcode '+ authcode.value + '$';                                                                         
                        }else{                                                                                                  
                            var loc= 'login.cgi?cli=' + 'access login encrypted ' + hex_md5('username '+username.value+' passwor
d '+password.value) + '$';                                                                                                      
                }                                                                                                               
                        var code = 'location=\'' + loc + '\'';                                                                  
                        ayeSubmit(code);                                                                                        

        }                                                                                                                       
}                                                                                                                               
}                                                                                                                               
                                                                                                                                
function btnRegenerate()                                                                                                        
{                                                                                                                               
        with ( document.forms[0] ){                                                                                             
                document.getElementById("captcha").src = "images/captcha.bmp?" + regen_count++;                                 
        }                                                                                                                       
}                                                                                                                               
                                                                                                                                
function stEnter(evt){                                                                                                          
   var keynum                                                                                                                   
   if(window.event) // IE                                                                                                       
      keynum = evt.keyCode                                                                                                      
   else if(evt.which) // Netscape/Firefox/Opera                                                                                 
      keynum = evt.which                                                                                                        
   if (keynum==13){                                                                                                             
       checkForm();                                                                                                             
   }                                                                                                                            
}                                                                                                                               
// -->                                                                                                                          
</script>                                                                                                                       
                                                                                                                                
</head>                                                                                                                         
<BODY onload=frmLoad()>                                                                                                         
                                                                                                                                
<body  onload="javascript:document.frmLogin.password.focus();">                                                                 
<BLOCKQUOTE>                                                                                                                    
        <form focus="password" name="frmLogin" method="POST" action="login.cgi">                                                
<style>                                                                                                                         
div.overflow                                                                                                                    
{                                                                                                                               
        overflow: auto;                                                                                                         
        width: 660px;                                                                                                           
}                                                                                                                               
</style>                                                                                                                        
<DIV align="center" style="display: hidden" id="tblmain">                                                                       
        <TABLE cellSpacing=0 width="800">                                                                                       
        <TR>                                                                                                                    
                <TD>                                                                                                            
                        <TABLE id=header_container width="800">                                                                 
                        <TR>                                                                                                    
<script language="javascript">                                                                                                  
document.writeln("<TD align=left width=\"200\">" + aye_msg(product_str) + ModemVer + "</TD>");                                  
document.writeln("<TD align=right width=\"50\"></TD>");                                                                         
document.writeln("<TD align=right width=\"550\">" + aye_msg(firmware_version_str) + FirmwareVer + "</TD>");                     
document.writeln("</TR></TABLE>");                                                                                              
</script>                                                                                                                       
                        <TABLE cellSpacing=0 width="800">                                                                       
                        <TR>                                                                                                    
                                <TD id=masthead_container width="800"><IMG alt="" src="images/img_masthead.gif"></TD>           
                        </TR></TABLE>                                                                                           
                        <TABLE cellSpacing=0 summary="" border=0 width="100%" style="background-color:white" height=300>        
                        <TR>                                                                                                    
                                        <TD align=center >                                                                      
                                                <DIV id=maincontent style="width:600" align="center">                           
                                                <table id=box_header border=0 cellSpacing=0>                                    
                                                <tr>                                                                            
                                                        <td class=topheader>                                                    
                                                                <script>aye_txt(login_str);</script>                            
                                                        </td>                                                                   

                                                </tr>                                                                           
                        <tr>                                                                                                    
                                <td class=content>                                                                              
                                        <p> <script>aye_txt(login_desc_str);</script></p>                                       
                                                                                                                                
                                        <table class=formarea border="0" cellspacing="0" cellpadding="0" width=100%  align="cent
er">                                                                                                                            
                                        <tr>                                                                                    
                                                <td  class=form_label ><b><script>aye_txt(username_str);</script></b></td>      
<script language="javascript">                                                                                                  
                        if(POL == '1') {                                                                                        
                                document.writeln("<td><input type=\"username\" maxlength=\"16\" size=\"18\" name=\"username\" va
lue='Multimedia' readonly></td>");                                                                                              
                                }                                                                                               
                        else
                        {                                                                                                       
                                document.writeln("<td><input type=\"username\" maxlength=\"16\" size=\"18\" name=\"username\" va
lue='admin' readonly></td>");                                                                                                   
                        }                                                                                                       
</script>                                                                                                                       
                                        </tr>                                                                                   
                                        <tr>                                                                                    
                                                <td  class=form_label><b><script>aye_txt(password_str);</script></b></td>       
                                                <td><input type="password" maxlength="16" size="18"  id="password" name="passwor
d" onKeyPress=" return stEnter(event)">                                                                                         
                                                </td>                                                                           
                                        </tr>                                                                                   
<script language="javascript">                                                                                                  
                        if(captchaEnbl == '1') {                                                                                
                                                                                                                                
                        document.writeln("<tr>");                                                                               
                        document.writeln("<td  class=form_label></td>");                                                        
                        document.writeln("<td><b>" + aye_msg(password_correct_str) + "</b></td>");                              
                        document.writeln("</tr>                 ");                                                             
                        document.writeln("<tr>");                                                                               
                        document.writeln("<td  class=form_label></td><td valign=center><IMG src='images/captcha.bmp' id=captcha>
</td>");                                                                                                                        
                        document.writeln("</tr> ");                                                                             
                        document.writeln("<tr>");                                                                               
                        document.writeln("<td  class=form_label><b>" + aye_msg(authcode_str) + "&nbsp;&nbsp;&nbsp;:</b></td>"); 
                        document.writeln("<td><input type=authcode maxlength=16 size=18  id=authcode name=authcode onkeypress='r
eturn stEnter(event)'> </td>");                                                                                                 
                        document.writeln("</tr>");                                                                              
                        document.writeln("<tr>");                                                                               
                        document.writeln("<td  class=form_label></td>");                                                        
                        document.writeln("<td><input type=button value='" + aye_btn(login_str) + "' onclick='checkForm()'><input
 type='button' value='" + aye_btn(regenerate_str) + "' onclick='btnRegenerate()'></td>");                                       
                        }                                                                                                       
                        else{                                                                                                   
                                document.writeln("<tr>");                                                                       
                                document.writeln("<td  class=form_label></td>");                                                
                                document.writeln("<td><input type=button value='"  + aye_btn(log_in_str) + "' onclick='checkForm
()'></td>");                                                                                                                    
                        }                                                                                                       
</script>                                                                                                                       
                        </tr>                                                                                                   
                </table>                                                                                                        
                        </td>                                                                                                   
                </tr>                                                                                                           
        </table>                                                                                                                
                                                                                                                                
</DIV>                                                                                                                          
<DIV id=loginerror style="width:600;display:none" >                                                                             

        <table id=box_header border=0 cellSpacing=0>                                                                            
                <tr>                                                                                                            
                        <td class=topheader>                                                                                    
                                Login                                                                                           
                        </td>                                                                                                   
                </tr>                                                                                                           
                <tr>                                                                                                            
                        <td class=content>                                                                                      
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="80%">                                                    
        <tr>                                                                                                                    
                <td align="center">                                                                                             

                        <script>aye_txt(authenication_fali_str);</script><br>                                                   
                        <script>aye_txt(incorrect_str);</script>                                                                
                </td>                                                                                                           
        </tr>                                                                                                                   
        <tr>                                                                                                                    
                <td align="center">&nbsp;                                                                                       

                </td>                                                                                                           
        </tr>                                                                                                                   
        <tr>                                                                                                                    
                <td align="center">                                                                                             
                        <INPUT TYPE="button" NAME="tryagain_btn" onClick="returnlogin()">                                       
                </td>                                                                                                           
        </tr>                                                                                                                   
</table>                                                                                                                        
        </td>                                                                                                                   
                </tr>                                                                                                           
        </table>                                                                                                                
</DIV>                                                                                                                          
</TD>                                                                                                                           
</TR></TABLE>                                                                                                                   
<TABLE id=footer_container cellSpacing=0 border=0><TR><TD id=leftimage>                                                         
<IMG height=35 alt="" src="images/img_bottom.gif" width=114></TD>                                                               
<TD>&nbsp;</TD></TR></TABLE>                                                                                                    
</TD></TR></TABLE><DIV id=copyright>                                                                                            
<script>                                                                                                                        
    if(typeof(AYECOM_GENERIC) == 'undefined')                                                                                   
        aye_txt(copyright_str);                                                                                                 
</script>                                                                                                                       
</DIV></DIV>                                                                                                                    
</TR></TD></TABLE>                                                                                                              
</DIV>                                                                                                                          
        </form>                                                                                                                 
</BLOCKQUOTE>                                                                                                                   
</body>                                                                                                                         
</html>

Et la dernière :

# python -c "import requests; print(requests.get('http://duniter.youpeek.net/.well-known/acme-challenge/toto'))"
<Response [200]> 

Pour ce qui est du chat, je ferai ça ce soir après 19h, là c’est déjà limite, je suis au taf, je profite bassement du fait que les gens partent en courant quand ils voient un écran en ligne de commande :smiley:

1 Like

Après une séance de chat avec Aleks (:heart_eyes: merci :heart_eyes:), Duniter est protégée car l’url duniter.youpeek.net est dans les protected urls du fichier de conf ssowat
@Moul c’est voulu ? C’est pour quoi, pour éviter qu’une autre appli ne s’installe sur ce sous-domaine ? Il se trouve que ça empêche Let’s Encrypt de faire son boulot :expressionless:

Je m’incruste… Je pense pas que ce soit voulu.
Disons que ce qui serait voulu, c’est qu’une appli protégée si elle est à la racine ne soit pas accessible sans authentification
Mais revers de la médaille ce serait le domaine complet qui serait inaccessible et Let’s Encrypt est un peu embêté…
Mais ce n’est que supposition

Yeah that’s what we discussed on the chat : it looks specific to the Duniter app, which adds ‘/’ as a protected url/uri (here), and therefore it blocks .well-known/acme-challenge as well (if you aren’t logged in).

Unfortunately I don’t know which good way there is right now to work around this (except manually tweaking the configuration of ssowat manually when you want to install/renew :confused:).

But then again, it’s specific to the duniter app.

A work around could be to add a duniter ssowat rules
yunohost app setting duniter skipped_uris /.well-known/

But we may add this kind of fix inside yunohost cli itself

From the dev chatroom:

<Bram> Aleks: bon ben je pense qu'on va devoir faire un patch de + avant la stable
<Bram> après réflection
<Bram> il faut qu'on lance un ssoconf avant chaque cert-install
<Bram> et que dans le ssoconf, si on tombe sur un domaine qui a LE
<Bram> on rajoute .well-known/acme-challgence-bazard dans la liste des uris pas protégé
<Bram> pour éviter ce genre de conflit avec les apps

I guess we’ll discuss that on a ticket/PR.

Don’t hesitate to ask me for some more testing if you issue a new patch, I’ll be happy to help :wink:

Salut la compagnie

Je suis un nouveau venu sous YunoHost. J’avais jusque-là un p’tit serveur Debian à la maison. Me suis pris un VPS chez Gandi et je teste depuis 1-2 mois YunoHost 2.4.

Alors déjà, bravo et merci pour le taf, ça roxe du pingouin comme on dit.

Je vous fais juste un petit retour d’expérience. J’étais donc en 2.4 et je jouais avec Let’s Encrypt et les sous-domaines à la mimine. Du coup, en faisant des recherches sur le forum, je suis tombé sur ce fil. Du coup, j’ai pas pu résister à migrer en beta pour tester LE intégré. Ça fonctionne nickel. J’avais déjà configuré le certif du domaine principal, c’est toujours ok. J’ai généré le certif d’un sous-domaine, ok également.

Je me pose simplement une question : comment est géré le renouvellement ? Le script de renouvellement que j’avais posé dans cron a été conservé et je ne vois rien dans systemd…

Je continue de tester, si j’ai d’autres remarques, je viendrais les faire ici.

Bonne continuation

Ca installe un cron dans /etc/cron.daily/yunohost-certificate-renew

Bonsoir,

Est ce que quelqu’un a testé la maj sur raspberry 3 ? Merci

For rpi there is a work in progress here:


With the method describe i was able to run yunohost on rpi1

And the documentation should be edited and approve:
https://github.com/YunoHost/doc/pull/408

This is for 2.5 or 2.4 is not very clear. But in any case thank you.

Petite “erreur” de mon coté

Configuration file '/etc/rmilter.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** rmilter.conf (Y/I/N/O/D/Z) [default=N] ? 

J’ai répondu Y, mais sans vraimnet savoir.
En tout cas après ca fonctinne très bien

Ca c’est le comportement classique de Debian, pas lié à YunoHost. En générale il vaut mieux répondre “No” (l’option par défaut) mais ce n’est pas très grave.

Tu peux “fixer” ça en lançant

yunohost service regen-conf

Et en jouant avec les options si besoin.

Bonjour @ZatchBell68,

J’avais bricolé rapidement un tuto pour installer YunoHost v2.4.x sur une Raspberry Pi …
http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie

… mais aussi pour installer YunoHost v2.5.x à partir de la v2.4.x :
http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie-v2.5.x-rpi3b

Le truc c’est qu’il faut installer, préalablement au lancement du script d’installation, quelques paquets (http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie-v2.5.x-rpi3b#mettre_a_jour_la_listes_des_paquets_installer_l_editeur_nano_git_le_paquet_de_configuration_du_raspberry_de_quoi_decompresser_des_fichiers_zip__et_nettoyer) ainsi que réaliser à la main l’installation de métronome (http://avignu.wiki.tuxfamily.org/doku.php?id=documentation:yunohost-jessie-v2.5.x-rpi3b#installer_metronome_manuellement) en le mettant en “hold” en attendant le passage à prosody.

Si tu cherches une image, il y a celle de @heyyounow ici Universal Raspberry Pi image.

Je n’ai pas encore eu le temps de tout bien installer et de tester un peu plus à fond. Néanmoins, j’espère que ça pourra t’aider, te donner des pistes ou même mieux : que tout fonctionne super :slight_smile:

ppr

Hello @ppr, j’ai installé la 2.4 via l’image qui est disponible sur le forum donc ci j’ai bien compris pour mettre en 2.5 j’ai juste besoin d’ajouter le dépôt dans le fichier source et de refaire un update et de ce que j’ai pu voir sur le forum lorsqu’on me pause la question de ci je veux garder mon fichier de conf ou non je fais N.

Je vais voir ça ce soir après le travail et je reviens vers vous ci j’ai un problème.

Bonsoir @ZatchBell68,

C’est ça, mais avant tout : faire une sauvegarde !

Une fois la sauvegarde faire, en premier tu mets à jour ton actuelle instance YunoHost v2.4.x

apt-get update && apt-get dist-upgrade

Ensuite tu ajoutes le dépôt testing en lieu et place du dépôt stable :

echo ‘deb http://repo.yunohost.org/debian/ jessie stable testing’ > /etc/apt/sources.list.d/yunohost.list

Enfin tu mets à jour ton instance avec les dépôts testing :

apt-get update && apt-get dist-upgrade

Tu devrais normalement passer en v2.5.x.

Sinon, lorsque tu réponds à un message du forum à quelqu’un en particulier, il faut mettre un @pseudo_du_correspondant comme ça le correspondant est averti par mail qu’il y a eu une réponse sur le sujet. :wink:

En espérant que tout se passe bien :slight_smile:

ppr

Ok @ppr merci pour l’astuce du @. Je vais faire la sauvegarde et tenter tout ça et je reviens. Merci encore

edit : J’ai une erreur qui revient regulierement qui est

insserv: warning: script is corrupt or invalid: /etc/init.d/…/rc0.D/K01yunohost-api

merci pour votre aide

@ZatchBell68 La méthode que j’ai présenté (et qui est en cours l’élaboration) est basé sur le travail de @heyyounow .

Pour l’installation, si tu souhaites installer une 2.5, je recommande l’utilisation de la 2.5 directement (en utilisant ./install_yunohost -d testing ) plutôt que 2.4 puis mise à jour 2.5. La raison est que la 2.5 intègre un correctif pour les dispositifs lents, l’absence de ce dernier (donc en 2.4) peut potentiellement impacter l’installation.

@ppr j’ai regarder dans les log et c’était déjà présents avant la maj en 2.5