Ok, totalmente de acuerdo con lo que contáis, tenía en la cabeza la web central porque se me había metido en la cabezota que los usuarios debían autenticarse y validarse, pero no, es cierto, la unión de nodos a la red no requiere un sistema de registro/validación de usuario con su dirección de correo y con contraseñas, etc. etc, una simple validación de que la direccion de correo es correcta, o que el teléfono es correcto, y a rular. Me gusta!<div>
<br></div><div>Según ese esquema la web central es únicamente informativa y no necesaria para el funcionamiento de la red.</div><div><br></div><div>Muy bien, pues yo he continuado con el proceso de arquitecturar la web de un nodo, de momento mi roadmap, basado en vuestros datos es el siguiente:</div>
<div><br></div><div>* Conseguir que cualquier nodo de la red pueda clonar un repositorio y tener funcionando la web del nodo inmediatamente.</div><div>* La mayor parte de la web no requerirá server-side-scripting, se compone totalmente en la capa de cliente (gracias a angularJS).</div>
<div>* La parte de Server-Side-Scripting se realizará mediante una API REST, el lenguaje de programación que yo eligiría salvo que no penséis como yo sería NodeJS/express. Es fácil de instalar en cualquier distribución moderna, prácticamente igual de fácil que Ruby/Python, y un poco más complicado (no mucho) que PHP, pero con grandes ventajas respecto a este.</div>
<div><br></div><div>Bueno, he hecho el esqueleto de la web con angularJS, echadle un vistazo si queréis, y si tenéis un momento probadlo en vuestro nodo. Os cuento.</div><div><br></div><div>* Podéis ver la demo de la versión actual con las secciones funcionando aquí: <a href="http://loom.gotdns.org/pln/app/#/main">http://loom.gotdns.org/pln/app/</a></div>
<div>* Podéis poner en marcha esta versión en vuestro nodo clonando el repositorio GIT:</div><div>  <a href="https://github.com/PhoneLiberationNet/pln-node-webapp">https://github.com/PhoneLiberationNet/pln-node-webapp</a></div>
<div><br></div><div>* El archivo que almacena la información de un nodo es el node.json[0]. ¿Podéis confirmar que toda la información que he incluido en ese archivo es pública? ¿O hay información que debería ser privada? Si modificáis ese archivo con vuestros datos, la web que habéis clonado se adecuará a esa nueva información.</div>
<div><br></div><div>[0] <a href="https://github.com/PhoneLiberationNet/pln-node-webapp/blob/master/node.json">https://github.com/PhoneLiberationNet/pln-node-webapp/blob/master/node.json</a></div><div><br></div><div>Podríamos tener un directorio con todos los JSON de los nodos, al estilo:</div>
<div>$ ls -l nodes/</div><div>nodes/patiomaravillas.json</div><div>nodes/loom.json</div><div>nodes/plnmataro.json</div><div>...</div><div><br></div><div>De manera que para poner en marcha la web de un nodo sólo habría que linkar el json a la raiz, al estilo:</div>
<div><br></div><div>$ ln -s nodes/loom.json node.json</div><div><br></div><div><br></div><div>Bueno ya me diréis qué os parece, no me enrollo mucho más. Sólo una cosa, si queréis ir completando las secciones de la web, está todo dividido por plantillas, por lo que ya se podría añadir información a la sección de documentación, por ejemplo, editando la plantilla que encontraréis en app/templates/documentacion.html. Lo mismo con el resto.</div>
<div><br></div><div>Venga un saludo</div><div><br></div><div><br></div><div><br></div><div><br><div class="gmail_quote">El 2 de septiembre de 2012 23:54, Santiago Crespo <span dir="ltr">&lt;<a href="mailto:pln-lists.marsupi.org@flanera.net" target="_blank">pln-lists.marsupi.org@flanera.net</a>&gt;</span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hola,<br>
      <br>
      Para mi, idealmente los pasos serían:<br>
      <br>
      1. Usuario llega a **cualquier web de cualquier nodo** que tenga
      IP pública. Por ejemplo al nodo &quot;aaa&quot;.<div class="im"><br>
      <div><br>
        2. Lee la descripción del proyecto, le gusta, quiere darse de
        alta en la red.<br>
      </div>
      <br></div>
      3. Pulsa el botón de unirse a la red:<br>
      - rellena los datos, <br>
      - ** elige otros 2 o 3 o x nodos a los que conectarse: &quot;abc&quot; y
      &quot;zxy&quot;**<br>
      - **demuestra que es humano**<br>
      - **La web comprueba automáticamente la validez y disponibilidad
      de los datos introducidos (números PLN solicitados, los otros
      nodos a los que conectarse responden y realmente admiten más
      conexiones, etc)** <br>
      - Almacena sus datos en **unos ficheros de texto** y le manda un
      e-mail de confirmación. <br>
      - Se valida el correo mediante un enlace por ejemplo. También se
      podría validar el teléfono de contacto mediante una llamada
      automática que lea unos números.<br>
      <br>
      5. **El sistema autoconfigura el DUNDi del nodo local (&quot;aaa&quot;) para
      admitir al nuevo miembro**<br>
      <br>
      6. **El nodo &quot;aaa&quot; envía la solicitud automáticamente a los nodos
      &quot;abc&quot; y &quot;zxy&quot; con los datos ya revisados del nuevo nodo.**. Esta
      solicitud se realiza dentro de la VPN. Sólo se admiten éstas
      peticiones desde la red 1.x.x.x<br>
      <br>
      7. **Los nodos &quot;abc&quot; y &quot;zxy&quot; se autoconfiguran el DUNDi para
      admitir al nuevo nodo.**<br>
      <br>
      8. **La web le envía al admin del nuevo nodo los ficheros
      necesarios (de configuración, listados, etc)**<br>
      <br>
      9. El usuario configura su nodo, crea sus claves públicas/privada
      tinc y DUNDi, abriendo puertos y ubicando las claves en **el
      servidor web de su nodo**.<br>
      <br>
      10. Todo automágico: Los nodos &quot;aaa&quot;, &quot;abc&quot; y &quot;zxy&quot; prueban cada X
      horas a descargarse las claves públicas (DUNDi y tinc) del nuevo
      nodo. Cuando lo consiguen, hacen un reload del asterisk y del tinc
      para que carguen las claves. Una vez responda a ping, prueba a
      resolver los números PLN del nuevo nodo vía DUNDi cada X horas.
      Cuando funcione, se envía un mail a los admins implicados
      informando del suceso y dando la bienvenida al nuevo nodo :)<br>
      <br>
      Respondo debajo a las preguntas..<div class="im"><br>
      <br>
      On 02/09/12 18:14, David Rubert wrote:<br>
    </div></div><div class="im">
    <blockquote type="cite">Wenas de nuevo!
      <div><br>
      </div>
      <div>Estaba yo cavilando a ver cómo darle forma a la parte de la
        web, y a la manera de darse de alta un admin de asterisk recien
        llegado, nuevo de trinca ,sin ningún padrino que ya le haya
        informado sobre cómo funciona el proyecto.</div>
      <div><br>
      </div>
      <div>Voy a intentar enumerar los pasos, sin detallar mucho la
        parte técnica, a ver si os parecen correctos.</div>
      <div><br>
      </div>
      <div>1. El usuario llega a la web principal (<a href="http://phoneliberation.net" target="_blank">http://phoneliberation.net</a>).</div>
      <div>2. Lee la descripción del proyecto, le gusta, quiere darse de
        alta en la red.</div>
      <div>3. Pulsa el botón de unirse a la red, rellena los datos, y la
        web almacena sus datos en alguna DB y le manda un e-mail de
        confirmación (validación de e-mail?).</div>
      <div>4. El usuario configura su nodo, creando la pareja de clave
        pública/privada TINC, abriendo puertos y ubicando las claves en
        un servidor web público.</div>
      <div>5. Examina el listado de nodos ya enlazado y elige 2 nodos:
        &quot;abc&quot; y &quot;zxy&quot;.</div>
      <div>6. Visita la página del nodo &quot;abc&quot; y hace una solicitud para
        establecer un enlace con ese nodo.</div>
      <div>7. El formulario le confirma la recepción, le informa de que
        le ha enviado la información al administrador para que, cuando
        pueda, configure el nuevo enlace.</div>
      <div>8. Cuando el admin del nodo configura tinc y dundi con la
        información del nodo recien-llegado, le confirma vía correo.</div>
      <div>9. El nuevo usuario termina de configurar su enlace
        tinc/dundi.</div>
      <div>10. Conseguido.</div>
      <div><br>
      </div>
      <div>¿Qué os parece este proceso (a groso modo)? Lo describo yo
        que soy un recién llegado y no tengo claras las partes, por eso
        me gustaría que corrigierais lo que no es correcto. Este proceso
        que he descrito implicaría:</div>
      <div><br>
      </div>
      <div>* Comunicar adecuadamente/sincronizar información entre una
        web central (<a href="http://phoneliberation.net" target="_blank">phoneliberation.net</a>) y
        las webs distribuidas en la red (las de los nodos). Vía
        repositorio GIT privado o similar.</div>
    </blockquote>
    <br></div>
    No hace falta una web central, podemos hacerlo todo distribuido.
    &quot;Sólo&quot; tenemos que hacer y ponernos de acuerdo en usar la futura
    versión 1.0 del acuerdo, documentación, código fuente de la web,
    scripts, etc.<div class="im"><br>
    <br>
    <blockquote type="cite">
      <div>* Decidir el nivel de validación de los usuarios en todo el
        proceso. Es decir, decidir si dejamos que las solicitudes sean
        anónimas, o vamos a realizar un proceso de registro/validación
        de usuarios pertenecientes a la red (vía usuario/contraseña).</div>
    </blockquote>
    <br></div>
    De los datos del admin, yo validaría únicamente el email y el número
    de teléfono de contacto (PSTN).<br>
    <br>
    A los admins no les hace falta usuario/contraseña. Los usuarios
    (abonados) sí que tendrán su usuario/contraseña en la web de su
    nodo, para cambiar sus datos y preferencias.<div class="im"><br>
    <br>
    <blockquote type="cite">
      <div>* Decidir el nivel de automatismo del proceso. ¿Qué
        interacción por parte de los administradores queremos que sea
        necesaria? </div>
    </blockquote></div>
    El trabajo de máquinas, para las máquinas. Que los scripts
    comprueben y configuren lo que haga falta. El tiempo del admin (y de
    cualquier persona) es lo más valioso, por lo que pondría ninguna, o
    la mínima posible. Si cumple las normas y funciona, bienvenido. Esto
    se puede hacer automático.<br>
    <br>
    Excepto cuando llegue el caso de que alguien quiera un número
    geográfico de una zona (país) que todavía no está consensuada,
    deberá traer una propuesta para ser revisada públicamente. Esta
    revisión deberán hacerla manualmente entre varios admins que ya
    estén en la red.<br>
    <br>
    El admin del nuevo nodo siempre tendrá que hacer algo manualmente
    para unirse. Como mínimo tendrá que rellenar el formulario,
    demostrar que es humano y configurarse su nodo.<div class="im"><br>
    <br>
    <blockquote type="cite">
      <div>¿Se podría dar de alta un nodo sin ningún tipo de interacción
        por parte de los administradores de los nodos ya enlazados?</div>
    </blockquote></div>
    Si. Por ejemplo con los pasos que propongo.<br>
    <br>
    <blockquote type="cite">
      <div>¿Cómo lo véis?</div>
    </blockquote>
    Bien, vamos concretando cosas :)<br>
    <br>
  </div>

<br>_______________________________________________<br>
PLN mailing list<br>
<a href="mailto:PLN@marsupi.org">PLN@marsupi.org</a><br>
<a href="https://lists.marsupi.org/listinfo/pln" target="_blank">https://lists.marsupi.org/listinfo/pln</a><br>
<br></blockquote></div><br></div>