<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://es.wiki.guifi.net/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>http://es.wiki.guifi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Conxuro</id>
		<title>Guifi.net - Wiki Hispano - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="http://es.wiki.guifi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Conxuro"/>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Especial:Contribuciones/Conxuro"/>
		<updated>2026-07-29T01:31:15Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.22.0</generator>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_plug-ins</id>
		<title>Cloudy plug-ins</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_plug-ins"/>
				<updated>2015-12-03T17:22:43Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es un plug-in? ==&lt;br /&gt;
&lt;br /&gt;
Cloudy es una distribución de Linux basada en Debian que proporciona a los usuarios una interfaz simple y cómoda para gestionar diferentes servicios que pueden usarse a través de una red comunitaria; en nuestro caso, Guifi.&lt;br /&gt;
&lt;br /&gt;
Al mismo tiempo, Cloudy ofrece una serie de herramientas que permiten a un usuario añadir un servicio de su agrado sin tener grandes conocimientos sobre redes e informática en general. Automaticamente, estos servicios se publican mediante Avahi, de manera que todo el que utilice Cloudy podrá hacer uso de estos servicios.&lt;br /&gt;
&lt;br /&gt;
Otra manera de llamar estos servicios que se pueden poner y quitar de forma sencilla es ''plug-in''. Por tanto, entendemos por plug-in a un programa o software que un usuario quiere añadir a la distribución y que puede ser gestionado de forma simple des de la interfaz web que provee Cloudy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Añadir servicios a Cloudy ==&lt;br /&gt;
&lt;br /&gt;
=== Una pequeña introducción ===&lt;br /&gt;
&lt;br /&gt;
Esta guía te enseñará el proceso para añadir un nuevo servicio en la distribución Cloudy.&lt;br /&gt;
&lt;br /&gt;
Para serclaro y dar algunos ejemplos al mismo tiempo, integraremos un servicio bastante simple mostrando algunos trozos de código por el camino. Para seguir el tutorial con más facilidad o bien para integrar servicios más complejos, estaría bien tener algunos conocimientos de Bash&amp;lt;ref name=&amp;quot;Bash&amp;quot;&amp;gt;(http://www.tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf)&amp;lt;/ref&amp;gt; y de PHP&amp;lt;ref name=&amp;quot;PHP&amp;quot;&amp;gt;(https://php.net/manual/es/index.php)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por simplicidad utilizaremos Pastecat&amp;lt;ref name=&amp;quot;Pastecat&amp;quot;&amp;gt;(https://github.com/mvdan/pastecat)&amp;lt;/ref&amp;gt;. Es un buen candidato ya que:&lt;br /&gt;
&lt;br /&gt;
* Es independiente y no se ''federa'' ni se comunica con otros nodos.&lt;br /&gt;
* Está hecho en Go, es facil de distribuir e instalar.&lt;br /&gt;
* No necesita archivos de configuración.&lt;br /&gt;
* No necesita muchos recursos.&lt;br /&gt;
&lt;br /&gt;
=== Obtener el binario ===&lt;br /&gt;
&lt;br /&gt;
Lo primero que hemos de investigar es como descargar e instalar el binario en Cloudy. La mayoria de software que podemos encontrar está por defecto en los paquetes de Debian, pero Pastecat no está. Si se diera el caso de que estuviera, solo tendríamos que ejecutar el comando &amp;lt;code&amp;gt;apt-get install pastecat&amp;lt;/code&amp;gt; desde PHP.&lt;br /&gt;
&lt;br /&gt;
Pero como este no es el caso, tendremos que obtener el binario por otro lado. Una opcion es coger el código fuente y compilarlo nosotros mismos, pero el problema de esto es que Cloudy necesitaria incluir muchas herramientas y librerias de desarrollo, y este no es el objetivo.&lt;br /&gt;
&lt;br /&gt;
La mejor opción si un paquete de Debian no está disponible en los repositorios es descargar los binarios de otro lugar seguro. Podemos utilizar el servicio de ''&amp;quot;releases&amp;quot;'' de Github para ello. Las dos opciones nos dan un archivo ejecutable que tendríamos que ser capaces de ejecutar directamente sobre Cloudy.&lt;br /&gt;
&lt;br /&gt;
En este caso en particular descargaremos los binarios desde el repositorio git con la siguiente linea de comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386_v0.3.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nótese que en este caso en concreto estamos descargando una versión específica para Linux con arquitectura i386.&lt;br /&gt;
&lt;br /&gt;
Fijaos que tener un servicio en los paquetes de Debian tiene muchas ventajas:&lt;br /&gt;
&lt;br /&gt;
* Las actualizaciones son simples y no necesitan trabajo extra desde Cloudy.&lt;br /&gt;
* El paquete está compilado para Debian de manera segura.&lt;br /&gt;
* Los archivos de ''init.d'' ya vienen por defecto.&lt;br /&gt;
* Los paquetes de Debian suelen contener correciones.&lt;br /&gt;
&lt;br /&gt;
=== Probarlo ===&lt;br /&gt;
&lt;br /&gt;
Antes de añadir un servicio deberíamos configurarlo y probarlo nosotros directamente para ver cómo funciona y que realmente funciona. También hemos de entender qué opciones de configuración o de linea de comandos necesitamos para hacer uso de este servicio en particular y como lo gestionariamos una vez este funcionando.&lt;br /&gt;
&lt;br /&gt;
=== Añadir el controlador ===&lt;br /&gt;
&lt;br /&gt;
En &amp;lt;code&amp;gt;web/plug/controllers&amp;lt;/code&amp;gt; tenenmos un archivo PHP para cada servicio, llamado controlador (o 'controller' en inglés). Este archivo contiene el codigo que se ejecutará cuando se visite la página de nuestro servicio desde la interfaz de Cloudy.&lt;br /&gt;
&lt;br /&gt;
==== Añadir la función indice ====&lt;br /&gt;
&lt;br /&gt;
Lo que queremos es que nuestro servicio esté integrado en la estructura web de Cloudy. Para ello, necesitamos crear unos cuantos ''scripts'' en PHP y añadirlos a nuestro sistema. De momento crearemos dos ''scripts'': &amp;lt;code&amp;gt;pastecat.php&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;pastecat.menu.php&amp;lt;/code&amp;gt;. El primer archivo es el controlador, es decir, el ''script'' que renderiza la página y tiene toda la información tal como botones o redireccionamientos. El otro es el que permite que nuestro servicio se muestre en los menus superiores desplegables de Cloudy. &lt;br /&gt;
&lt;br /&gt;
El código del menú será similar a esto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt; &lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    //peerstreamer.menu.php&lt;br /&gt;
    addMenu('Pastecat','pastecat','Clommunity');&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ahora, utilizaremos un ''script'' muy simple en PHP como controlador:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt; &lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    //pastecat&lt;br /&gt;
    $title=&amp;quot;Pastecat&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    function index(){&lt;br /&gt;
        global $paspath,$title;&lt;br /&gt;
        global $staticFile;&lt;br /&gt;
    &lt;br /&gt;
        $page=hlc(t($title));&lt;br /&gt;
        $page .= hl(t(&amp;quot;Minimalist pastebin engine written in Go&amp;quot;),4);&lt;br /&gt;
        $page .= par(t(&amp;quot;A simple and self-hosted pastebin service written in Go&amp;quot;).' '.t(&amp;quot;Can use a variety of storage backends&amp;quot;).' '.t(&amp;quot; Designed to optionally remove pastes after a certain period of time.&amp;quot;).' '.(&amp;quot;If using a persistent storage backend, pastes will be kept between runs.&amp;quot;).' '.t(&amp;quot;This software runs the&amp;quot;).' '.&amp;quot;&amp;lt;a href='http://paste.cat'&amp;gt;&amp;quot;.t(&amp;quot;paste.cat&amp;quot;).&amp;quot;&amp;lt;/a&amp;gt;&amp;quot;. t(&amp;quot; public service.&amp;quot;));&lt;br /&gt;
        &lt;br /&gt;
        return(array('type' =&amp;gt; 'render','page' =&amp;gt; $page));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En nuestro sistema Cloudy estos archivos han de ponerse en los directorios dentro de &amp;lt;code&amp;gt;/var/local/cDistro/plug/&amp;lt;/code&amp;gt;. El primero ha de ir en &amp;lt;code&amp;gt;menus&amp;lt;/code&amp;gt; y el segundo en el directori &amp;lt;code&amp;gt;controllers&amp;lt;/code&amp;gt;. Una vez hecho esto podemos ir a la web de nuestro Cloudy y acceder al nuevo menú Pastecat.&lt;br /&gt;
&lt;br /&gt;
==== Hacer que el controlador instale nuestro servicio ====&lt;br /&gt;
&lt;br /&gt;
Como se ha comentado anteriormente, este paso es mucho más sencillo de hacer si el servicio está entre los paquetes de Debian. Como que no es el caso de Pastecat, lo tendremos que hacer manualmente. Normalmente hacer este proceso manualmente incluye una combinación de los comandos &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt;. En general, es buena idea mantener los archivos de este tipo de servicios en &amp;lt;code&amp;gt;/opt/SERVICENAME&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En nuestro caso particular, lo primero que necesitamos es descargar el binario de la ''release'' de Github. Para ello utilizaremos el comando: &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;. Dada una URL a un archivo, este comando permite descargar este archivo en nuestro sistema, i es lo que haremos con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386_v0.3.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tengamos el binario en nuestra máquina, lo moveremos al directorio /opt/pastecat/. Para mover los archivos por nuestro sistema usaremos el comando &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt;. Aun así, primero tendremos que crear el directorio donde pondremos el archivo. Para ello utilizaremos &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
   mkdir -p /opt/pastecat/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez hayamos creado el directorio, es hora de mover el binario:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    mv current_directory/pastecat_linux_386 /opt/pastecat/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;current_directory&amp;quot; es el directorio donde previamente hemos descargado el binario. Como el nombre del binario depende de la arquitectura, para simplificar el código del controlador, cambiaremos el nombre del archivo ejecutable por algo más genérico y simple:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    mv /opt/pastecat/pastecat_linux_386 /opt/pastecat/pastecat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora nuestro binario se llama &amp;lt;code&amp;gt;pastecat&amp;lt;/code&amp;gt; en lugar de &amp;lt;code&amp;gt;pastecat_linux_386&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Estos pasos son los requisitos mínimos para instalar un servicio que no se ofrece directamente en los repositorios oficiales de Debian. Sin embargo, de cara a un usuario final, sería una pesadilla tener que hacer todos estos comandos en una consola conectado a través de &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; a su dispositivo, así que lo que haremos a continuación es crear un ''script'' en Bash que será llamado más adelante a traves de la interfaz web haciendo click en un botón.&lt;br /&gt;
&lt;br /&gt;
Este ''script'' es la primera versión del controlador de Pastecat. Por ahora solo incluiremos una función para instalar Pastecat en nuestro dispositivo. Más adelante incluiremos otras funciones para proveer a nuestro ''script'' de más servicios:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    PCPATH=&amp;quot;/opt/pastecat/&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    doInstall() {&lt;br /&gt;
        if isInstall&lt;br /&gt;
        then&lt;br /&gt;
            echo &amp;quot;Pastecat is already installed.&amp;quot;&lt;br /&gt;
            return&lt;br /&gt;
        fi&lt;br /&gt;
    &lt;br /&gt;
        # Creating directory and switching&lt;br /&gt;
        mkdir -p $pcpath &amp;amp;&amp;amp; cd $pcpath&lt;br /&gt;
    &lt;br /&gt;
        # Getting file&lt;br /&gt;
        wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386_v0.3.0&lt;br /&gt;
    &lt;br /&gt;
        # Changing name so controller can invoke it generically&lt;br /&gt;
        mv pastecat_linux_386 pastecat&lt;br /&gt;
        chmod +x pastecat&lt;br /&gt;
        &lt;br /&gt;
        cd -&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    isInstalled() {&lt;br /&gt;
        [ -d $pcpath ] &amp;amp;&amp;amp; return 0&lt;br /&gt;
        return 1&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    case $1 in&lt;br /&gt;
        &amp;quot;install&amp;quot;)&lt;br /&gt;
            shift&lt;br /&gt;
            doInstall $@&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos ver como los últimos pasos se han concentrado en una misma función, permmiténdonos instalar el software en el dispositivo de una manera mas sencilla.&lt;br /&gt;
&lt;br /&gt;
==== Hacer que el controlador utilitce Pastecat ====&lt;br /&gt;
&lt;br /&gt;
===== Ejecutar el servicio =====&lt;br /&gt;
&lt;br /&gt;
El paso siguiente es hacer que nuestro software se pueda utilizar desde la intarfaz web. Para ello incluiremos una nueva opción en nuestra página principal de Pastecat e incluiremos una nueva función en nuestro controlador para gestionar el binario. Añadiremos un botón en el código PHP de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    $page .= addButton(array('label'=&amp;gt;t('Create a Pastecat server'),'href'=&amp;gt;$staticFile.'/pastecat/publish'));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ha de ir justo después del mensaje &amp;lt;code&amp;gt;Pastecat is installed&amp;lt;/code&amp;gt;. A continuación se ha de implementar la función &amp;lt;code&amp;gt;publish&amp;lt;/code&amp;gt; en el mismo PHP. Esta función es la responsable de llamar a la función correspondiente desde el controlador y anunciar nuestro servicio utilizando Avahi. La diferencia con esta función es que requiere un formulario para introducir datos, así que al final acabaremos teniendo dos funciones: una ''get'' i una ''post'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function publish_get() {&lt;br /&gt;
        global $pcpath,$title;&lt;br /&gt;
        global $staticFile;&lt;br /&gt;
        &lt;br /&gt;
        $page = hlc(t($title));&lt;br /&gt;
        $page .= hlc(t('Publish a pastecat server'),2);&lt;br /&gt;
        $page .= par(t(&amp;quot;Write the port to publish your Pastecat service&amp;quot;));&lt;br /&gt;
        $page .= createForm(array('class'=&amp;gt;'form-horizontal'));&lt;br /&gt;
        $page .= addInput('description',t('Describe this server'));&lt;br /&gt;
        $page .= addSubmit(array('label'=&amp;gt;t('Publish'),'class'=&amp;gt;'btn btn-primary'));&lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Cancel'),'href'=&amp;gt;$staticFile.'/peerstreamer'));&lt;br /&gt;
        &lt;br /&gt;
        return(array('type' =&amp;gt; 'render','page' =&amp;gt; $page));&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    function publish_post() {&lt;br /&gt;
        $port = $_POST['port'];&lt;br /&gt;
        $description = $_POST['description'];&lt;br /&gt;
        $ip = &amp;quot;&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
         &amp;lt;nowiki&amp;gt;$page = &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;;&lt;br /&gt;
        $page .= _pcsource($description);&lt;br /&gt;
        $page .= &amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        return(array('type' =&amp;gt; 'render','page' =&amp;gt; $page));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la función &amp;lt;code&amp;gt;post&amp;lt;/code&amp;gt; estamos invocando otra función. El motivo de hacer esto es escribir el código de manera más simple y modular. En esta última funcion por fin llamamos al script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function _pcsource($port,$description) {&lt;br /&gt;
        global $pcpath,$pcprogram,$title,$pcutils,$avahi_type,$port;&lt;br /&gt;
    &lt;br /&gt;
        $page = &amp;quot;&amp;quot;;&lt;br /&gt;
        $device = getCommunityDev()['output'][0];&lt;br /&gt;
        $ipserver = getCommunityIP()['output'][0];&lt;br /&gt;
    &lt;br /&gt;
        if ($description == &amp;quot;&amp;quot;) $description = $type;&lt;br /&gt;
    &lt;br /&gt;
        $cmd = $pcutils.&amp;quot; publish '$port' '$description';&lt;br /&gt;
        execute_program_detached($cmd);&lt;br /&gt;
    &lt;br /&gt;
        $page .= t($ipserver);&lt;br /&gt;
        $page .= par(t('Published this server.'));&lt;br /&gt;
    &lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Back'),'href'=&amp;gt;$staticFile.'/pastecat'));&lt;br /&gt;
    &lt;br /&gt;
        return($page)&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lo siguiente que hemos de hacer es crear una función &amp;lt;code&amp;gt;publish&amp;lt;/code&amp;gt; en el controlador, por lo que añadiremos una nueva función al controlador básico que tenemos en la sección '''3.2'''. Primero añadiremos un nuevo paámetro llamado ''publish'', asi que la primera parte en ejecutarse del ''script'' sera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    if [ $# -lt 1 ]&lt;br /&gt;
    then&lt;br /&gt;
        doHelp&lt;br /&gt;
    fi&lt;br /&gt;
    &lt;br /&gt;
    case $1 in&lt;br /&gt;
        &amp;quot;install&amp;quot;)&lt;br /&gt;
            shift&lt;br /&gt;
            doInstall $@&lt;br /&gt;
            ;;&lt;br /&gt;
        &amp;quot;publish&amp;quot;)&lt;br /&gt;
            shift&lt;br /&gt;
            doServer $@&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como se puede ver, cuando el primer argumento del ''script'' es &amp;lt;code&amp;gt;publish&amp;lt;/code&amp;gt;, desplazamos (''shift'') el resto de argumentos y llamamos a la funcion &amp;lt;code&amp;gt;doServer&amp;lt;/code&amp;gt;. En esta función hemos de poner en marcha el servicio con los argumentos correspondientes, así que lo primero queharemos será poner estos parámetros en variables locales. Una vez hecho esto lo más lógico sería lanzar la aplicación directamente, pero como el ''script'' se llama con permisos de &amp;quot;root&amp;quot; (no recomendable), hemos de lanzar Pastecat como usuario &amp;lt;code&amp;gt;nobody&amp;lt;/code&amp;gt;. El problema es que el usuario &amp;lt;code&amp;gt;nobody&amp;lt;/code&amp;gt; no tiene casi permisos y Pastecat necesita algunos persmisos para crear directorios y archivos de texto. Para permitir que &amp;lt;code&amp;gt;nobody&amp;lt;/code&amp;gt; pueda hacerlo, primero crearemos un directorio con permisos a casi todos los usuarios. Para esto, utilizaremos el comando &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; de nuevo. Ahora el usuario puede crear archivos y directorios dentro de este mismo directorio, y en consecuencia podemos ejecutar Pastecat. Finalmente hay que mantener el PID en una variable en caso de que lo necesitemos más adelante (que ya os adelantamos que sí lo necesitaremos):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    doServer() {&lt;br /&gt;
        # Turning machine into a server&lt;br /&gt;
    &lt;br /&gt;
        local port=${1:-&amp;quot;&amp;quot;}&lt;br /&gt;
        local description=${2:-&amp;quot;&amp;quot;}&lt;br /&gt;
        local ip=${3:-&amp;quot;0.0.0.0&amp;quot;}&lt;br /&gt;
    &lt;br /&gt;
        # Creating directory with nobody permissions&lt;br /&gt;
        mkdir -p &amp;quot;/var/local/pastecat&amp;quot;&lt;br /&gt;
        chmod 777 &amp;quot;/var/local/pastecat&amp;quot; &amp;amp;&amp;amp; cd &amp;quot;/var/local/pastecat&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
        # Running pastecat &lt;br /&gt;
        cmd='su '$PCUSER' -c &amp;quot;{ '$PCPATH$PCPROG' -l :'$port' &amp;gt; '$LOGFILE' 2&amp;gt;&amp;amp;1 &amp;amp; }; echo \$!&amp;quot;'&lt;br /&gt;
        pidpc=$(eval $cmd)          # keeping PID for future needs...&lt;br /&gt;
    &lt;br /&gt;
        cd -&lt;br /&gt;
    &lt;br /&gt;
        # Using the PID, we could carry on process control so if the pastecat process die, we can also&lt;br /&gt;
        # stop the avahi process to avoid &amp;quot;false connections&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
        return&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fijaos que ahora estamos utilizando algunas variables globales que no estaban definidas antes, como &amp;lt;code&amp;gt;PCUSER&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;LOGFILE&amp;lt;/code&amp;gt;. Estas variables tienen los siguientes valores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    PCPATH=&amp;quot;/opt/pastecat/&amp;quot;&lt;br /&gt;
    PCPROG=&amp;quot;pastecat&amp;quot;&lt;br /&gt;
    LOGFILE=&amp;quot;/dev/null&amp;quot;&lt;br /&gt;
    PCUSER=&amp;quot;nobody&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Parar el servicio =====&lt;br /&gt;
&lt;br /&gt;
En algún momento es posible que queramos parar nuestro servicio. Para esto crearemos un botón para hacerlo. Lo primero que hacer sería crear el botón, pero si pensamos un poco veremos que antes de crearlo necesitamos una manera de saber si nuestro servicio esta ejecutándose o no. Además, también necesitamos una manera de parar nuestro servicio. Como estamos ejecutando sobre Linux, podemos parar el servicio fácilmente utilizando el comando &amp;lt;code&amp;gt;kill&amp;lt;/code&amp;gt;. El problema es que para utilizar este comando primero necesitamos saber el número de identificación del proceso (PID). Por suerte, ja nos quedamos con este número cuando creamos el servidor de Pastecat; en concreto con la linea &amp;lt;code&amp;gt;pidpc=$(eval $cmd)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ahora que tenemos todo lo que necesitamos para matar nuestro proceso vamos a ver como lo hacemos para que PHP pueda saber si el servicio está ejecutándose o no. Una manera fácil y eficiente de hacerlo es almacenando algunos datos útiles en un archivo y borrarlo cuando se pare Pastecat. De esta manera nos aseguramos que el archivo sólo existe cuando Pastecat está activo. Este archivo lo crearemos desde el controlador aádiendo las siguientes lineas justo despues de la sentencia que hemos mencionado en el párafo anterior:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    # Writting server info to file&lt;br /&gt;
    info=&amp;quot;$pidpc http://$ip:$port&amp;quot;          # Separator is space character&lt;br /&gt;
    echo $info &amp;gt; $PCFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;code&amp;gt;$PCFILE&amp;lt;/code&amp;gt; es una variable global que contiene &amp;lt;code&amp;gt;/var/run/pc.info&amp;lt;/code&amp;gt;. Fijaos&lt;br /&gt;
que el contenido del archivo sera el PID del Pastecat y la dirección completa del servidor de este.&lt;br /&gt;
&lt;br /&gt;
Ahora ya tenemos una manera de saber si el servicio está activo o no, de manera que añadiremos justo a continuación el botón 'stop' en la interfaz web. Modificaremos un poco el ''script'' PHP que teniamos antes, añadiendo un anuncio indicando si Pastecat se está ejecutando o no, y dos botones más cuando éste esté ejecutándose. Así pues, nuestra función índice contendrá el siguiente codigo dentro de la condición que comprueba si Pastecat está instalado o no:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;$page .= &amp;quot;&amp;lt;div class='alert alert-success text-center'&amp;gt;&amp;quot;.t(&amp;quot;Pastecat is installed&amp;quot;).&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;;&lt;br /&gt;
    if ( isRunning() ) {&lt;br /&gt;
        $page .= &amp;quot;&amp;lt;div class='alert alert-success text-center'&amp;gt;&amp;quot;.t(&amp;quot;Pastecat is running&amp;quot;).&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;;&lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Go to server'),'href'=&amp;gt;'http://'. getCommunityIP()['output'][0] .':'. $port));&lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Stop server'),'href'=&amp;gt;$staticFile.'/pastecat/stop'));&lt;br /&gt;
    } else  {&lt;br /&gt;
        $page .= &amp;quot;&amp;lt;div class='alert alert-error text-center'&amp;gt;&amp;quot;.t(&amp;quot;Pastecat is not running&amp;quot;).&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    $page .= addButton(array('label'=&amp;gt;t('Create a Pastecat server'),'href'=&amp;gt;$staticFile.'/pastecat/publish'));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este trozo de código podemos apreciar dos nuevas cosas. La priemra es una función de comprobación llamada &amp;lt;code&amp;gt;isRunning()&amp;lt;/code&amp;gt;. Esta función se parece mucho a la funcion que utilizamos para comprar si Pastecat esta instalado o no:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function isRunning() {&lt;br /&gt;
        // Returns whether pastecat is running or not&lt;br /&gt;
        global $pcfile;&lt;br /&gt;
        &lt;br /&gt;
        return(file_exists($pcfile));   &lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es tan simple como parece, solamente comprueba que el archivo creado cuando se lanza el servidor de Pastecat aun existe. Lo segundo que podemos ver nuevo en nuestro codigo es la existencia de una nueva función llamada &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt;. Esta funcion invocará otra función en el controlador que parará el servidor de Pastecat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function stop() {&lt;br /&gt;
        // Stops Pastecat server&lt;br /&gt;
        global $pcpath,$pcprogram,$title,$pcutils,$avahi_type,$port;&lt;br /&gt;
        &lt;br /&gt;
        $page = &amp;quot;&amp;quot;;&lt;br /&gt;
        $cmd = $pcutils.&amp;quot; stop &amp;quot;;&lt;br /&gt;
        execute_program_detached($cmd);&lt;br /&gt;
        &lt;br /&gt;
        return(array('type'=&amp;gt;'redirect','url'=&amp;gt;$staticFile.'/pastecat'));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para hacer que el controlador entienda esta orden tendremos que modificarla sentencia &amp;lt;code&amp;gt;case&amp;lt;/code&amp;gt; y añadir la nueva función. En el &amp;lt;code&amp;gt;case&amp;lt;/code&amp;gt; añadiremos lo siguiente debajo de la opción &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    &amp;quot;stop&amp;quot;)&lt;br /&gt;
        shift&lt;br /&gt;
        doStop $@&lt;br /&gt;
        ;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esto llama a la función &amp;lt;code&amp;gt;doStop&amp;lt;/code&amp;gt; dentro del mismo controlador. Esta función será similar a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    doStop() {&lt;br /&gt;
        # Stopping pastecat server&lt;br /&gt;
        pcpid=$(cat $PCFILE | cut -d' ' -f1)&lt;br /&gt;
        kill $pcpid&lt;br /&gt;
        &lt;br /&gt;
        # Removing info file&lt;br /&gt;
        rm $PCFILE&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta función coge el PID de Pastecat del archivo que hemos creado antes, mata el proceso y finalmente borra el archivo de manera que PHP pueda detectar que Pastecat se ha parado.&lt;br /&gt;
&lt;br /&gt;
Ahora podemos crear un servidor de Pastecat y pararlo. Aun así, aun hay algo que falta: hacer que el resto de usuarios puedan ver nuestro servicio. Para esto usaremos Avahi.&lt;br /&gt;
&lt;br /&gt;
=== Publicación de servicios Avahi ===&lt;br /&gt;
&lt;br /&gt;
Una de las mejores cosas de Cloudy es la caracteristica de publicar nuestros servicios con Avahi, permitiendo a otros usuarios saber qué ofrecemos y que puedan unirse a nuestro servicio. Para hacer esto primero hemos de añadir algunas lineas de código en el controlador PHP, justo debajo de la llamada al controlador en Bash para activar el servidor Pastecat. Añadiremos las siguientes lineas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    $description = str_replace(' ', '', $description);&lt;br /&gt;
    $temp = avahi_publish($avahi_type, $description, $port, &amp;quot;&amp;quot;);&lt;br /&gt;
    $page .= ptxt($temp);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aisí al final nuestra función quedará así:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function _pcsource($port,$description) {&lt;br /&gt;
        global $pcpath,$pcprogram,$title,$pcutils,$avahi_type;&lt;br /&gt;
        &lt;br /&gt;
        $page = &amp;quot;&amp;quot;;&lt;br /&gt;
        $device = getCommunityDev()['output'][0];&lt;br /&gt;
        $ipserver = getCommunityIP()['output'][0];&lt;br /&gt;
        &lt;br /&gt;
        if ($description == &amp;quot;&amp;quot;) $description = $type;&lt;br /&gt;
        &lt;br /&gt;
        $cmd = $pcutils.&amp;quot; publish '$port' '$description'&amp;quot;;&lt;br /&gt;
        execute_program_detached($cmd);&lt;br /&gt;
        &lt;br /&gt;
        $page .= t($ipserver);&lt;br /&gt;
        $page .= par(t('Published this server.'));&lt;br /&gt;
        $description = str_replace(' ', '', $description);&lt;br /&gt;
        $temp = avahi_publish($avahi_type, $description, $port, &amp;quot;&amp;quot;);&lt;br /&gt;
        $page .= ptxt($temp);&lt;br /&gt;
        &lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Back'),'href'=&amp;gt;$staticFile.'/pastecat'));&lt;br /&gt;
        &lt;br /&gt;
        return($page)&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con este simple paso hemos anunciado nuestro servicio en la red de Avahi. Pero el trabajo no acaba aquí, queda aun una cosa mas por hacer: crear un botón y programarlo de manera que cuando se pulse nos redirija directamente a nuestro servidor de Pastecat.&lt;br /&gt;
&lt;br /&gt;
Para hacer esto hay una carpeta llamada &amp;lt;code&amp;gt;avahi&amp;lt;/code&amp;gt; dentro del directorio &amp;lt;code&amp;gt;plug&amp;lt;/code&amp;gt;. Los ''scripts'' que definen la acción a llevar a cabo cuando se pulsan los botones estan en diferentes archivos dentro de este directorio. De este modo, crearemos un archivo llamado &amp;lt;code&amp;gt;pastecat.avahi.php&amp;lt;/code&amp;gt; que contendrá:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    // plug/avahi/pastecat.avahi.php&lt;br /&gt;
    &lt;br /&gt;
    addAvahi('pastecat','fpcserver');&lt;br /&gt;
    &lt;br /&gt;
    function fpcserver($dates){&lt;br /&gt;
        global $staticFile;&lt;br /&gt;
        &lt;br /&gt;
        return (&amp;quot;&amp;lt;a class='btn' href='http://&amp;quot; .$dates['ip'] .&amp;quot;:&amp;quot;. $dates['port'].&amp;quot;'&amp;gt;Go to server&amp;lt;/a&amp;gt;  &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esto creará un botón al lado del anuncio de Avahi que apuntará a nuestro servidor.&lt;br /&gt;
&lt;br /&gt;
Ahora que ya tenemos nuestro servicio anunciado, queremos que este desaparezca una vez paremos el servidor de Pastecat. Este último paso es muy simple pero importante. Consiste en unas pocas lineas de código en la función 'stop' del ''script'' PHP. Hasta ahora, esta función solo llamaba al controlador Bash y paraba Pastecat, pero ahora también parará la publicación Avavhi y mostrará un breve comentario notificando que la llamada ha funcionado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    $temp = avahi_unpublish($avahi_type, $port);&lt;br /&gt;
    $flash = ptxt($temp);&lt;br /&gt;
    setFlash($flash);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Estas lineas tienen que ser añadidas justo después de la sentencia &amp;lt;code&amp;gt;execute_program_detached($cmd)&amp;lt;/code&amp;gt; en la función 'stop' de PHP.&lt;br /&gt;
&lt;br /&gt;
=== Final ===&lt;br /&gt;
&lt;br /&gt;
Finalmente añadir que todos los archivos implementados en este tutorial se pueden encontrar en un repositorio Github, que aparece en el apartado de Enlaces Externos, junto a este mismo tutorial en formato Markdown (md).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/Clommunity/Doc/tree/master/plugins/pastecat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;br /&gt;
[[ca:Cloudy_plug-ins]]&lt;br /&gt;
[[en:Cloudy_plug-ins]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_web_UI</id>
		<title>Cloudy web UI</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_web_UI"/>
				<updated>2015-12-03T17:15:10Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
La inferfaz web de usuario (web User Interface (UI)) de Cloudy utiliza una aplicación llamada cDistro &amp;lt;ref name=&amp;quot;cdistro&amp;quot;&amp;gt;cDistro git repository: https://github.com/Clommunity/cDistro&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''(Añadir qué es)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuración ==&lt;br /&gt;
&lt;br /&gt;
La configuración de cDistro se encuentra en &amp;lt;s&amp;gt;/etc/cdistro.conf&amp;lt;/s&amp;gt; /etc/cloudy/cloudy.conf&lt;br /&gt;
&lt;br /&gt;
Por defecto tiene el siguiente formato:&lt;br /&gt;
&lt;br /&gt;
 #cdistro config&lt;br /&gt;
 SERVER=&amp;quot;/usr/bin/php&amp;quot;&lt;br /&gt;
 OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
 BINDIP=&amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
 PORT=&amp;quot;7000&amp;quot;&lt;br /&gt;
 DOCROOT=&amp;quot;/var/local/cDistro&amp;quot;&lt;br /&gt;
 # SSHAUTH=1 &amp;lt;- check user with ssh2 connection http://www.php.net/manual/en/function.ssh2-auth-password.php (Require: libssh2-php)&lt;br /&gt;
 SSHAUTH=1&lt;br /&gt;
 # LOGIN=&amp;quot;root&amp;quot;&lt;br /&gt;
 ## PASSWORD = md5(md5('secret')) =&amp;gt; php -r 'echo md5(md5(&amp;quot;secret&amp;quot;)).&amp;quot;\n&amp;quot;;'&lt;br /&gt;
 #PASSWORD=&amp;quot;7022cd14c42ff272619d6beacdc9ffde&amp;quot;&lt;br /&gt;
 PORT_SSL=7443&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SERVER ===&lt;br /&gt;
&lt;br /&gt;
La ruta del ejecutable PHP.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;/usr/bin/php&amp;quot; - en el caso de Cloudy (Debian).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OPTS ===&lt;br /&gt;
&lt;br /&gt;
Opciones de PHP.&lt;br /&gt;
&lt;br /&gt;
''(Añadir referencias o más info y ejemplo)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BINDIP ===&lt;br /&gt;
&lt;br /&gt;
La dirección IP donde el servicio estará escuchando.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;127.0.0.1&amp;quot; - aceptará sólo peticiones desde localhost.&lt;br /&gt;
* &amp;quot;0.0.0.0&amp;quot; - aceptará peticiones desde cualquier dirección.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PORT ===&lt;br /&gt;
&lt;br /&gt;
El puerto que abrirà el servicio para escuchar peticiones.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;7000&amp;quot; - abre el puerto 7000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DOCROOT ===&lt;br /&gt;
&lt;br /&gt;
La ruta del ejecutable de la aplicación cDistro.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;/var/local/cDistro&amp;quot; - en el caso de Cloudy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SSLAUTH ===&lt;br /&gt;
&lt;br /&gt;
Parámetro que permite autenticación vía SSH2 en la aplicación, es decir, para utilizar las credenciales que permita el servidor SSH del sistema.&lt;br /&gt;
&lt;br /&gt;
Puede ser 0 o 1.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;1&amp;quot; - activa esta opción.&lt;br /&gt;
* &amp;quot;0&amp;quot; - desactiva esta opción (requerirá definir usuario y contraseña).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LOGIN ===&lt;br /&gt;
&lt;br /&gt;
El nombre de usuario para autenticarse en la aplicación.&lt;br /&gt;
&lt;br /&gt;
Ha de ser una cadena sin espacios.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;cloudy&amp;quot; - este usuario podrá hacer log-in con la contraseña de PASSWORD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PASSWORD ===&lt;br /&gt;
&lt;br /&gt;
La contraseña del usuario definido en LOGIN.&lt;br /&gt;
&lt;br /&gt;
Ha de ser un ''hash'' sobre ''hash'' MD5 (hexadecimal), es decir, un ''hash'' del ''hash'' de la contraseña: md5(md5(&amp;quot;PASSWORD&amp;quot;)).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;46d934e0f59ff1e2272f9f5f7950e5d9&amp;quot; - ''hash'' correspondiente a la cadena de carácteres &amp;quot;PASSWORD&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplos de cómo generar este ''hash'' en un terminal:'''&lt;br /&gt;
&lt;br /&gt;
 $ php -r 'echo md5(md5(&amp;quot;PASSWORD&amp;quot;)).&amp;quot;\n&amp;quot;;'&lt;br /&gt;
 46d934e0f59ff1e2272f9f5f7950e5d9&lt;br /&gt;
 $ printf &amp;quot;PASSWORD&amp;quot; | md5sum | awk '{printf $1}' | md5sum | awk '{print $1}'&lt;br /&gt;
 46d934e0f59ff1e2272f9f5f7950e5d9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PORT_SSL ===&lt;br /&gt;
&lt;br /&gt;
Puerto que utilizará Cloudy en la interfaz web con HTTPS (si SSL está instalado).&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;7443&amp;quot; - se accederá a la web https://IP_SERVIDOR:7443.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_paquetes_repositorio</id>
		<title>Cloudy paquetes repositorio</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_paquetes_repositorio"/>
				<updated>2015-09-15T16:44:28Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «'''''Nota: este artículo puede estar desactualizado y debería ser revisado. Ten precaución si sigues esta guía, y mejor pregunta antes en las listas de correo.'''''    ...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''''Nota: este artículo puede estar desactualizado y debería ser revisado. Ten precaución si sigues esta guía, y mejor pregunta antes en las listas de correo.'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Subir paquetes al repositorio de software de Cloudy (proyecto Clommunity) ==&lt;br /&gt;
&lt;br /&gt;
Estamos preparados para subir paquetes al repositorio público de Cloudy http://repo.clommunity-project.eu.&lt;br /&gt;
&lt;br /&gt;
Aquí requeriremos claves públicas para firmar y subir paquetes. Por supuesto, puedes editar los scripts y cambiar las rutas ''(paths)'' de acuerdo a tus necesidades.&lt;br /&gt;
&lt;br /&gt;
El repositorio está auto-firmado con una clave llamada &amp;quot;gcodis Distro Development Team&amp;quot;, más información en el mismo repositorio: http://repo.clommunity-project.eu. El auto-firmado previene que el repositorio permanezca no firmado si alguien sube paquetes sin firmar. Una firma para el repositio, que es añadida en el lado del cliente para permitir la instalación de la distro, y otra firma que depende del mantenedor o desarrollador para firmar el paquete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Claves públicas ===&lt;br /&gt;
&lt;br /&gt;
Para subir paquetes necesitamos conseguir '''tus claves''' públicas:&lt;br /&gt;
&lt;br /&gt;
* El '''ID de la clave pública GPG, subido a gpg.mit.edu'''. Con esta clave podrás firmar las subidas.&lt;br /&gt;
* La '''clave publica SSH''', para subir paquetes. Necesaria para acceder remotamente a la máquina del repositorio.&lt;br /&gt;
&lt;br /&gt;
Los paquetes son subidos por defecto a la rama ''unstable'' (usa el &amp;quot;log de cambios&amp;quot; ''(changelog)'' para ello). Nosotros utilizamos la herramienta de Debian &amp;lt;code&amp;gt;dput&amp;lt;/code&amp;gt; para subir los paquetes y firmarlos. El repositorio está auto-firmado con otra clave.&lt;br /&gt;
&lt;br /&gt;
Puedes '''enviar''' las claves públicas o IDs a la lista de correo del proyecto: ''clommunity-wp4''. De esta manera tendremos acceso a las claves públicas cuando sea necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Archivos ===&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración es:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.dput.cf&amp;lt;/code&amp;gt; es un archivo de configuración que tiene que ser copiado en el directorio ''home'' como &amp;lt;code&amp;gt;~/.dput.cf&amp;lt;/code&amp;gt;. Utilizado para subir paquetes con la herramienta de Debian &amp;lt;code&amp;gt;dput&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [repo.clommunity-project.eu]&lt;br /&gt;
 fqdn = repo.clommunity-project.eu&lt;br /&gt;
 method = scp&lt;br /&gt;
 login = repo&lt;br /&gt;
 incoming = /var/www/debian/mini-dinstall/incoming&lt;br /&gt;
 post_upload_command = ssh repo@repo.clommunity-project.eu &amp;quot;mini-dinstall -b&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creando paquetes ===&lt;br /&gt;
&lt;br /&gt;
Mira algunas maneras para crear paquetes en http://www.debian.org/doc/manuals/maint-guide/build.en.html.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subiendo paquetes ===&lt;br /&gt;
&lt;br /&gt;
Puedes usar el comando &amp;lt;code&amp;gt;dput&amp;lt;/code&amp;gt; de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ dput repo.clommunity-project.eu cloudy-base_0.1.3.5_i386.changes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recuerda guardar las versiones previas del archivo &amp;lt;code&amp;gt;~/.dput.cf&amp;lt;/code&amp;gt; en tu directorio &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Es importante escribir el nombre del repositorio ''(repo.clommunity-project.eu)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mejoras continuas ===&lt;br /&gt;
&lt;br /&gt;
El repositorio se mejora para funcionar mejor cuando es necesario dar un mejor servicio.&lt;br /&gt;
&lt;br /&gt;
Gracias por tus esfuerzos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_Alix</id>
		<title>Cloudy Alix</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_Alix"/>
				<updated>2015-09-11T02:32:28Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «Alix es una [https://es.wikipedia.org/wiki/Placa_computadora SBC] con un procesador AMD (x86) y varias interfaces de entrada-salida (serie, miniPCI, Ethernet, etc.). Es por...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alix es una [https://es.wikipedia.org/wiki/Placa_computadora SBC] con un procesador AMD (x86) y varias interfaces de entrada-salida (serie, miniPCI, Ethernet, etc.). Es por ello que se tiene que utilizar un sistema operativo preparado con los controladores ''(drivers)'' corresponendientes para hacer funcionar estas interfaces.&lt;br /&gt;
&lt;br /&gt;
''Nota: esta guía se ha hecho con una Debian especialmente preparada para funcionar en Alix, pero es posible que con otra distribución basada en Debian funcione con pasos similares.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conseguir Debian para Alix ==&lt;br /&gt;
&lt;br /&gt;
Puedes [https://code.google.com/p/debian-for-alix/ descargar de esta página] una imagen especial de Debian lista para funcionar en placas Alix una vez grabada en una tarjeta CF.&lt;br /&gt;
&lt;br /&gt;
=== Características/servicios incluidos ===&lt;br /&gt;
&lt;br /&gt;
* Sistema de archivos de sólo lectura, protege contra fallos de corriente y aumenta sustancialmente la vida de la tarjeta.&lt;br /&gt;
&lt;br /&gt;
* Servicios comunes disponibles en el primer arranque:&lt;br /&gt;
** serial terminal ( 38400n8 )&lt;br /&gt;
** dnsmasq ( servidores DNS y DHCP  )&lt;br /&gt;
** iptables ( reglas firewall y compartición de Internet )&lt;br /&gt;
** samba ( compartición de archivos de Microsoft Windows )&lt;br /&gt;
** cups ( servidor de impresora )&lt;br /&gt;
** vsftpd ( servidor FTP )&lt;br /&gt;
** nginx with fastcgi ( servidor HTTP )&lt;br /&gt;
** minidlna ( servidor multimedia )&lt;br /&gt;
** openssh ( terminal y SFTP )&lt;br /&gt;
** stunnel ( motor SSL, soporte HTTPS pre-configurado para ''nginx'' y ''transmission'' )&lt;br /&gt;
** tinyproxy ( servidor proxy HTTP/HTTPS )&lt;br /&gt;
** pptpd ( servidor VPN, MS Windows tiene un cliente incorporado )&lt;br /&gt;
** snmpd ( servidor SNMP )&lt;br /&gt;
** openvpn ( servidor y cliente VPN )&lt;br /&gt;
** openconnect ( cliente VPN client, compatible con Cisco )&lt;br /&gt;
** external storage automount and sharing basic web admin panel performance monitor ( on web panel )&lt;br /&gt;
&lt;br /&gt;
* Servicios adicionales disponibles:&lt;br /&gt;
** transmission ( torrent p2p )&lt;br /&gt;
** hostapd ( wireless access point / necesita tarjeta miniPCI o usb wifi )&lt;br /&gt;
&lt;br /&gt;
* Sistema de mantenimiento a través de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;, úsalo para actualizar, instalar o eliminar aplicaciones y parches.&lt;br /&gt;
&lt;br /&gt;
* Ten en cuenta que es una Debian i386, por lo que cualquier software disponible para esta arquitectura puede ser instalado, considerando las limitaciones de potencia.&lt;br /&gt;
&lt;br /&gt;
* Los archivos de imagen están disponibles para descargar en GoogleDrive:&lt;br /&gt;
** debian-for-alix-v1.img.bz2 (debian 6 based) version 1 wiki page&lt;br /&gt;
** debian-for-alix-v2.img.bz2 (debian 6 based) version 2 wiki page&lt;br /&gt;
** debian-for-alix-v3.img.bz2 (debian 7 based) Debian instalación básica, sólo servidor SSH y utilidades básicas, también el terminal serie está preparado, pero no tiene el sistema de ficheros en sólo lectura ni otras características.&lt;br /&gt;
&lt;br /&gt;
* La configuración por defecto es:&lt;br /&gt;
&amp;lt;code&amp;gt;eth0: DHCP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;eth1: static 172.16.210.254&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;eth2: sin configuración&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;usuario: alix (root tiene el acceso bloqueado)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar la imagen Debian en la CF ==&lt;br /&gt;
&lt;br /&gt;
=== Identificar la CF ===&lt;br /&gt;
&lt;br /&gt;
La tarjeta CF necesita ser formateada con ext2. Asegúrate de qué dispositivo es tu tarjeta, de lo contrario podrías borrar el S.O. de tu ordenador. En este ejemplo la CF está en &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Puedes probar mirando en &amp;lt;code&amp;gt;/proc/bus/usb/devices&amp;lt;/code&amp;gt;. Deberías ver una sección con una linea ''S:'' y el nombre de tu lector, y una linea ''I:'' con &amp;lt;code&amp;gt;Driver=usb-storage&amp;lt;/code&amp;gt;. Si lo ves, es que el kernel reconoce el dispositivo.&lt;br /&gt;
&lt;br /&gt;
Instalar el paquete &amp;lt;code&amp;gt;sg3-utils&amp;lt;/code&amp;gt; si lo tienes ya (en Debian: &amp;lt;code&amp;gt;apt-get install sg3-utils&amp;lt;/code&amp;gt;). Para comprobar tus dispositivos SCSI, ejecuta el comando:&lt;br /&gt;
 sg_scan -i&lt;br /&gt;
&lt;br /&gt;
Deberías ver algo como esto:&lt;br /&gt;
 /dev/sg0: scsi0 channel=0 id=0 lun=0 [em]  type=0&lt;br /&gt;
 eUSB      Compact Flash     5.09 [wide=0 sync=0 cmdq=0 sftre=0 pq=0x0]    &lt;br /&gt;
&lt;br /&gt;
Muestra que el dispositivo “raw” SCSI asociado con tu lector es &amp;lt;code&amp;gt;/dev/sg0&amp;lt;/code&amp;gt;. Puedes confirmar que el ''driver'' está funcionando mirando el archivo &amp;lt;code&amp;gt;/proc/scsi/scsi&amp;lt;/code&amp;gt;. Ahora, para determinar el dispositivo SCSI real asociado con tu lector ejecuta el comando:&lt;br /&gt;
 sg_map&lt;br /&gt;
&lt;br /&gt;
Verás una salida como esta:&lt;br /&gt;
 /dev/sg0  /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Eso es todo, tu lector de tarjetas es &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt;. La primera (y probablemente la única) partición es &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copiar la imagen en la CF ===&lt;br /&gt;
&lt;br /&gt;
Para instalar la imagen en la tarjeta CF puedes hacerlo con el siguiente comando:&lt;br /&gt;
 bzcat debian-for-alix-v3.img.bz2 | dd of=/dev/sdb bs=16k&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar Cloudy ==&lt;br /&gt;
&lt;br /&gt;
Para instalar Cloudy puedes seguir las instrucciones para [[Cloudy_en_Debian|convertir una instalación básica de Debian en Cloudy]] añadiendo al sistema los archivos y herramientas específicas de la distribución.&lt;br /&gt;
&lt;br /&gt;
Lo llamamos &amp;quot;cloudynizar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Recomendamos usar un script para automatizar el proceso. Puedes saber cómo en la [[cloudynizar|página de esta wiki que explica cómo &amp;quot;cloudynizar&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_Beaglebone</id>
		<title>Cloudy Beaglebone</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_Beaglebone"/>
				<updated>2015-09-10T20:19:52Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «Beaglebone es una [https://es.wikipedia.org/wiki/Placa_computadora SBC] con un procesador ARM y varias interfaces de entrada-salida. Es por ello que se tiene que utilizar u...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beaglebone es una [https://es.wikipedia.org/wiki/Placa_computadora SBC] con un procesador ARM y varias interfaces de entrada-salida. Es por ello que se tiene que utilizar un sistema operativo preparado para funcionar en esta arquitectura y con los controladores ''(drivers)'' corresponendientes para hacer funcionar estas interfaces.&lt;br /&gt;
&lt;br /&gt;
''Nota: esta guía se ha hecho con la distribución Ubuntu, pero es posible que con otra distribución basada en Debian funcione con los mismos pasos.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar el sistema ==&lt;br /&gt;
&lt;br /&gt;
* Insertar la tarjeta microSD en el ordenador y observar que dispositivo se registra tecleado &amp;lt;code&amp;gt;ls /dev/sd&amp;lt;/code&amp;gt;. Si no estas seguro, elimina la tarjeta y la entrada desaparecerá. Una vez sepas que dispositivo corresponde a tu tarjeta sigue las siguientes instrucciones reemplazando &amp;lt;code&amp;gt;/dev/sdX&amp;lt;/code&amp;gt; por el de tu microSD en tu sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Empezar particionando la tarjeta microSD escribiendo &amp;lt;code&amp;gt;fdisk /dev/sdX&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Inicializar una nueva tabla de particiones seleccionando &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt;, luego verifica que este vacía seleccionando &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; ''(print)''.&lt;br /&gt;
# Crear una partición de arranque ''(boot)'' seleccionando &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; ''(new)'', luego &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; para ''primary'', y &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; para especificar la primera partición. Pulsar ''enter'' para aceptar el primer sector por defecto y especifica &amp;lt;code&amp;gt;4095&amp;lt;/code&amp;gt; para el último sector.&lt;br /&gt;
# Cambiar el tipo de partición a FAT16 seleccionando &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; ''(type)'' y &amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt; para ''‘W95 FAT16 (LBA)’''.&lt;br /&gt;
# Marcar la partición como arrancable selecionando &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; y luego &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Crear la partición de datos para el sistema de ficheros seleccionado &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; ''(new)'', luego &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; ''(primary)'' y &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; para especificar la segunda partición. Aceptar los valores por defecto para el primer y último sector pulsando ''enter'' cada vez (x2).&lt;br /&gt;
# Pulsar &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; para ‘imprimir’ la tabla de particiones.&lt;br /&gt;
# Finalmente, guardar los cambios seleccionando &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; para &amp;quot;escribir&amp;quot; ''(write)'' la tabla de particiones y salir de ''fdisk''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Formatear las particiones e instalar el sistema de arranque y el sistema raíz.&lt;br /&gt;
# Formatear la partición 1 como FAT escribiendo &amp;lt;code&amp;gt;mkfs.vfat /dev/sdX1&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Formatear la partición 2 como ext4 escribiendo &amp;lt;code&amp;gt;mkfs.ext4 /dev/sdX2&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Instalar ''u-boot'' en la tarjeta microSD.&lt;br /&gt;
 wget http://s3.armhf.com/dist/bone/bone-uboot.tar.xz&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 mount /dev/sdX1 boot&lt;br /&gt;
 tar xJvf bone-uboot.tar.xz -C boot&lt;br /&gt;
 umount boot&lt;br /&gt;
# Instalar el sistema raiz de ficheros deseado en la tarjeta microSD (Ubuntu Trusty en este ejemplo).&lt;br /&gt;
 wget http://s3.armhf.com/dist/bone/ubuntu-trusty-14.04-rootfs-3.14.4.1-bone-armhf.com.tar.xz&lt;br /&gt;
 mkdir rootfs&lt;br /&gt;
 mount /dev/sdX2 rootfs&lt;br /&gt;
 tar xJvf ubuntu-trusty-14.04-rootfs-3.14.4.1-bone-armhf.com.tar.xz -C rootfs&lt;br /&gt;
 umount rootfs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La tarjeta microSD ya está lista para arrancar. Nótese que para esta instalación de Ubuntu, el userid de login es ''ubuntu'' y la contraseña es ''ubuntu''.&lt;br /&gt;
&lt;br /&gt;
''Nota: la caché de paquetes ha sido vaciada para reducir el tamaño de la imagen. Ejecuta &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; después de iniciar para actualizar la caché de paquetes, luego ejecuta &amp;lt;code&amp;gt;apt-get upgrade&amp;lt;/code&amp;gt; para instalar las actualizaciones.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar Cloudy ==&lt;br /&gt;
&lt;br /&gt;
Para instalar Cloudy puedes seguir las instrucciones para [[Cloudy_en_Debian|convertir una instalación básica de Debian en Cloudy]] añadiendo al sistema los archivos y herramientas específicas de la distribución.&lt;br /&gt;
&lt;br /&gt;
Lo llamamos &amp;quot;cloudynizar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Recomendamos usar un script para automatizar el proceso. Puedes saber cómo en la [[cloudynizar|página de esta wiki que explica cómo &amp;quot;cloudynizar&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_Raspberry_Pi</id>
		<title>Cloudy Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_Raspberry_Pi"/>
				<updated>2015-09-10T18:00:14Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La Raspberry Pi es un pequeño y económico ordenador del tamaño de una tarjeta de crédito, creado principalmente para ser utilizada con fines educativos y en pequeños proyectos.&lt;br /&gt;
&lt;br /&gt;
Esta placa tiene un procesador ARM y diversas interfaces de entrada-salida; vídeo, audio, Ethernet, USB, GPIO, etc. Es por ello que se tiene que utilizar un sistema operativo preparado para funcionar en esta arquitectura y con los controladores (''drivers'') corresponendientes para hacer funcionar estas interfaces.&lt;br /&gt;
&lt;br /&gt;
En nuestro caso, para instalar Cloudy se preparará la Raspberry Pi con una distribución ya adaptada basada en Debian como es Raspbian, y una vez hecho esto se &amp;quot;cloudynizará&amp;quot; para añadir todo el contenido propio de Cloudy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Nota:''' Esta guia, así como diversas pruebas de instalación de Cloudy, se ha hecho con el S.O. Raspbian; pero es posible que con otra distribución basada en Debian funcione con los mismos pasos.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Descargar Raspbian ==&lt;br /&gt;
&lt;br /&gt;
Vamos a la [https://www.raspberrypi.org/downloads/ página oficial] y descargamos la imagen ISO del sistema operativo que nos servirá de base.&lt;br /&gt;
&lt;br /&gt;
Alternativamente se puede utilizar una variante de Raspbian, la [http://sirlagz.net/2013/07/19/raspbian-server-edition-2-5/ Raspbian Server Edition], que está preparada sin paquetes innecessarios (sistema gráfico, audio, etc.) para el uso de la Raspberry Pi como servidor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar y configurar Raspbian ==&lt;br /&gt;
&lt;br /&gt;
Grabamos la imagen en una tarjeta de memoria SD. Según el sistema operativo de tu ordenador puedes seguir una de estas guías (en inglés) para grabar imágenes ISO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/linux.md Linux]&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/mac.md Mac OS]&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/windows.md Windows]&lt;br /&gt;
&lt;br /&gt;
A continuación instertamos la tarjeta y encendemos la placa para comenzar el proceso de configuración con la herramienta &amp;lt;code&amp;gt;raspi-config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Básicamente lo que se recomienda hacer es:&lt;br /&gt;
# Expandir el sistema de ficheros para utilizar todo el espacio de la SD.&lt;br /&gt;
# Cambiar la contrasseña del usuario '''pi''' (por defecto).&lt;br /&gt;
# Cambiar la localización si queremos otro idioma, el uso horario (''timezone'') y el mapa de teclado.&lt;br /&gt;
# En opciones avanzadas; activar el servidor SSH, cambiar el ''hostname'' y actualizar la &amp;lt;code&amp;gt;raspi-config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si quieres hacer más cambios, puedes encontrar más información en la [https://www.raspberrypi.org/documentation/configuration/raspi-config.md documentación de raspi-config].&lt;br /&gt;
&lt;br /&gt;
No nos extenderemos más en explicar como se instala y configura Raspbian ya que está ampliamente documentado en Internet.&lt;br /&gt;
&lt;br /&gt;
=== Opciones adicionales ===&lt;br /&gt;
&lt;br /&gt;
Como se ha comentaado más arriba, hay una versión personalizada para funcionar como servidor, que elimina paquetes innecesarios. Ésta tendría que funcionar igual que la Raspbian original, pero es más recomendable hacer esta adaptación después de manera manual o automatizándolo con el ''script'' que desinstala los paquetes para dejar el sistema como la Raspbian Server Edition.&lt;br /&gt;
&lt;br /&gt;
Podéis obtener más información y descargar este ''script'' en [http://sirlagz.net/2013/08/03/raspbian-server-edition-scripts/ la siguiente página].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar Cloudy ==&lt;br /&gt;
&lt;br /&gt;
Para instalar Cloudy puedes seguir las instrucciones para [[Cloudy_en_Debian|convertir una instalación básica de Debian en Cloudy]] añadiendo al sistema los archivos y herramientas específicas de la distribución.&lt;br /&gt;
&lt;br /&gt;
Lo llamamos &amp;quot;cloudynizar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Recomendamos usar un script para automatizar el proceso. Puedes saber cómo en la [[cloudynizar|página de esta wiki que explica cómo &amp;quot;cloudynizar&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_en_Debian</id>
		<title>Cloudy en Debian</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_en_Debian"/>
				<updated>2015-09-10T17:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «Puedes convertir una instalación básica de Debian en Cloudy siguiendo estos pasos:   1. Entrar vía SSH como usuario root (o una vez logeado) o ejecuta los próximos coma...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Puedes convertir una instalación básica de Debian en Cloudy siguiendo estos pasos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Entrar vía SSH como usuario root (o una vez logeado) o ejecuta los próximos comandos con la herramienta ''sudo''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Actualizar la fecha del servidor instalando un cliente NTP ''(opcional)''.&lt;br /&gt;
&lt;br /&gt;
 apt-get install ntp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Añadir los backports de Debian, y los repositorios de Clommunity y Guifi.&lt;br /&gt;
* Backports Debian:&lt;br /&gt;
 echo &amp;quot;deb http://ftp.debian.org/debian wheezy-backports main contrib&amp;quot; &amp;gt; /etc/apt/sources.list.d/backports.list &lt;br /&gt;
* Repositorio Clommunity:&lt;br /&gt;
 echo &amp;quot;deb http://repo.clommunity-project.eu/debian unstable/&amp;quot; &amp;gt; /etc/apt/sources.list.d/cloudy.list &lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key A59C5DC8 &amp;amp;&amp;amp; gpg --export --armor A59C5DC8 | apt-key add - &lt;br /&gt;
* Repositorio Guifi:&lt;br /&gt;
 echo &amp;quot;deb http://serveis.guifi.net/debian guifi/&amp;quot; &amp;gt; /etc/apt/sources.list.d/serveis.list &lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key 2E484DAB &amp;amp;&amp;amp; gpg --export --armor 2E484DAB | apt-key add -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Instalar algunos paquetes de Debian.&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
 apt-get install -y openssh-server openssh-client getinconf-client curl unzip make avahi-utils tahoe-lafs mysql-server python2.7 g++ make checkinstall openjdk-6-jre locales php5 libssh2-php libapache2-mod-encoding &lt;br /&gt;
&lt;br /&gt;
'''''Nota''': si aparece este error: &amp;quot;Error W: GPG error: http://ftp.debian.org wheezy-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY8B48AD6246925553&amp;quot; usa este comando:&lt;br /&gt;
 apt-get --allow-unauthenticated upgrade&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Instalar los paquetes ''&amp;quot;non-Debian&amp;quot;'' de Cloudy.&lt;br /&gt;
 curl &amp;quot;https://raw.githubusercontent.com/Clommunity/lbmake/master/hooks/getinconf-client.chroot&amp;quot; | sh -&lt;br /&gt;
 curl &amp;quot;https://raw.githubusercontent.com/Clommunity/lbmake/master/hooks/avahi-ps.chroot&amp;quot; | sh -&lt;br /&gt;
 curl &amp;quot;https://raw.githubusercontent.com/Clommunity/lbmake/master/hooks/cDistro.chroot&amp;quot; | sh -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
g. Reiniciar.&lt;br /&gt;
&lt;br /&gt;
Después de esto, podrás entrar a la interfaz web de usuario en http://IP_dispositivo:7000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_Raspberry_PI</id>
		<title>Cloudy Raspberry PI</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_Raspberry_PI"/>
				<updated>2015-07-22T00:59:56Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página redirigida a Cloudy Raspberry Pi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Cloudy_Raspberry_Pi]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_Raspberry_Pi</id>
		<title>Cloudy Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_Raspberry_Pi"/>
				<updated>2015-07-21T23:22:29Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La Raspberry Pi es un pequeño y económico ordenador del tamaño de una tarjeta de crédito, creado principalmente para ser utilizada con fines educativos y en pequeños proyectos.&lt;br /&gt;
&lt;br /&gt;
Esta placa tiene un procesador ARM y diversas interfaces de entrada-salida; vídeo, audio, Ethernet, USB, GPIO, etc. Es por ello que se tiene que utilizar un sistema operativo preparado para funcionar en esta arquitectura y con los controladores (''drivers'') corresponendientes para hacer funcionar estas interfaces.&lt;br /&gt;
&lt;br /&gt;
En nuestro caso, para instalar Cloudy se preparará la Raspberry Pi con una distribución ya adaptada basada en Debian como es Raspbian, y una vez hecho esto se &amp;quot;cloudynizará&amp;quot; para añadir todo el contenido propio de Cloudy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Nota:''' Esta guia, así como diversas pruebas de instalación de Cloudy, se ha hecho con el S.O. Raspbian; pero es posible que con otra distribución basada en Debian funcione con los mismos pasos.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Descargar Raspbian ==&lt;br /&gt;
&lt;br /&gt;
Vamos a la [https://www.raspberrypi.org/downloads/ página oficial] y descargamos la imagen ISO del sistema operativo que nos servirá de base.&lt;br /&gt;
&lt;br /&gt;
Alternativamente se puede utilizar una variante de Raspbian, la [http://sirlagz.net/2013/07/19/raspbian-server-edition-2-5/ Raspbian Server Edition], que está preparada sin paquetes innecessarios (sistema gráfico, audio, etc.) para el uso de la Raspberry Pi como servidor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar y configurar Raspbian ==&lt;br /&gt;
&lt;br /&gt;
Grabamos la imagen en una tarjeta de memoria SD. Según el sistema operativo de tu ordenador puedes seguir una de estas guías (en inglés) para grabar imágenes ISO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/linux.md Linux]&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/mac.md Mac OS]&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/windows.md Windows]&lt;br /&gt;
&lt;br /&gt;
A continuación instertamos la tarjeta y encendemos la placa para comenzar el proceso de configuración con la herramienta &amp;lt;code&amp;gt;raspi-config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Básicamente lo que se recomienda hacer es:&lt;br /&gt;
# Expandir el sistema de ficheros para utilizar todo el espacio de la SD.&lt;br /&gt;
# Cambiar la contrasseña del usuario '''pi''' (por defecto).&lt;br /&gt;
# Cambiar la localización si queremos otro idioma, el uso horario (''timezone'') y el mapa de teclado.&lt;br /&gt;
# En opciones avanzadas; activar el servidor SSH, cambiar el ''hostname'' y actualizar la &amp;lt;code&amp;gt;raspi-config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si quieres hacer más cambios, puedes encontrar más información en la [https://www.raspberrypi.org/documentation/configuration/raspi-config.md documentación de raspi-config].&lt;br /&gt;
&lt;br /&gt;
No nos extenderemos más en explicar como se instala y configura Raspbian ya que está ampliamente documentado en Internet.&lt;br /&gt;
&lt;br /&gt;
=== Opciones adicionales ===&lt;br /&gt;
&lt;br /&gt;
Como se ha comentaado más arriba, hay una versión personalizada para funcionar como servidor, que elimina paquetes innecesarios. Ésta tendría que funcionar igual que la Raspbian original, pero es más recomendable hacer esta adaptación después de manera manual o automatizándolo con el ''script'' que desinstala los paquetes para dejar el sistema como la Raspbian Server Edition.&lt;br /&gt;
&lt;br /&gt;
Podéis obtener más información y descargar este ''script'' en [http://sirlagz.net/2013/08/03/raspbian-server-edition-scripts/ la siguiente página].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar Cloudy ==&lt;br /&gt;
&lt;br /&gt;
Para instalar Cloudy lo que hacemos es &amp;quot;cloudynizar&amp;quot; el sistema para añadir los ficheros y herramientas propios de la distribución Cloudy.&lt;br /&gt;
&lt;br /&gt;
Para hacer esto, podéis seguir las instrucciones de la [[cloudynizar|página de esta wiki que explica cómo cloudynizar un sistema Debian]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_Raspberry_Pi</id>
		<title>Cloudy Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_Raspberry_Pi"/>
				<updated>2015-07-21T20:14:20Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «La Raspberry Pi es un pequeño y económico ordenador del tamaño de una tarjeta de crédito, creado principalmente para ser utilizada con fines educativos y en pequeños p...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La Raspberry Pi es un pequeño y económico ordenador del tamaño de una tarjeta de crédito, creado principalmente para ser utilizada con fines educativos y en pequeños proyectos.&lt;br /&gt;
&lt;br /&gt;
Esta placa tiene un procesador ARM y diversas interfaces de entrada-salida; vídeo, audio, Ethernet, USB, GPIO, etc. Es por ello que se tiene que utilizar un sistema operativo preparado para funcionar en esta arquitectura y con los controladores (''drivers'') corresponendientes para hacer funcionar estas interfaces.&lt;br /&gt;
&lt;br /&gt;
En nuestro caso, para instalar Cloudy se preparará la Raspberry Pi con una distribución ya adaptada basada en Debian como es Raspbian, y una vez hecho esto se &amp;quot;cloudinizará&amp;quot; para añadir todo el contenido propio de Cloudy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Nota:''' Esta guia, así como diversas pruebas de instalación de Cloudy, se ha hecho con el S.O. Raspbian; pero es posible que con otra distribución basada en Debian funcione con los mismos pasos.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Descargar Raspbian ==&lt;br /&gt;
&lt;br /&gt;
Vamos a la [https://www.raspberrypi.org/downloads/ página oficial] y descargamos la imagen ISO del sistema operativo que nos servirá de base.&lt;br /&gt;
&lt;br /&gt;
Alternativamente se puede utilizar una variante de Raspbian, la [http://sirlagz.net/2013/07/19/raspbian-server-edition-2-5/ Raspbian Server Edition], que está preparada sin paquetes innecessarios (sistema gráfico, audio, etc.) para el uso de la Raspberry Pi como servidor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar y configurar Raspbian ==&lt;br /&gt;
&lt;br /&gt;
Grabamos la imagen en una tarjeta de memoria SD. Según el sistema operativo de tu ordenador puedes seguir una de estas guías (en inglés) para grabar imágenes ISO.&lt;br /&gt;
&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/linux.md Linux]&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/mac.md Mac OS]&lt;br /&gt;
* [http://www.raspberrypi.org/documentation/installation/installing-images/windows.md Windows]&lt;br /&gt;
&lt;br /&gt;
A continuación instertamos la tarjeta y encendemos la placa para comenzar el proceso de configuración con la herramienta &amp;lt;code&amp;gt;raspi-config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Básicamente lo que se recomienda hacer es:&lt;br /&gt;
# Expandir el sistema de ficheros para utilizar todo el espacio de la SD.&lt;br /&gt;
# Cambiar la contrasseña del usuario '''pi''' (por defecto).&lt;br /&gt;
# Cambiar la localización si queremos otro idioma, el uso horario (''timezone'') y el mapa de teclado.&lt;br /&gt;
# En opciones avanzadas; activar el servidor SSH, cambiar el ''hostname'' y actualizar la &amp;lt;code&amp;gt;raspi-config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si quieres hacer más cambios, puedes encontrar más información en la [https://www.raspberrypi.org/documentation/configuration/raspi-config.md documentación de raspi-config].&lt;br /&gt;
&lt;br /&gt;
No nos extenderemos más en explicar como se instala y configura Raspbian ya que está ampliamente documentado en Internet.&lt;br /&gt;
&lt;br /&gt;
=== Opciones adicionales ===&lt;br /&gt;
&lt;br /&gt;
Como se ha comentaado más arriba, hay una versión personalizada para funcionar como servidor, que elimina paquetes innecesarios. Ésta tendría que funcionar igual que la Raspbian original, pero es más recomendable hacer esta adaptación después de manera manual o automatizándolo con el ''script'' que desinstala los paquetes para dejar el sistema como la Raspbian Server Edition.&lt;br /&gt;
&lt;br /&gt;
Podéis obtener más información y descargar este ''script'' en [http://sirlagz.net/2013/08/03/raspbian-server-edition-scripts/ la siguiente página].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalar Cloudy ==&lt;br /&gt;
&lt;br /&gt;
Para instalar Cloudy lo que hacemos es &amp;quot;cloudinizar&amp;quot; el sistema para añadir los ficheros y herramientas propios de la distribución Cloudy.&lt;br /&gt;
&lt;br /&gt;
Para hacer esto, podéis seguir las instrucciones de la [[cloudinizar|página de esta wiki que explica cómo cloudinizar un sistema Debian]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_en_nodo_cliente</id>
		<title>Cloudy en nodo cliente</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_en_nodo_cliente"/>
				<updated>2015-07-17T15:35:06Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «Cloudy utiliza un sistema de publicación y búsqueda de servicios para compartirlos con otros Cloudys. Para hacer esto, actualmente se emplea [https://www.serfdom.io/ Serf...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cloudy utiliza un sistema de publicación y búsqueda de servicios para compartirlos con otros Cloudys. Para hacer esto, actualmente se emplea [https://www.serfdom.io/ Serf].&lt;br /&gt;
&lt;br /&gt;
Este software abre un puerto TCP en el servidor (Cloudy) para escuchar peticiones y poder comunicarse con otros.&lt;br /&gt;
&lt;br /&gt;
Por tanto, para que un Cloudy instalado en un nodo cliente pueda interactuar con los otros Cloudys es necesario hacer algunos pasos adicionales:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Saber la dirección IP pública del nodo (10.x.x.x); no la IP asignada a Cloudy sino la IP asignada al nodo cliente.&lt;br /&gt;
* Puedes ir a la página de [http://guifi.net Guifi] de tu nodo para saber cuál es la IP de éste.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Modificar un par de ficheros y declarar la IP pública del nodo. Tienes que añadir la IP a los ficheros de configuración para que el software pueda anunciar correctamente la IP pública y no la privada.&lt;br /&gt;
* Para hacerlo, con el usuario '''''root''''', entra por linea de comandos lo siguiente:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@cloudy:~# echo &amp;quot;ADVERTISE_IP=10.x.x.x&amp;quot; &amp;gt;&amp;gt; /etc/avahi-ps-serf.conf&lt;br /&gt;
root@cloudy:~# echo &amp;quot;PUBLIC_IP=10.x.x.x&amp;quot; &amp;gt;&amp;gt; /etc/getinconf-client.conf&lt;br /&gt;
root@cloudy:~# /etc/init.d/serf restart&lt;br /&gt;
&lt;br /&gt;
(donde 10.x.x.x es la IP pública de tu nodo)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
En un nodo con dirección IP 10.1.2.3 los ficheros tendrían que ser como:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /etc/avahi-ps-serf.conf&lt;br /&gt;
SERF_RPC_ADDR=127.0.0.1:7373&lt;br /&gt;
SERF_BIND=5000&lt;br /&gt;
SERF_JOIN=10.139.40.82:5000&lt;br /&gt;
ADVERTISE_IP=10.1.2.3&lt;br /&gt;
&lt;br /&gt;
  /etc/getinconf-client.conf &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Automatically generate file&lt;br /&gt;
GTC_SERVER_URL=http://10.139.40.84/index.php&lt;br /&gt;
NETWORK_NAME=demo&lt;br /&gt;
NETWORK_KEY=demo&lt;br /&gt;
INTERNAL_DEV=eth0&lt;br /&gt;
# PORT=665&lt;br /&gt;
# GETINCONF_IGNORE=1&lt;br /&gt;
GETINCONF_IGNORE=1&lt;br /&gt;
PUBLIC_IP=10.1.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Hacer una redirección (''port forwarding'') del puerto 5000 (''Serf'') en el node.  Y si quieres tener más servicios tendrás que redireccionar el puerto de cada uno de éstos.&lt;br /&gt;
* La configuración para hacer esto dependerá del dispositivo que tengas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Portada</id>
		<title>Portada</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Portada"/>
				<updated>2015-05-27T13:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
{| style=&amp;quot;background:#f6f6f6; border:1px solid #C7D0F8; font-size:107%; -moz-border-radius:1em; -webkit-border-radius:1em;border-radius:1em;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; style=&amp;quot;padding:12px 17px 5px 17px&amp;quot; |&lt;br /&gt;
'''Guifi.net''' es de todos, participa [[conectar|conectando]] tu [[tramo de la red]] con la de los demás.&lt;br /&gt;
&lt;br /&gt;
Es un proyecto colaborativo [[organización horizontal|organizado horizontalmente]] que agrupa tanto a personas individuales como a colectivos, empresas y administraciones.&lt;br /&gt;
&lt;br /&gt;
Es abierto, por lo que todo el mundo puede participar en igualdad de condiciones, en el marco de [http://guifi.net/es/ProcomunXOLN Procomún de la Red Abierta, Libre y Neutral]&lt;br /&gt;
&amp;lt;div style=&amp;quot; text-align: right&amp;quot;&amp;gt;[[Guifi.net|Más sobre Guifi.net]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width:100%; background:#f6f6f6&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#f6f6f6; text-align: right; width 30%&amp;quot; |&amp;lt;div style=&amp;quot;width: 400px; margin: 0 auto; background-color: #fcfcfc; border: 1px solid #ccc; border-bottom: 5px groove #999999; border-right:5px groove #999999; text-align: center; padding: 0.4em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 162%; padding: 0.1em;&amp;quot;&amp;gt;Bienvenid@ al wiki de '''Guifi.net'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 95%;&amp;quot;&amp;gt;Documentación sobre la red abierta, libre y neutral.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;En estos momentos tenemos [[Especial:Estadísticas|{{NUMBEROFARTICLES}}]] [[Especial:Todas|artículos]] en español.&lt;br /&gt;
[[Especial:PáginasRequeridas|Escribir una página requerida]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;background:#f6f6f6; width:100%;&amp;quot;&lt;br /&gt;
|''La documentación de guifi.net contiene los documentos de referencia para usuarios nuevos, experimentados y desarrolladores. Sé libre [[Qué es un wiki|de editar esta wiki]] para mejorar su contenido.''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div style=&amp;quot; text-align: center&amp;quot;&amp;gt;Contacta: [http://guifi.net/es/forum/231 Foros] '''|''' [http://lists.guifi.net Listas de correo] '''|''' [http://irc.guifi.net/?channels=guifi Chat]&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;mp-upper&amp;quot; style=&amp;quot;width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; background:#FFFFE0; border:1px solid #EECFA1; padding:10px; margin-bottom:7px; vertical-align:top; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-tfa&amp;quot;&amp;gt;&amp;lt;!--Selector per a [[meta:Mobile]]--&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-left&amp;quot; style=&amp;quot;vertical-align:top; background:#FFFFE0; border-spacing: 0px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#FFDEAD; border:1px solid #EECFA1; border-right:0px; padding:0px; font-size:150%; vertical-align:middle; font-weight:normal; width:100%;&amp;quot; | Cómo conectarse a Guifi.net&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-left:0px; padding:0px; vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;color:#000; background:#FFFFE0; padding:15px 5px&amp;quot; | &amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[tres pasos|Cómo dar de alta y enlazar un nodo]]&lt;br /&gt;
* [[Elige el material]]&lt;br /&gt;
* [[Configura tu ordenador]]&lt;br /&gt;
* [[Buenas Prácticas|Código de buenas prácticas]]&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1px solid transparent;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:50%;background:#f5fffa;border:1px solid #99CC33;padding:10px;margin-bottom:7px; vertical-align:top;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em; &amp;quot; | &lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-left&amp;quot; style=&amp;quot;vertical-align:top; background:#f5fffa; border-spacing: 0px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-right:0px; padding:0px; font-size:150%; vertical-align:middle; font-weight:normal; width:100%;&amp;quot; | Supernodos, islas y nuevas zonas&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-left:0px; padding:0px; vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;color:#000; background:#f5fffa; padding:15px 5px&amp;quot; |&amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Empezar el proyecto en una nueva zona]]&lt;br /&gt;
* [[Empezar una isla desde 0|Comenzar una isla desde cero]]&lt;br /&gt;
* [[Crear un supernodo]]&lt;br /&gt;
* [[Buenas Prácticas|Código de buenas prácticas]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;mp-upper&amp;quot; style=&amp;quot;width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; style=&amp;quot;background:#f5faff;border:1px solid #cedff2;padding:10px;margin-bottom:7px; vertical-align:top;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em; &amp;quot; | &lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-dyk&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
== [[Legal]] ==&lt;br /&gt;
* [[Ayuntamientos]] / [[Anexo:Guifi.net en Ayuntamientos]]&lt;br /&gt;
* [[Associación|Constitución de una asociación]]&lt;br /&gt;
* [[Legislaciones|Legislaciones Países]]&lt;br /&gt;
* [[FAQ_Legal|FAQ]]&lt;br /&gt;
* [[Comunicación_comunidad|Cómo realizar la comunicación de instalación de nodo guifi.net a la Comunidad de Vecinos]]&lt;br /&gt;
&lt;br /&gt;
== Red ==&lt;br /&gt;
=== Los básicos en la web ===&lt;br /&gt;
* [[Zona|Crear y modificar una zona]]&lt;br /&gt;
* [[Añadir_un_nodo_de_guifi.net|Añadir un nodo de guifi.net]]&lt;br /&gt;
* [[Servicios|Crear servicios y vincularlos en los servidores]]&lt;br /&gt;
* [[Herramientas|Herramientas (localización de IPs y MACs, estadísticas, mapas de enrutamiento, etc.)]]&lt;br /&gt;
&lt;br /&gt;
=== Infraestructura ===&lt;br /&gt;
* [[Crear_un_supernodo|Montaje de supernodos]]&lt;br /&gt;
* [[Filtros de red]]&lt;br /&gt;
* [[Enlaces virtuales]]&lt;br /&gt;
* [[Herramienta para buscar rangos de IPs libres]]&lt;br /&gt;
* [[Nanostations: Modificando configuración por consola]]&lt;br /&gt;
* [[Configuración de antena TP-LINK TL-WA7510N]]&lt;br /&gt;
&lt;br /&gt;
=== Mesh ===&lt;br /&gt;
* [[Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net#Crear_una_nube_Mesh|Crear una nube Mesh en Guifi.net]]&lt;br /&gt;
* [[Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net#Conectarse_a_una_red_Mesh|Conectarse a una nube Mesh de Guifi.net]]&lt;br /&gt;
* [[:ca:Annex:subxarxes_mesh|Listado de redes Mesh (catalán)]]&lt;br /&gt;
* [[Quick_Mesh_Project|Quick Mesh Project (qMp)]]&lt;br /&gt;
* [[Alix+GSF|ALIX + Conectarse a la nube de gracia con mesh]]&lt;br /&gt;
* [[Mesh|Otros artículos sobre Mesh]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamientos y conceptos de redes ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Enrutamientos]]&lt;br /&gt;
* [[Peerings]]&lt;br /&gt;
* [[IPv4]]&lt;br /&gt;
* [[IPv6]]&lt;br /&gt;
* [[Criterios de asignación de direcciones IPv4]]&lt;br /&gt;
* [[ARP]]&lt;br /&gt;
* [[Cables_UTP|Cables UTP]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Cómo se vertebra la red: Troncal, puntos de acceso y conexiones simples]]&lt;br /&gt;
* [[La seguridad en la red abierta]]&lt;br /&gt;
* [[Aplicaciones | Aplicaciones de guifi.net]]&lt;br /&gt;
* [[Recursos externos]]&lt;br /&gt;
* [[Instalar firmware Ubiquiti Rocket M5]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sistemas ==&lt;br /&gt;
&lt;br /&gt;
=== Servicios básicos ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Configurar Repositorio APT guifi]]&lt;br /&gt;
* [[Servidor Proxy]]&lt;br /&gt;
* [[Squid autentificándose contra squid]]&lt;br /&gt;
* [[Servidor de gráficas]]&lt;br /&gt;
* [[SNPservices]]&lt;br /&gt;
* [[Servidor DNS]]&lt;br /&gt;
* [[Servidor Reloj|Servidor de Reloj (NTP)]]&lt;br /&gt;
* [[Configurar red]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de compartición de ficheros ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Servidor FTP]]&lt;br /&gt;
* [[Servidor Peer 2 Peer]]&lt;br /&gt;
* [[Servidor DCC]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de mensajería ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Servidor de Correo]]&lt;br /&gt;
* [[Webmail]]&lt;br /&gt;
* [[Servidor Jabber]]&lt;br /&gt;
* [[Servidor IRC]]&lt;br /&gt;
* [[Mailman]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de Voz y Vídeo ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[VoIP|Servidor de VeuIP (VoIP)]]&lt;br /&gt;
* [[Servidor Radio Streaming]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Otros Servicios ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[LDAP|Servidor LDAP]]&lt;br /&gt;
* [[Apache|Servidor web Apache]]&lt;br /&gt;
* [[Servidor Repositorio Linux]]&lt;br /&gt;
* [[Servidor Repositorio Linux (Cache)]]&lt;br /&gt;
* [[Servidor Iperf]]&lt;br /&gt;
* [[Servidor repositorio subversion]]&lt;br /&gt;
* [[DHCP|Servidor DHCP]]&lt;br /&gt;
* [[MySQL]] (Bases de Datos)&lt;br /&gt;
* [[Proxmox]] (virtualitzación)&lt;br /&gt;
* [[Cacti]] (monitorización)&lt;br /&gt;
* [[Clamav]] (antivirus con GNU/Linux)&lt;br /&gt;
* [[Trac]] (sistema de gestión de tiquets)&lt;br /&gt;
* [[Monitor]] (Monitorización de la red distribuida)&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Sistema ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[ACPI]]&lt;br /&gt;
* [[Bridges_con_Linux|Bridges con GNU/Linux]]&lt;br /&gt;
* [[Chroot]]&lt;br /&gt;
* [[Corkscrew]]&lt;br /&gt;
* [[Distribución guinux]]&lt;br /&gt;
* [[Servidor compacto con una routerstation]]&lt;br /&gt;
* [[Comtrend_hg536%2B]] Reciclar router de Jazztel o telefónica como router neutro con OpenWRT&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Cloudy ===&lt;br /&gt;
* [[Qué es Cloudy]]&lt;br /&gt;
* [[Cloudy plug-ins]]&lt;br /&gt;
* [[Cloudy|Otros artículos sobre Cloudy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Estándares de transmisión de datos y organizaciones colaboradoras ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [http://es.wikipedia.org/wiki/IEEE_802.11 IEEE 802.11]&lt;br /&gt;
* [http://es.wikipedia.org/wiki/Multimedia_over_Coax_Alliance Multimedia over Coax Alliance]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/HomePNA HomePNA]&lt;br /&gt;
* [[Aprovechar el cable de antena de televisión]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== [[Instaladores]] ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Pararrayos]]&lt;br /&gt;
* [[Aprovechar el cable de antena de televisión]]&lt;br /&gt;
* [[Presupuestos]]&lt;br /&gt;
* [http://guifi.net/ca/node/12486 Comunidad de vecinos, caso de ejemplo]&lt;br /&gt;
* [[Reinicio remoto de nodos]]&lt;br /&gt;
* [[Campanarios]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Desarrolladores ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Preparando el entorno de desarrollo]]&lt;br /&gt;
* [[Manual editor wiki]]&lt;br /&gt;
* [http://wiki.guifi.net/wiki/Trac Trac de Guifi.net]&lt;br /&gt;
* [[Actualizaciones módulos drupal]]&lt;br /&gt;
* [[Mapas de nodos en la web]]&lt;br /&gt;
* [http://gitorious.org/guifi Repositorios del código del proyecto guifi.net]&lt;br /&gt;
* [[Mapa del código]]&lt;br /&gt;
* [[API de Guifi]]&lt;br /&gt;
* [[CNML]]&lt;br /&gt;
* [[Empotrar_mapa_de_guifi|Empotrar el mapa de Guifi-Google Maps en una web]]&lt;br /&gt;
* [[Unsóloclic]]&lt;br /&gt;
* [[:Categoría:router|Routers]]&lt;br /&gt;
* [[:Categoría:Telefonía móvil|Telefonía móvil sobre guifi.net]]&lt;br /&gt;
* [[Guifi.net Studio]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Diseñadores ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Logos]]&lt;br /&gt;
* [[Maquetación de las distintas páginas web]]&lt;br /&gt;
* [[Usabilidad]]&lt;br /&gt;
* [[Presentaciones de guifi.net]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Desarrollo colectivo de la red ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Cursos]]&lt;br /&gt;
* [[Necesidades]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Glosario ==&lt;br /&gt;
{{Acontecimientos}}&lt;br /&gt;
&lt;br /&gt;
* [[Términos usados habitualmente]]&lt;br /&gt;
* [[Guia Rápida de Guifi.net]]&lt;br /&gt;
* [[Preguntas Frecuentes]]&lt;br /&gt;
* [http://guifi.net/es/ESDocs Documentos basados en la web de guifi.net] antigua &amp;quot;ComEsFa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Accesos Rápidos =&lt;br /&gt;
* [http://planet.guifi.net Planet]&lt;br /&gt;
* [http://guifi.net/es/ProcomunXOLN Procomún XOLN (Licencia de la red)]&lt;br /&gt;
* [http://guifi.net/es/maps Mapa guifi]&lt;br /&gt;
* [http://guifi.net/es/grups Webs Regionales]&lt;br /&gt;
* [http://trac.guifi.net Reporta Errores de la web]&lt;br /&gt;
* [http://fundacio.guifi.net Fundación]&lt;br /&gt;
* [http://lists.guifi.net Listas de Correo]&lt;br /&gt;
&lt;br /&gt;
[[ca:Portada]]&lt;br /&gt;
[[en:Main Page]]&lt;br /&gt;
[[eu:Azala]]&lt;br /&gt;
[[fr:Accueil]]&lt;br /&gt;
[[gl:Portada]]&lt;br /&gt;
[[pt:Página principal]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_64bits</id>
		<title>Cloudy 64bits</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_64bits"/>
				<updated>2015-05-13T14:00:43Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Actualmente sólo existe generada la versión de 32 bits, sin embargo, puedes crear la versió de 64 bits de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
Primero, descarga el sistema de generación o &amp;quot;constructor&amp;quot; de imágenes ''(image builder)'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install build-essential live-build imagemagick curl debootstrap git unzip &lt;br /&gt;
git clone http://dev.cloudy.community/guifi.net/cloudy-image-builder.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación modifica las siguientes variables del archivo ''Makefile'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ARCH ?= amd64&lt;br /&gt;
FLAVOUR ?= amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finalmente, puedes generar la imagen con el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez la imagen ha sido creada, tendrás una versión Cloudy de 64 bits en &amp;lt;code&amp;gt;./devel/binary.hybrid.iso&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternativamente puedes &amp;quot;Cloudynizar&amp;quot; una Debian de 64 bits para convertirla en Cloudy.&lt;br /&gt;
&lt;br /&gt;
Lee cómo en la página [[Cloudynizar]] de la wiki. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudinizar</id>
		<title>Cloudinizar</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudinizar"/>
				<updated>2015-05-13T12:59:30Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página redirigida a Cloudynizar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Cloudynizar]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudynizar</id>
		<title>Cloudynizar</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudynizar"/>
				<updated>2015-05-13T12:56:08Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «Una alternativa para instalar Cloudy es modificando un sistema Debian GNU/Linux, o basado en Debian, aplicando un ''script'' que convierte el sistema en un Cloudy.  Para ha...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Una alternativa para instalar Cloudy es modificando un sistema Debian GNU/Linux, o basado en Debian, aplicando un ''script'' que convierte el sistema en un Cloudy.&lt;br /&gt;
&lt;br /&gt;
Para hacerlo puedes ejecutar los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/Clommunity/cloudynitzar &amp;amp;&amp;amp; cd cloudynitzar&lt;br /&gt;
chmod +x cloudynitzar.sh&lt;br /&gt;
sudo ./cloudynitzar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_64bits</id>
		<title>Cloudy 64bits</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_64bits"/>
				<updated>2015-05-13T12:38:29Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Actualmente sólo existe generada la versión de 32 bits, sin embargo, puedes crear la versió de 64 bits de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
Primero, descarga el sistema de generación o &amp;quot;constructor&amp;quot; de imágenes ''(image builder)'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install build-essential live-build imagemagick curl debootstrap git unzip &lt;br /&gt;
git clone http://dev.cloudy.community/guifi.net/cloudy-image-builder.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación modifica las siguientes variables del archivo ''Makefile'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ARCH ?= amd64&lt;br /&gt;
FLAVOUR ?= amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finalmente, puedes generar la imagen con el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez la imagen ha sido creada, tendrás una versión Cloudy de 64 bits en &amp;lt;code&amp;gt;./devel/binary.hybrid.iso&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_64bits</id>
		<title>Cloudy 64bits</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_64bits"/>
				<updated>2015-05-13T12:37:31Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «Actualmente sólo existe generada la versión de 32 bits, sin embargo, puedes crear la versió de 64 bits de la siguiente manera:  Primero, descarga el sistema de generaci...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Actualmente sólo existe generada la versión de 32 bits, sin embargo, puedes crear la versió de 64 bits de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
Primero, descarga el sistema de generación o &amp;quot;constructor&amp;quot; de imágenes ''(image builder)'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install build-essential live-build imagemagick curl debootstrap git unzip &lt;br /&gt;
git clone http://dev.cloudy.community/guifi.net/cloudy-image-builder.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación modifica las siguientes variables del archivo ''Makefile'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ARCH ?= amd64&lt;br /&gt;
FLAVOUR ?= amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finalmente, puedes generar la imágen con el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez la imágen ha sido creada, tendrás una versión Cloudy de 64 bits en &amp;lt;code&amp;gt;./devel/binary.hybrid.iso&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Qu%C3%A9_es_Cloudy</id>
		<title>Qué es Cloudy</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Qu%C3%A9_es_Cloudy"/>
				<updated>2015-05-13T12:13:30Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:clommunity-logo.png|right|100px]]&lt;br /&gt;
[[File:Logo_guifi.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
Cloudy &amp;lt;ref name=&amp;quot;cloudy&amp;quot;&amp;gt;Cloudy: http://wiki.clommunity-project.eu/soft:cloudservices&amp;lt;/ref&amp;gt; es una distribución basada en Debian GNU/Linux &amp;lt;ref name=&amp;quot;debian&amp;quot;&amp;gt;Debian GNU/Linux: http://debian.org&amp;lt;/ref&amp;gt; desarrollada en el marco del proyecto europeo CLOMMUNITY.&amp;lt;ref name=&amp;quot;clommunity&amp;quot;&amp;gt;CLOMMUNITY project: http://clommunity-project.eu&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta distribución, inspirada en la idea de la antigua [[Guinux]] &amp;lt;ref name=&amp;quot;guinux&amp;quot;&amp;gt;Guinux: http://guifi.net/node/29320&amp;lt;/ref&amp;gt;, facilita el despliegue y la gestión de los servicios de red en la nube ''(cloud services)''&amp;lt;ref name=&amp;quot;cloud-services&amp;quot;&amp;gt;Cloud computing: http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube&amp;lt;/ref&amp;gt;, así como la compartición de estos. Pensada en particular para los usuarios de redes comunitarias.&amp;lt;ref name=&amp;quot;CN&amp;quot;&amp;gt;Redes comunitarias: http://es.wikipedia.org/wiki/Comunidad_inal%C3%A1mbrica&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Antes de la adopción general de servicios en la nube ''(cloud services)''&amp;lt;ref name=&amp;quot;cloud-services&amp;quot;/&amp;gt; los usuarios de redes comunitarias &amp;lt;ref name=&amp;quot;CN&amp;quot;/&amp;gt; ya compartían o proveían servicios y recursos a la comunidad; sin embargo, estos usuarios eran una minoria. Una de las principales razones es la barrera tecnológica. Antes de proveer contenidos, los usuarios que quieren compartir información con la comunidad tienen primero que preocuparse de los aspectos técnicos como el despliegue/montaje de un servidor con un conjunto de servicios.&lt;br /&gt;
&lt;br /&gt;
En el pasado, los usuarios de Guifi.net, intentaron superar este problema publicando una distribución GNU/Linux llamada [[Guinux]] &amp;lt;ref name=&amp;quot;guinux&amp;quot;/&amp;gt;, que daba a los usuarios finales una solución fácil para ofrecer servicios a la comunidad (tales como [[Servidor_Proxy|proxy web]], [[Servidor_DNS|servidor DNS]], [[SNPservices|monitorización y gráficas]]).&lt;br /&gt;
&lt;br /&gt;
La clave principal de [[Guinux]] era un conjunto de ''scripts''&amp;lt;ref&amp;gt;http://es.wikipedia.org/wiki/Script&amp;lt;/ref&amp;gt; que automatitzaban el proceso de configuración. Los usuarios solo tenían que introducir unos pocos parámetros como la dirección de correo electrónico y el identificador del nodo. Enseguida, después de estar disponible la distribución, el número de usuarios compartiendo recursos aumentó considerablemente.&lt;br /&gt;
&lt;br /&gt;
De acuerdo con esto, quedó claro que reduciendo (o eliminando) la barrera d'entrada tecnológica animó a los usuarios a proveer de más servicios y a compartir sus recursos con la comunidad. Para ello, uno de los objetivos principales del proyecto CLOMMUNITY &amp;lt;ref name=&amp;quot;clommunity&amp;quot;/&amp;gt; es publicar una distribución GNU/Linux, llamada Cloudy, dirigida a los usuarios, para fomentar la transición y adopción del entorno Cloud en redes comunitarias ''(Community Network Cloud)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motivación === &lt;br /&gt;
&lt;br /&gt;
La distribución Cloudy ha sido pensada para satisfacer los siguientes requisitos:&lt;br /&gt;
&lt;br /&gt;
# '''Distribución''': para potenciar la distribución de servicios en las redes comunitarias (CN; community networks) es necesaria una plataforma para publicar y descubrir estos servicios. De este modo, el acceso a los servicios no depende de despliegues estáticos de redes y la estructura es consciente de las condiciones dinámicamente cambiantes de las CN. El software elegido para la publicación y descubrimiento de servicios es Avahi&amp;lt;ref name=&amp;quot;avahi&amp;quot;&amp;gt;Avahi: http://avahi.org&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# '''Descentralitzación''': una capa de red común es necesaria para permitir a todos los nodos de la nube comunicarse entre ellos directamente. Una buena manera de construir esto es creando una &amp;quot;capa 2 de red virtual&amp;quot; basada en un servicio VPN&amp;lt;ref&amp;gt;Red Privada Virtual: http://es.wikipedia.org/wiki/Red_privada_virtual&amp;lt;/ref&amp;gt;. Entre las opciones disponibles, se ha elegido Tinc VPN&amp;lt;ref&amp;gt;Tinc VPN: http://tinc-vpn.org&amp;lt;/ref&amp;gt;, ya que cumple todos los requisitos y es sencillo de configurar y administrar. Para coordinar los dispositivos con Tinc VPN, se ha desarrollado una herramienta para automatizar el despliegue del sistema. Este software, Getinconf&amp;lt;ref&amp;gt;Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md&amp;lt;/ref&amp;gt;, se encarga del proceso de configuración de Tinc VPN y del intercambio de claves con el resto de nodos de la nube.&lt;br /&gt;
# '''Facilidad de uso y experiencia de usuario''': para este objetivo, se ha desarrollado una plataforma web de administración destinada a integrar la instalación y configuración de los servicios en la nube habilitados en la distribución Cloudy. Una interfaz web simple y agradable &amp;lt;ref&amp;gt;Interfaz web de Cloudy: http://redmine.confine-project.eu/projects/getinconf&amp;lt;/ref&amp;gt; está disponible para los usuarios como solución fácil de configuración, administración y monitorización de los servicios ''cloud'' activos en el nodo.&lt;br /&gt;
# '''Software libre''': la distribución está basada en Debian GNU/Linux&amp;lt;ref name=&amp;quot;debian&amp;quot;/&amp;gt;. A parte de ser una de les distribuciones más populars y cumplir con los requisitos técnicos, ha sido elegida ya que el ''Debian Social Contract''&amp;lt;ref&amp;gt;Debian social contract: https://www.debian.org/social_contract&amp;lt;/ref&amp;gt; salvaguarda y garantiza que el software será siempre abierto y libre.&lt;br /&gt;
&lt;br /&gt;
[[File:Cloudy-home.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Empezar ==&lt;br /&gt;
&lt;br /&gt;
Entra en el apartado &amp;quot;Empezar&amp;quot; ''(Get started)'' de la web de Cloudy &amp;lt;ref name=&amp;quot;start&amp;quot;&amp;gt;http://cloudy.community/get_started/&amp;lt;/ref&amp;gt; para saber todo lo que necesitas para iniciarte.&lt;br /&gt;
&lt;br /&gt;
Allí encontrarás:&lt;br /&gt;
* Requsitos&lt;br /&gt;
* Conseguir/compilar&lt;br /&gt;
* Instalar&lt;br /&gt;
* Actualizar&lt;br /&gt;
* Primeros pasos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contenidos ==&lt;br /&gt;
&lt;br /&gt;
En la sección &amp;quot;Características&amp;quot; ''(Features)'' &amp;lt;ref name=&amp;quot;features&amp;quot;&amp;gt;http://cloudy.community/features/&amp;lt;/ref&amp;gt; podrás ver todos los contenidos/software de la distribución. En concreto está detallado el software que puede ser gestionado fácilmente a través de la interfaz web.&lt;br /&gt;
&lt;br /&gt;
Este software està integrado mediante un sistema de ''plugins''. Puedes leer más en la página de la wiki de [[Cloudy_plug-ins|plug-ins de Cloudy]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contribuir ==&lt;br /&gt;
&lt;br /&gt;
Para estar al dia o saber como colaborar e involucrarse con Cloudy, entra en el apartado &amp;quot;Contribuir&amp;quot; ''(Contribute)'' de la web.&amp;lt;ref name=&amp;quot;contribuir&amp;quot;&amp;gt;http://cloudy.community/contribute/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Recuerda que las listas de correo son en inglés ya que hay participantes de diferentes nacionalidades.&lt;br /&gt;
&lt;br /&gt;
Si queréis escribir en catalán o castellano tendréis que poner [CAT] o [ES] respectivamente en el asunto del mensaje de correo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Más información ==&lt;br /&gt;
&lt;br /&gt;
Puedes leer más entrando en la página de la [[Cloudy|categoría Cloudy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enllaces externos ==&lt;br /&gt;
&lt;br /&gt;
* http://cloudy.community&lt;br /&gt;
* http://wiki.clommunity-project.eu/soft:cloudservices&lt;br /&gt;
* http://clommunity-project.eu&lt;br /&gt;
* http://guifi.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_web_UI</id>
		<title>Cloudy web UI</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_web_UI"/>
				<updated>2015-05-12T18:49:46Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con « == Introducción ==  La inferfaz web de usuario (web User Interface (UI)) de Cloudy utiliza una aplicación llamada cDistro &amp;lt;ref name=&amp;quot;cdistro&amp;quot;&amp;gt;cDistro git repository: htt...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
La inferfaz web de usuario (web User Interface (UI)) de Cloudy utiliza una aplicación llamada cDistro &amp;lt;ref name=&amp;quot;cdistro&amp;quot;&amp;gt;cDistro git repository: http://dev.cloudy.community/Guifi.net/web-interface&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
''(Añadir qué es)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuración ==&lt;br /&gt;
&lt;br /&gt;
La configuración de cDistro se encuentra en /etc/cdistro.conf&lt;br /&gt;
&lt;br /&gt;
Por defecto tiene el siguiente formato:&lt;br /&gt;
&lt;br /&gt;
 #cdistro config&lt;br /&gt;
 SERVER=&amp;quot;/usr/bin/php&amp;quot;&lt;br /&gt;
 OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
 BINDIP=&amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
 PORT=&amp;quot;7000&amp;quot;&lt;br /&gt;
 DOCROOT=&amp;quot;/var/local/cDistro&amp;quot;&lt;br /&gt;
 # SSHAUTH=1 &amp;lt;- check user with ssh2 connection http://www.php.net/manual/en/function.ssh2-auth-password.php (Require: libssh2-php)&lt;br /&gt;
 SSHAUTH=1&lt;br /&gt;
 # LOGIN=&amp;quot;root&amp;quot;&lt;br /&gt;
 ## PASSWORD = md5(md5('secret')) =&amp;gt; php -r 'echo md5(md5(&amp;quot;secret&amp;quot;)).&amp;quot;\n&amp;quot;;'&lt;br /&gt;
 #PASSWORD=&amp;quot;7022cd14c42ff272619d6beacdc9ffde&amp;quot;&lt;br /&gt;
 PORT_SSL=7443&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SERVER ===&lt;br /&gt;
&lt;br /&gt;
La ruta del ejecutable PHP.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;/usr/bin/php&amp;quot; - en el caso de Cloudy (Debian).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OPTS ===&lt;br /&gt;
&lt;br /&gt;
Opciones de PHP.&lt;br /&gt;
&lt;br /&gt;
''(Añadir referencias o más info y ejemplo)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BINDIP ===&lt;br /&gt;
&lt;br /&gt;
La dirección IP donde el servicio estará escuchando.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;127.0.0.1&amp;quot; - aceptará sólo peticiones desde localhost.&lt;br /&gt;
* &amp;quot;0.0.0.0&amp;quot; - aceptará peticiones desde cualquier dirección.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PORT ===&lt;br /&gt;
&lt;br /&gt;
El puerto que abrirà el servicio para escuchar peticiones.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;7000&amp;quot; - abre el puerto 7000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DOCROOT ===&lt;br /&gt;
&lt;br /&gt;
La ruta del ejecutable de la aplicación cDistro.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;/var/local/cDistro&amp;quot; - en el caso de Cloudy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SSLAUTH ===&lt;br /&gt;
&lt;br /&gt;
Parámetro que permite autenticación vía SSH2 en la aplicación, es decir, para utilizar las credenciales que permita el servidor SSH del sistema.&lt;br /&gt;
&lt;br /&gt;
Puede ser 0 o 1.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;1&amp;quot; - activa esta opción.&lt;br /&gt;
* &amp;quot;0&amp;quot; - desactiva esta opción (requerirá definir usuario y contraseña).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LOGIN ===&lt;br /&gt;
&lt;br /&gt;
El nombre de usuario para autenticarse en la aplicación.&lt;br /&gt;
&lt;br /&gt;
Ha de ser una cadena sin espacios.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;cloudy&amp;quot; - este usuario podrá hacer log-in con la contraseña de PASSWORD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PASSWORD ===&lt;br /&gt;
&lt;br /&gt;
La contraseña del usuario definido en LOGIN.&lt;br /&gt;
&lt;br /&gt;
Ha de ser un ''hash'' sobre ''hash'' MD5 (hexadecimal), es decir, un ''hash'' del ''hash'' de la contraseña: md5(md5(&amp;quot;PASSWORD&amp;quot;)).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;46d934e0f59ff1e2272f9f5f7950e5d9&amp;quot; - ''hash'' correspondiente a la cadena de carácteres &amp;quot;PASSWORD&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplos de cómo generar este ''hash'' en un terminal:'''&lt;br /&gt;
&lt;br /&gt;
 $ php -r 'echo md5(md5(&amp;quot;PASSWORD&amp;quot;)).&amp;quot;\n&amp;quot;;'&lt;br /&gt;
 46d934e0f59ff1e2272f9f5f7950e5d9&lt;br /&gt;
 $ printf &amp;quot;PASSWORD&amp;quot; | md5sum | awk '{printf $1}' | md5sum | awk '{print $1}'&lt;br /&gt;
 46d934e0f59ff1e2272f9f5f7950e5d9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PORT_SSL ===&lt;br /&gt;
&lt;br /&gt;
Puerto que utilizará Cloudy en la interfaz web con HTTPS (si SSL está instalado).&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo:'''&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;7443&amp;quot; - se accederá a la web https://IP_SERVIDOR:7443.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_plug-ins</id>
		<title>Cloudy plug-ins</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_plug-ins"/>
				<updated>2015-04-24T14:46:09Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es un plug-in? ==&lt;br /&gt;
&lt;br /&gt;
Cloudy es una distribución de Linux basada en Debian que proporciona a los usuarios una interfaz simple y cómoda para gestionar diferentes servicios que pueden usarse a través de una red comunitaria; en nuestro caso, Guifi.&lt;br /&gt;
&lt;br /&gt;
Al mismo tiempo, Cloudy ofrece una serie de herramientas que permiten a un usuario añadir un servicio de su agrado sin tener grandes conocimientos sobre redes e informática en general. Automaticamente, estos servicios se publican mediante Avahi, de manera que todo el que utilice Cloudy podrá hacer uso de estos servicios.&lt;br /&gt;
&lt;br /&gt;
Otra manera de llamar estos servicios que se pueden poner y quitar de forma sencilla es ''plug-in''. Por tanto, entendemos por plug-in a un programa o software que un usuario quiere añadir a la distribución y que puede ser gestionado de forma simple des de la interfaz web que provee Cloudy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Añadir servicios a Cloudy ==&lt;br /&gt;
&lt;br /&gt;
=== Una pequeña introducción ===&lt;br /&gt;
&lt;br /&gt;
Esta guía te enseñará el proceso para añadir un nuevo servicio en la distribución Cloudy.&lt;br /&gt;
&lt;br /&gt;
Para serclaro y dar algunos ejemplos al mismo tiempo, integraremos un servicio bastante simple mostrando algunos trozos de código por el camino. Para seguir el tutorial con más facilidad o bien para integrar servicios más complejos, estaría bien tener algunos conocimientos de Bash&amp;lt;ref name=&amp;quot;Bash&amp;quot;&amp;gt;(http://www.tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf)&amp;lt;/ref&amp;gt; y de PHP&amp;lt;ref name=&amp;quot;PHP&amp;quot;&amp;gt;(https://php.net/manual/es/index.php)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por simplicidad utilizaremos Pastecat&amp;lt;ref name=&amp;quot;Pastecat&amp;quot;&amp;gt;(https://github.com/mvdan/pastecat)&amp;lt;/ref&amp;gt;. Es un buen candidato ya que:&lt;br /&gt;
&lt;br /&gt;
* Es independiente y no se ''federa'' ni se comunica con otros nodos.&lt;br /&gt;
* Está hecho en Go, es facil de distribuir e instalar.&lt;br /&gt;
* No necesita archivos de configuración.&lt;br /&gt;
* No necesita muchos recursos.&lt;br /&gt;
&lt;br /&gt;
=== Obtener el binario ===&lt;br /&gt;
&lt;br /&gt;
Lo primero que hemos de investigar es como descargar e instalar el binario en Cloudy. La mayoria de software que podemos encontrar está por defecto en los paquetes de Debian, pero Pastecat no está. Si se diera el caso de que estuviera, solo tendríamos que ejecutar el comando &amp;lt;code&amp;gt;apt-get install pastecat&amp;lt;/code&amp;gt; desde PHP.&lt;br /&gt;
&lt;br /&gt;
Pero como este no es el caso, tendremos que obtener el binario por otro lado. Una opcion es coger el código fuente y compilarlo nosotros mismos, pero el problema de esto es que Cloudy necesitaria incluir muchas herramientas y librerias de desarrollo, y este no es el objetivo.&lt;br /&gt;
&lt;br /&gt;
La mejor opción si un paquete de Debian no está disponible en los repositorios es descargar los binarios de otro lugar seguro. Podemos utilizar el servicio de ''&amp;quot;releases&amp;quot;'' de Github para ello. Las dos opciones nos dan un archivo ejecutable que tendríamos que ser capaces de ejecutar directamente sobre Cloudy.&lt;br /&gt;
&lt;br /&gt;
En este caso en particular descargaremos los binarios desde el repositorio git con la siguiente linea de comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nótese que en este caso en concreto estamos descargando una versión específica para Linux con arquitectura i386.&lt;br /&gt;
&lt;br /&gt;
Fijaos que tener un servicio en los paquetes de Debian tiene muchas ventajas:&lt;br /&gt;
&lt;br /&gt;
* Las actualizaciones son simples y no necesitan trabajo extra desde Cloudy.&lt;br /&gt;
* El paquete está compilado para Debian de manera segura.&lt;br /&gt;
* Los archivos de ''init.d'' ya vienen por defecto.&lt;br /&gt;
* Los paquetes de Debian suelen contener correciones.&lt;br /&gt;
&lt;br /&gt;
=== Probarlo ===&lt;br /&gt;
&lt;br /&gt;
Antes de añadir un servicio deberíamos configurarlo y probarlo nosotros directamente para ver cómo funciona y que realmente funciona. También hemos de entender qué opciones de configuración o de linea de comandos necesitamos para hacer uso de este servicio en particular y como lo gestionariamos una vez este funcionando.&lt;br /&gt;
&lt;br /&gt;
=== Añadir el controlador ===&lt;br /&gt;
&lt;br /&gt;
En &amp;lt;code&amp;gt;web/plug/controllers&amp;lt;/code&amp;gt; tenenmos un archivo PHP para cada servicio, llamado controlador (o 'controller' en inglés). Este archivo contiene el codigo que se ejecutará cuando se visite la página de nuestro servicio desde la interfaz de Cloudy.&lt;br /&gt;
&lt;br /&gt;
==== Añadir la función indice ====&lt;br /&gt;
&lt;br /&gt;
Lo que queremos es que nuestro servicio esté integrado en la estructura web de Cloudy. Para ello, necesitamos crear unos cuantos ''scripts'' en PHP y añadirlos a nuestro sistema. De momento crearemos dos ''scripts'': &amp;lt;code&amp;gt;pastecat.php&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;pastecat.menu.php&amp;lt;/code&amp;gt;. El primer archivo es el controlador, es decir, el ''script'' que renderiza la página y tiene toda la información tal como botones o redireccionamientos. El otro es el que permite que nuestro servicio se muestre en los menus superiores desplegables de Cloudy. &lt;br /&gt;
&lt;br /&gt;
El código del menú será similar a esto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt; &lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    //peerstreamer.menu.php&lt;br /&gt;
    addMenu('Pastecat','pastecat','Clommunity');&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ahora, utilizaremos un ''script'' muy simple en PHP como controlador:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt; &lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    //pastecat&lt;br /&gt;
    $title=&amp;quot;Pastecat&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    function index(){&lt;br /&gt;
        global $paspath,$title;&lt;br /&gt;
        global $staticFile;&lt;br /&gt;
    &lt;br /&gt;
        $page=hlc(t($title));&lt;br /&gt;
        $page .= hl(t(&amp;quot;Minimalist pastebin engine written in Go&amp;quot;),4);&lt;br /&gt;
        $page .= par(t(&amp;quot;A simple and self-hosted pastebin service written in Go&amp;quot;).' '.t(&amp;quot;Can use a variety of storage backends&amp;quot;).' '.t(&amp;quot; Designed to optionally remove pastes after a certain period of time.&amp;quot;).' '.(&amp;quot;If using a persistent storage backend, pastes will be kept between runs.&amp;quot;).' '.t(&amp;quot;This software runs the&amp;quot;).' '.&amp;quot;&amp;lt;a href='http://paste.cat'&amp;gt;&amp;quot;.t(&amp;quot;paste.cat&amp;quot;).&amp;quot;&amp;lt;/a&amp;gt;&amp;quot;. t(&amp;quot; public service.&amp;quot;));&lt;br /&gt;
        &lt;br /&gt;
        return(array('type' =&amp;gt; 'render','page' =&amp;gt; $page));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En nuestro sistema Cloudy estos archivos han de ponerse en los directorios dentro de &amp;lt;code&amp;gt;/var/local/cDistro/plug/&amp;lt;/code&amp;gt;. El primero ha de ir en &amp;lt;code&amp;gt;menus&amp;lt;/code&amp;gt; y el segundo en el directori &amp;lt;code&amp;gt;controllers&amp;lt;/code&amp;gt;. Una vez hecho esto podemos ir a la web de nuestro Cloudy y acceder al nuevo menú Pastecat.&lt;br /&gt;
&lt;br /&gt;
==== Hacer que el controlador instale nuestro servicio ====&lt;br /&gt;
&lt;br /&gt;
Como se ha comentado anteriormente, este paso es mucho más sencillo de hacer si el servicio está entre los paquetes de Debian. Como que no es el caso de Pastecat, lo tendremos que hacer manualmente. Normalmente hacer este proceso manualmente incluye una combinación de los comandos &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt;. En general, es buena idea mantener los archivos de este tipo de servicios en &amp;lt;code&amp;gt;/opt/SERVICENAME&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En nuestro caso particular, lo primero que necesitamos es descargar el binario de la ''release'' de Github. Para ello utilizaremos el comando: &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;. Dada una URL a un archivo, este comando permite descargar este archivo en nuestro sistema, i es lo que haremos con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tengamos el binario en nuestra máquina, lo moveremos al directorio /opt/pastecat/. Para mover los archivos por nuestro sistema usaremos el comando &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt;. Aun así, primero tendremos que crear el directorio donde pondremos el archivo. Para ello utilizaremos &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
   mkdir -p /opt/pastecat/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez hayamos creado el directorio, es hora de mover el binario:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    mv current_directory/pastecat_linux_386 /opt/pastecat/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;current_directory&amp;quot; es el directorio donde previamente hemos descargado el binario. Como el nombre del binario depende de la arquitectura, para simplificar el código del controlador, cambiaremos el nombre del archivo ejecutable por algo más genérico y simple:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    mv /opt/pastecat/pastecat_linux_386 /opt/pastecat/pastecat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora nuestro binario se llama &amp;lt;code&amp;gt;pastecat&amp;lt;/code&amp;gt; en lugar de &amp;lt;code&amp;gt;pastecat_linux_386&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Estos pasos son los requisitos mínimos para instalar un servicio que no se ofrece directamente en los repositorios oficiales de Debian. Sin embargo, de cara a un usuario final, sería una pesadilla tener que hacer todos estos comandos en una consola conectado a través de &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; a su dispositivo, así que lo que haremos a continuación es crear un ''script'' en Bash que será llamado más adelante a traves de la interfaz web haciendo click en un botón.&lt;br /&gt;
&lt;br /&gt;
Este ''script'' es la primera versión del controlador de Pastecat. Por ahora solo incluiremos una función para instalar Pastecat en nuestro dispositivo. Más adelante incluiremos otras funciones para proveer a nuestro ''script'' de más servicios:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    PCPATH=&amp;quot;/opt/pastecat/&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    doInstall() {&lt;br /&gt;
        if isInstall&lt;br /&gt;
        then&lt;br /&gt;
            echo &amp;quot;Pastecat is already installed.&amp;quot;&lt;br /&gt;
            return&lt;br /&gt;
        fi&lt;br /&gt;
    &lt;br /&gt;
        # Creating directory and switching&lt;br /&gt;
        mkdir -p $pcpath &amp;amp;&amp;amp; cd $pcpath&lt;br /&gt;
    &lt;br /&gt;
        # Getting file&lt;br /&gt;
        wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386&lt;br /&gt;
    &lt;br /&gt;
        # Changing name so controller can invoke it generically&lt;br /&gt;
        mv pastecat_linux_386 pastecat&lt;br /&gt;
        chmod +x pastecat&lt;br /&gt;
        &lt;br /&gt;
        cd -&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    isInstalled() {&lt;br /&gt;
        [ -d $pcpath ] &amp;amp;&amp;amp; return 0&lt;br /&gt;
        return 1&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    case $1 in&lt;br /&gt;
        &amp;quot;install&amp;quot;)&lt;br /&gt;
            shift&lt;br /&gt;
            doInstall $@&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos ver como los últimos pasos se han concentrado en una misma función, permmiténdonos instalar el software en el dispositivo de una manera mas sencilla.&lt;br /&gt;
&lt;br /&gt;
==== Hacer que el controlador utilitce Pastecat ====&lt;br /&gt;
&lt;br /&gt;
===== Ejecutar el servicio =====&lt;br /&gt;
&lt;br /&gt;
El paso siguiente es hacer que nuestro software se pueda utilizar desde la intarfaz web. Para ello incluiremos una nueva opción en nuestra página principal de Pastecat e incluiremos una nueva función en nuestro controlador para gestionar el binario. Añadiremos un botón en el código PHP de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    $page .= addButton(array('label'=&amp;gt;t('Create a Pastecat server'),'href'=&amp;gt;$staticFile.'/pastecat/publish'));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ha de ir justo después del mensaje &amp;lt;code&amp;gt;Pastecat is installed&amp;lt;/code&amp;gt;. A continuación se ha de implementar la función &amp;lt;code&amp;gt;publish&amp;lt;/code&amp;gt; en el mismo PHP. Esta función es la responsable de llamar a la función correspondiente desde el controlador y anunciar nuestro servicio utilizando Avahi. La diferencia con esta función es que requiere un formulario para introducir datos, así que al final acabaremos teniendo dos funciones: una ''get'' i una ''post'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function publish_get() {&lt;br /&gt;
        global $pcpath,$title;&lt;br /&gt;
        global $staticFile;&lt;br /&gt;
        &lt;br /&gt;
        $page = hlc(t($title));&lt;br /&gt;
        $page .= hlc(t('Publish a pastecat server'),2);&lt;br /&gt;
        $page .= par(t(&amp;quot;Write the port to publish your Pastecat service&amp;quot;));&lt;br /&gt;
        $page .= createForm(array('class'=&amp;gt;'form-horizontal'));&lt;br /&gt;
        $page .= addInput('description',t('Describe this server'));&lt;br /&gt;
        $page .= addSubmit(array('label'=&amp;gt;t('Publish'),'class'=&amp;gt;'btn btn-primary'));&lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Cancel'),'href'=&amp;gt;$staticFile.'/peerstreamer'));&lt;br /&gt;
        &lt;br /&gt;
        return(array('type' =&amp;gt; 'render','page' =&amp;gt; $page));&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    function publish_post() {&lt;br /&gt;
        $port = $_POST['port'];&lt;br /&gt;
        $description = $_POST['description'];&lt;br /&gt;
        $ip = &amp;quot;&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
         &amp;lt;nowiki&amp;gt;$page = &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;;&lt;br /&gt;
        $page .= _pcsource($description);&lt;br /&gt;
        $page .= &amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        return(array('type' =&amp;gt; 'render','page' =&amp;gt; $page));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la función &amp;lt;code&amp;gt;post&amp;lt;/code&amp;gt; estamos invocando otra función. El motivo de hacer esto es escribir el código de manera más simple y modular. En esta última funcion por fin llamamos al script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function _pcsource($port,$description) {&lt;br /&gt;
        global $pcpath,$pcprogram,$title,$pcutils,$avahi_type,$port;&lt;br /&gt;
    &lt;br /&gt;
        $page = &amp;quot;&amp;quot;;&lt;br /&gt;
        $device = getCommunityDev()['output'][0];&lt;br /&gt;
        $ipserver = getCommunityIP()['output'][0];&lt;br /&gt;
    &lt;br /&gt;
        if ($description == &amp;quot;&amp;quot;) $description = $type;&lt;br /&gt;
    &lt;br /&gt;
        $cmd = $pcutils.&amp;quot; publish '$port' '$description';&lt;br /&gt;
        execute_program_detached($cmd);&lt;br /&gt;
    &lt;br /&gt;
        $page .= t($ipserver);&lt;br /&gt;
        $page .= par(t('Published this server.'));&lt;br /&gt;
    &lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Back'),'href'=&amp;gt;$staticFile.'/pastecat'));&lt;br /&gt;
    &lt;br /&gt;
        return($page)&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lo siguiente que hemos de hacer es crear una función &amp;lt;code&amp;gt;publish&amp;lt;/code&amp;gt; en el controlador, por lo que añadiremos una nueva función al controlador básico que tenemos en la sección '''3.2'''. Primero añadiremos un nuevo paámetro llamado ''publish'', asi que la primera parte en ejecutarse del ''script'' sera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    if [ $# -lt 1 ]&lt;br /&gt;
    then&lt;br /&gt;
        doHelp&lt;br /&gt;
    fi&lt;br /&gt;
    &lt;br /&gt;
    case $1 in&lt;br /&gt;
        &amp;quot;install&amp;quot;)&lt;br /&gt;
            shift&lt;br /&gt;
            doInstall $@&lt;br /&gt;
            ;;&lt;br /&gt;
        &amp;quot;publish&amp;quot;)&lt;br /&gt;
            shift&lt;br /&gt;
            doServer $@&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como se puede ver, cuando el primer argumento del ''script'' es &amp;lt;code&amp;gt;publish&amp;lt;/code&amp;gt;, desplazamos (''shift'') el resto de argumentos y llamamos a la funcion &amp;lt;code&amp;gt;doServer&amp;lt;/code&amp;gt;. En esta función hemos de poner en marcha el servicio con los argumentos correspondientes, así que lo primero queharemos será poner estos parámetros en variables locales. Una vez hecho esto lo más lógico sería lanzar la aplicación directamente, pero como el ''script'' se llama con permisos de &amp;quot;root&amp;quot; (no recomendable), hemos de lanzar Pastecat como usuario &amp;lt;code&amp;gt;nobody&amp;lt;/code&amp;gt;. El problema es que el usuario &amp;lt;code&amp;gt;nobody&amp;lt;/code&amp;gt; no tiene casi permisos y Pastecat necesita algunos persmisos para crear directorios y archivos de texto. Para permitir que &amp;lt;code&amp;gt;nobody&amp;lt;/code&amp;gt; pueda hacerlo, primero crearemos un directorio con permisos a casi todos los usuarios. Para esto, utilizaremos el comando &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; de nuevo. Ahora el usuario puede crear archivos y directorios dentro de este mismo directorio, y en consecuencia podemos ejecutar Pastecat. Finalmente hay que mantener el PID en una variable en caso de que lo necesitemos más adelante (que ya os adelantamos que sí lo necesitaremos):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    doServer() {&lt;br /&gt;
        # Turning machine into a server&lt;br /&gt;
    &lt;br /&gt;
        local port=${1:-&amp;quot;&amp;quot;}&lt;br /&gt;
        local description=${2:-&amp;quot;&amp;quot;}&lt;br /&gt;
        local ip=${3:-&amp;quot;0.0.0.0&amp;quot;}&lt;br /&gt;
    &lt;br /&gt;
        # Creating directory with nobody permissions&lt;br /&gt;
        mkdir -p &amp;quot;/var/local/pastecat&amp;quot;&lt;br /&gt;
        chmod 777 &amp;quot;/var/local/pastecat&amp;quot; &amp;amp;&amp;amp; cd &amp;quot;/var/local/pastecat&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
        # Running pastecat &lt;br /&gt;
        cmd='su '$PCUSER' -c &amp;quot;{ '$PCPATH$PCPROG' -l :'$port' &amp;gt; '$LOGFILE' 2&amp;gt;&amp;amp;1 &amp;amp; }; echo \$!&amp;quot;'&lt;br /&gt;
        pidpc=$(eval $cmd)          # keeping PID for future needs...&lt;br /&gt;
    &lt;br /&gt;
        cd -&lt;br /&gt;
    &lt;br /&gt;
        # Using the PID, we could carry on process control so if the pastecat process die, we can also&lt;br /&gt;
        # stop the avahi process to avoid &amp;quot;false connections&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
        return&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fijaos que ahora estamos utilizando algunas variables globales que no estaban definidas antes, como &amp;lt;code&amp;gt;PCUSER&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;LOGFILE&amp;lt;/code&amp;gt;. Estas variables tienen los siguientes valores:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    PCPATH=&amp;quot;/opt/pastecat/&amp;quot;&lt;br /&gt;
    PCPROG=&amp;quot;pastecat&amp;quot;&lt;br /&gt;
    LOGFILE=&amp;quot;/dev/null&amp;quot;&lt;br /&gt;
    PCUSER=&amp;quot;nobody&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Parar el servicio =====&lt;br /&gt;
&lt;br /&gt;
En algún momento es posible que queramos parar nuestro servicio. Para esto crearemos un botón para hacerlo. Lo primero que hacer sería crear el botón, pero si pensamos un poco veremos que antes de crearlo necesitamos una manera de saber si nuestro servicio esta ejecutándose o no. Además, también necesitamos una manera de parar nuestro servicio. Como estamos ejecutando sobre Linux, podemos parar el servicio fácilmente utilizando el comando &amp;lt;code&amp;gt;kill&amp;lt;/code&amp;gt;. El problema es que para utilizar este comando primero necesitamos saber el número de identificación del proceso (PID). Por suerte, ja nos quedamos con este número cuando creamos el servidor de Pastecat; en concreto con la linea &amp;lt;code&amp;gt;pidpc=$(eval $cmd)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ahora que tenemos todo lo que necesitamos para matar nuestro proceso vamos a ver como lo hacemos para que PHP pueda saber si el servicio está ejecutándose o no. Una manera fácil y eficiente de hacerlo es almacenando algunos datos útiles en un archivo y borrarlo cuando se pare Pastecat. De esta manera nos aseguramos que el archivo sólo existe cuando Pastecat está activo. Este archivo lo crearemos desde el controlador aádiendo las siguientes lineas justo despues de la sentencia que hemos mencionado en el párafo anterior:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    # Writting server info to file&lt;br /&gt;
    info=&amp;quot;$pidpc http://$ip:$port&amp;quot;          # Separator is space character&lt;br /&gt;
    echo $info &amp;gt; $PCFILE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;code&amp;gt;$PCFILE&amp;lt;/code&amp;gt; es una variable global que contiene &amp;lt;code&amp;gt;/var/run/pc.info&amp;lt;/code&amp;gt;. Fijaos&lt;br /&gt;
que el contenido del archivo sera el PID del Pastecat y la dirección completa del servidor de este.&lt;br /&gt;
&lt;br /&gt;
Ahora ya tenemos una manera de saber si el servicio está activo o no, de manera que añadiremos justo a continuación el botón 'stop' en la interfaz web. Modificaremos un poco el ''script'' PHP que teniamos antes, añadiendo un anuncio indicando si Pastecat se está ejecutando o no, y dos botones más cuando éste esté ejecutándose. Así pues, nuestra función índice contendrá el siguiente codigo dentro de la condición que comprueba si Pastecat está instalado o no:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;$page .= &amp;quot;&amp;lt;div class='alert alert-success text-center'&amp;gt;&amp;quot;.t(&amp;quot;Pastecat is installed&amp;quot;).&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;;&lt;br /&gt;
    if ( isRunning() ) {&lt;br /&gt;
        $page .= &amp;quot;&amp;lt;div class='alert alert-success text-center'&amp;gt;&amp;quot;.t(&amp;quot;Pastecat is running&amp;quot;).&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;;&lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Go to server'),'href'=&amp;gt;'http://'. getCommunityIP()['output'][0] .':'. $port));&lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Stop server'),'href'=&amp;gt;$staticFile.'/pastecat/stop'));&lt;br /&gt;
    } else  {&lt;br /&gt;
        $page .= &amp;quot;&amp;lt;div class='alert alert-error text-center'&amp;gt;&amp;quot;.t(&amp;quot;Pastecat is not running&amp;quot;).&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    $page .= addButton(array('label'=&amp;gt;t('Create a Pastecat server'),'href'=&amp;gt;$staticFile.'/pastecat/publish'));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este trozo de código podemos apreciar dos nuevas cosas. La priemra es una función de comprobación llamada &amp;lt;code&amp;gt;isRunning()&amp;lt;/code&amp;gt;. Esta función se parece mucho a la funcion que utilizamos para comprar si Pastecat esta instalado o no:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function isRunning() {&lt;br /&gt;
        // Returns whether pastecat is running or not&lt;br /&gt;
        global $pcfile;&lt;br /&gt;
        &lt;br /&gt;
        return(file_exists($pcfile));   &lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es tan simple como parece, solamente comprueba que el archivo creado cuando se lanza el servidor de Pastecat aun existe. Lo segundo que podemos ver nuevo en nuestro codigo es la existencia de una nueva función llamada &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt;. Esta funcion invocará otra función en el controlador que parará el servidor de Pastecat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function stop() {&lt;br /&gt;
        // Stops Pastecat server&lt;br /&gt;
        global $pcpath,$pcprogram,$title,$pcutils,$avahi_type,$port;&lt;br /&gt;
        &lt;br /&gt;
        $page = &amp;quot;&amp;quot;;&lt;br /&gt;
        $cmd = $pcutils.&amp;quot; stop &amp;quot;;&lt;br /&gt;
        execute_program_detached($cmd);&lt;br /&gt;
        &lt;br /&gt;
        return(array('type'=&amp;gt;'redirect','url'=&amp;gt;$staticFile.'/pastecat'));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para hacer que el controlador entienda esta orden tendremos que modificarla sentencia &amp;lt;code&amp;gt;case&amp;lt;/code&amp;gt; y añadir la nueva función. En el &amp;lt;code&amp;gt;case&amp;lt;/code&amp;gt; añadiremos lo siguiente debajo de la opción &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    &amp;quot;stop&amp;quot;)&lt;br /&gt;
        shift&lt;br /&gt;
        doStop $@&lt;br /&gt;
        ;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esto llama a la función &amp;lt;code&amp;gt;doStop&amp;lt;/code&amp;gt; dentro del mismo controlador. Esta función será similar a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    doStop() {&lt;br /&gt;
        # Stopping pastecat server&lt;br /&gt;
        pcpid=$(cat $PCFILE | cut -d' ' -f1)&lt;br /&gt;
        kill $pcpid&lt;br /&gt;
        &lt;br /&gt;
        # Removing info file&lt;br /&gt;
        rm $PCFILE&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta función coge el PID de Pastecat del archivo que hemos creado antes, mata el proceso y finalmente borra el archivo de manera que PHP pueda detectar que Pastecat se ha parado.&lt;br /&gt;
&lt;br /&gt;
Ahora podemos crear un servidor de Pastecat y pararlo. Aun así, aun hay algo que falta: hacer que el resto de usuarios puedan ver nuestro servicio. Para esto usaremos Avahi.&lt;br /&gt;
&lt;br /&gt;
=== Publicación de servicios Avahi ===&lt;br /&gt;
&lt;br /&gt;
Una de las mejores cosas de Cloudy es la caracteristica de publicar nuestros servicios con Avahi, permitiendo a otros usuarios saber qué ofrecemos y que puedan unirse a nuestro servicio. Para hacer esto primero hemos de añadir algunas lineas de código en el controlador PHP, justo debajo de la llamada al controlador en Bash para activar el servidor Pastecat. Añadiremos las siguientes lineas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    $description = str_replace(' ', '', $description);&lt;br /&gt;
    $temp = avahi_publish($avahi_type, $description, $port, &amp;quot;&amp;quot;);&lt;br /&gt;
    $page .= ptxt($temp);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aisí al final nuestra función quedará así:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    function _pcsource($port,$description) {&lt;br /&gt;
        global $pcpath,$pcprogram,$title,$pcutils,$avahi_type;&lt;br /&gt;
        &lt;br /&gt;
        $page = &amp;quot;&amp;quot;;&lt;br /&gt;
        $device = getCommunityDev()['output'][0];&lt;br /&gt;
        $ipserver = getCommunityIP()['output'][0];&lt;br /&gt;
        &lt;br /&gt;
        if ($description == &amp;quot;&amp;quot;) $description = $type;&lt;br /&gt;
        &lt;br /&gt;
        $cmd = $pcutils.&amp;quot; publish '$port' '$description'&amp;quot;;&lt;br /&gt;
        execute_program_detached($cmd);&lt;br /&gt;
        &lt;br /&gt;
        $page .= t($ipserver);&lt;br /&gt;
        $page .= par(t('Published this server.'));&lt;br /&gt;
        $description = str_replace(' ', '', $description);&lt;br /&gt;
        $temp = avahi_publish($avahi_type, $description, $port, &amp;quot;&amp;quot;);&lt;br /&gt;
        $page .= ptxt($temp);&lt;br /&gt;
        &lt;br /&gt;
        $page .= addButton(array('label'=&amp;gt;t('Back'),'href'=&amp;gt;$staticFile.'/pastecat'));&lt;br /&gt;
        &lt;br /&gt;
        return($page)&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con este simple paso hemos anunciado nuestro servicio en la red de Avahi. Pero el trabajo no acaba aquí, queda aun una cosa mas por hacer: crear un botón y programarlo de manera que cuando se pulse nos redirija directamente a nuestro servidor de Pastecat.&lt;br /&gt;
&lt;br /&gt;
Para hacer esto hay una carpeta llamada &amp;lt;code&amp;gt;avahi&amp;lt;/code&amp;gt; dentro del directorio &amp;lt;code&amp;gt;plug&amp;lt;/code&amp;gt;. Los ''scripts'' que definen la acción a llevar a cabo cuando se pulsan los botones estan en diferentes archivos dentro de este directorio. De este modo, crearemos un archivo llamado &amp;lt;code&amp;gt;pastecat.avahi.php&amp;lt;/code&amp;gt; que contendrá:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    // plug/avahi/pastecat.avahi.php&lt;br /&gt;
    &lt;br /&gt;
    addAvahi('pastecat','fpcserver');&lt;br /&gt;
    &lt;br /&gt;
    function fpcserver($dates){&lt;br /&gt;
        global $staticFile;&lt;br /&gt;
        &lt;br /&gt;
        return (&amp;quot;&amp;lt;a class='btn' href='http://&amp;quot; .$dates['ip'] .&amp;quot;:&amp;quot;. $dates['port'].&amp;quot;'&amp;gt;Go to server&amp;lt;/a&amp;gt;  &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esto creará un botón al lado del anuncio de Avahi que apuntará a nuestro servidor.&lt;br /&gt;
&lt;br /&gt;
Ahora que ya tenemos nuestro servicio anunciado, queremos que este desaparezca una vez paremos el servidor de Pastecat. Este último paso es muy simple pero importante. Consiste en unas pocas lineas de código en la función 'stop' del ''script'' PHP. Hasta ahora, esta función solo llamaba al controlador Bash y paraba Pastecat, pero ahora también parará la publicación Avavhi y mostrará un breve comentario notificando que la llamada ha funcionado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
    $temp = avahi_unpublish($avahi_type, $port);&lt;br /&gt;
    $flash = ptxt($temp);&lt;br /&gt;
    setFlash($flash);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Estas lineas tienen que ser añadidas justo después de la sentencia &amp;lt;code&amp;gt;execute_program_detached($cmd)&amp;lt;/code&amp;gt; en la función 'stop' de PHP.&lt;br /&gt;
&lt;br /&gt;
=== Final ===&lt;br /&gt;
&lt;br /&gt;
Finalmente añadir que todos los archivos implementados en este tutorial se pueden encontrar en un repositorio Github, que aparece en el apartado de Enlaces Externos, junto a este mismo tutorial en formato Markdown (md).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/Clommunity/Doc/tree/master/plugins/pastecat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;br /&gt;
[[ca:Cloudy_plug-ins]]&lt;br /&gt;
[[en:Cloudy_plug-ins]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy_plug-ins</id>
		<title>Cloudy plug-ins</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy_plug-ins"/>
				<updated>2015-04-22T16:56:05Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es un plug-in? ==&lt;br /&gt;
&lt;br /&gt;
Cloudy es una distribución de Linux basada en Debian que proporciona a los usuarios una interfaz simple y cómoda para gestionar diferentes servicios que pueden usarse a través de una red comunitaria; en nuestro caso, Guifi.&lt;br /&gt;
&lt;br /&gt;
Al mismo tiempo, Cloudy ofrece una serie de herramientas que permiten a un usuario añadir un servicio de su agrado sin tener grandes conocimientos sobre redes e informática en general. Automaticamente, estos servicios se publican mediante Avahi, de manera que todo el que utilice Cloudy podrá hacer uso de estos servicios.&lt;br /&gt;
&lt;br /&gt;
Otra manera de llamar estos servicios que se pueden poner y quitar de forma sencilla es ''plug-in''. Por tanto, entendemos por plug-in a un programa o software que un usuario quiere añadir a la distribución y que puede ser gestionado de forma simple des de la interfaz web que provee Cloudy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Añadir servicios a Cloudy ==&lt;br /&gt;
&lt;br /&gt;
=== Una pequeña introducción ===&lt;br /&gt;
&lt;br /&gt;
Esta guía te enseñará el proceso para añadir un nuevo servicio en la distribución Cloudy.&lt;br /&gt;
&lt;br /&gt;
Para serclaro y dar algunos ejemplos al mismo tiempo, integraremos un servicio bastante simple mostrando algunos trozos de código por el camino. Para seguir el tutorial con más facilidad o bien para integrar servicios más complejos, estaría bien tener algunos conocimientos de Bash&amp;lt;ref name=&amp;quot;Bash&amp;quot;&amp;gt;(http://www.tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf)&amp;lt;/ref&amp;gt; y de PHP&amp;lt;ref name=&amp;quot;PHP&amp;quot;&amp;gt;(https://php.net/manual/es/index.php)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por simplicidad utilizaremos Pastecat&amp;lt;ref name=&amp;quot;Pastecat&amp;quot;&amp;gt;(https://github.com/mvdan/pastecat)&amp;lt;/ref&amp;gt;. Es un buen candidato ya que:&lt;br /&gt;
&lt;br /&gt;
* Es independiente y no se ''federa'' ni se comunica con otros nodos.&lt;br /&gt;
* Está hecho en Go, es facil de distribuir e instalar.&lt;br /&gt;
* No necesita archivos de configuración.&lt;br /&gt;
* No necesita muchos recursos.&lt;br /&gt;
&lt;br /&gt;
=== Obtener el binario ===&lt;br /&gt;
&lt;br /&gt;
Lo primero que hemos de investigar es como descargar e instalar el binario en Cloudy. La mayoria de software que podemos encontrar está por defecto en los paquetes de Debian, pero Pastecat no está. Si se diera el caso de que estuviera, solo tendríamos que ejecutar el comando &amp;lt;code&amp;gt;apt-get install pastecat&amp;lt;/code&amp;gt; desde PHP.&lt;br /&gt;
&lt;br /&gt;
Pero como este no es el caso, tendremos que obtener el binario por otro lado. Una opcion es coger el código fuente y compilarlo nosotros mismos, pero el problema de esto es que Cloudy necesitaria incluir muchas herramientas y librerias de desarrollo, y este no es el objetivo.&lt;br /&gt;
&lt;br /&gt;
La mejor opción si un paquete de Debian no está disponible en los repositorios es descargar los binarios de otro lugar seguro. Podemos utilizar el servicio de ''&amp;quot;releases&amp;quot;'' de Github para ello. Las dos opciones nos dan un archivo ejecutable que tendríamos que ser capaces de ejecutar directamente sobre Cloudy.&lt;br /&gt;
&lt;br /&gt;
En este caso en particular descargaremos los binarios desde el repositorio git con la siguiente linea de comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nótese que en este caso en concreto estamos descargando una versión específica para Linux con arquitectura i386.&lt;br /&gt;
&lt;br /&gt;
Fijaos que tener un servicio en los paquetes de Debian tiene muchas ventajas:&lt;br /&gt;
&lt;br /&gt;
* Las actualizaciones son simples y no necesitan trabajo extra desde Cloudy.&lt;br /&gt;
* El paquete está compilado para Debian de manera segura.&lt;br /&gt;
* Los archivos de ''init.d'' ya vienen por defecto.&lt;br /&gt;
* Los paquetes de Debian suelen contener correciones.&lt;br /&gt;
&lt;br /&gt;
=== Probarlo ===&lt;br /&gt;
&lt;br /&gt;
Antes de añadir un servicio deberíamos configurarlo y probarlo nosotros directamente para ver cómo funciona y que realmente funciona. También hemos de entender qué opciones de configuración o de linea de comandos necesitamos para hacer uso de este servicio en particular y como lo gestionariamos una vez este funcionando.&lt;br /&gt;
&lt;br /&gt;
=== Añadir el controlador ===&lt;br /&gt;
&lt;br /&gt;
En &amp;lt;code&amp;gt;web/plug/controllers&amp;lt;/code&amp;gt; tenenmos un archivo PHP para cada servicio, llamado controlador (o 'controller' en inglés). Este archivo contiene el codigo que se ejecutará cuando se visite la página de nuestro servicio desde la interfaz de Cloudy.&lt;br /&gt;
&lt;br /&gt;
==== Añadir la función indice ====&lt;br /&gt;
&lt;br /&gt;
Lo que queremos es que nuestro servicio esté integrado en la estructura web de Cloudy. Para ello, necesitamos crear unos cuantos ''scripts'' en PHP y añadirlos a nuestro sistema. De momento crearemos dos ''scripts'': &amp;lt;code&amp;gt;pastecat.php&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;pastecat.menu.php&amp;lt;/code&amp;gt;. El primer archivo es el controlador, es decir, el ''script'' que renderiza la página y tiene toda la información tal como botones o redireccionamientos. El otro es el que permite que nuestro servicio se muestre en los menus superiores desplegables de Cloudy. &lt;br /&gt;
&lt;br /&gt;
El código del menú será similar a esto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt; &lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    //peerstreamer.menu.php&lt;br /&gt;
    addMenu('Pastecat','pastecat','Clommunity');&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ahora, utilizaremos un ''script'' muy simple en PHP como controlador:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt; &lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    //pastecat&lt;br /&gt;
    $title=&amp;quot;Pastecat&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    function index(){&lt;br /&gt;
        global $paspath,$title;&lt;br /&gt;
        global $staticFile;&lt;br /&gt;
    &lt;br /&gt;
        $page=hlc(t($title));&lt;br /&gt;
        $page .= hl(t(&amp;quot;Minimalist pastebin engine written in Go&amp;quot;),4);&lt;br /&gt;
        $page .= par(t(&amp;quot;A simple and self-hosted pastebin service written in Go&amp;quot;).' '.t(&amp;quot;Can use a variety of storage backends&amp;quot;).' '.t(&amp;quot; Designed to optionally remove pastes after a certain period of time.&amp;quot;).' '.(&amp;quot;If using a persistent storage backend, pastes will be kept between runs.&amp;quot;).' '.t(&amp;quot;This software runs the&amp;quot;).' '.&amp;quot;&amp;lt;a href='http://paste.cat'&amp;gt;&amp;quot;.t(&amp;quot;paste.cat&amp;quot;).&amp;quot;&amp;lt;/a&amp;gt;&amp;quot;. t(&amp;quot; public service.&amp;quot;));&lt;br /&gt;
        &lt;br /&gt;
        return(array('type' =&amp;gt; 'render','page' =&amp;gt; $page));&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En nuestro sistema Cloudy estos archivos han de ponerse en los directorios dentro de &amp;lt;code&amp;gt;/var/local/cDistro/plug/&amp;lt;/code&amp;gt;. El primero ha de ir en &amp;lt;code&amp;gt;menus&amp;lt;/code&amp;gt; y el segundo en el directori &amp;lt;code&amp;gt;controllers&amp;lt;/code&amp;gt;. Una vez hecho esto podemos ir a la web de nuestro Cloudy y acceder al nuevo menú Pastecat.&lt;br /&gt;
&lt;br /&gt;
==== Hacer que el controlador instale nuestro servicio ====&lt;br /&gt;
&lt;br /&gt;
Como se ha comentado anteriormente, este paso es mucho más sencillo de hacer si el servicio está entre los paquetes de Debian. Como que no es el caso de Pastecat, lo tendremos que hacer manualmente. Normalmente hacer este proceso manualmente incluye una combinación de los comandos &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt;. En general, es buena idea mantener los archivos de este tipo de servicios en &amp;lt;code&amp;gt;/opt/SERVICENAME&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En nuestro caso particular, lo primero que necesitamos es descargar el binario de la ''release'' de Github. Para ello utilizaremos el comando: &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;. Dada una URL a un archivo, este comando permite descargar este archivo en nuestro sistema, i es lo que haremos con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tengamos el binario en nuestra máquina, lo moveremos al directorio /opt/pastecat/. Para mover los archivos por nuestro sistema usaremos el comando &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt;. Aun así, primero tendremos que crear el directorio donde pondremos el archivo. Para ello utilizaremos &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
   mkdir -p /opt/pastecat/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez hayamos creado el directorio, es hora de mover el binario:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    mv current_directory/pastecat_linux_386 /opt/pastecat/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;quot;current_directory&amp;quot; es el directorio donde previamente hemos descargado el binario. Como el nombre del binario depende de la arquitectura, para simplificar el código del controlador, cambiaremos el nombre del archivo ejecutable por algo más genérico y simple:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    mv /opt/pastecat/pastecat_linux_386 /opt/pastecat/pastecat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora nuestro binario se llama &amp;lt;code&amp;gt;pastecat&amp;lt;/code&amp;gt; en lugar de &amp;lt;code&amp;gt;pastecat_linux_386&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Estos pasos son los requisitos mínimos para instalar un servicio que no se ofrece directamente en los repositorios oficiales de Debian. Sin embargo, de cara a un usuario final, sería una pesadilla tener que hacer todos estos comandos en una consola conectado a través de &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; a su dispositivo, así que lo que haremos a continuación es crear un ''script'' en Bash que será llamado más adelante a traves de la interfaz web haciendo click en un botón.&lt;br /&gt;
&lt;br /&gt;
Este ''script'' es la primera versión del controlador de Pastecat. Por ahora solo incluiremos una función para instalar Pastecat en nuestro dispositivo. Más adelante incluiremos otras funciones para proveer a nuestro ''script'' de más servicios:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    PCPATH=&amp;quot;/opt/pastecat/&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    doInstall() {&lt;br /&gt;
        if isInstall&lt;br /&gt;
        then&lt;br /&gt;
            echo &amp;quot;Pastecat is already installed.&amp;quot;&lt;br /&gt;
            return&lt;br /&gt;
        fi&lt;br /&gt;
    &lt;br /&gt;
        # Creating directory and switching&lt;br /&gt;
        mkdir -p $pcpath &amp;amp;&amp;amp; cd $pcpath&lt;br /&gt;
    &lt;br /&gt;
        # Getting file&lt;br /&gt;
        wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386&lt;br /&gt;
    &lt;br /&gt;
        # Changing name so controller can invoke it generically&lt;br /&gt;
        mv pastecat_linux_386 pastecat&lt;br /&gt;
        chmod +x pastecat&lt;br /&gt;
        &lt;br /&gt;
        cd -&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    isInstalled() {&lt;br /&gt;
        [ -d $pcpath ] &amp;amp;&amp;amp; return 0&lt;br /&gt;
        return 1&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    case $1 in&lt;br /&gt;
        &amp;quot;install&amp;quot;)&lt;br /&gt;
            shift&lt;br /&gt;
            doInstall $@&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos ver como los últimos pasos se han concentrado en una misma función, permmiténdonos instalar el software en el dispositivo de una manera mas sencilla.&lt;br /&gt;
&lt;br /&gt;
==== Hacer que el controlador utilitce Pastecat ====&lt;br /&gt;
&lt;br /&gt;
===== Ejecutar el servicio =====&lt;br /&gt;
&lt;br /&gt;
WiP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Final ===&lt;br /&gt;
&lt;br /&gt;
Finalmente añadir que todos los archivos implementados en este tutorial se pueden encontrar en un repositorio Github, que aparece en el apartado de Enlaces Externos, junto a este mismo tutorial en formato Markdown (md).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/Clommunity/Doc/tree/master/plugins/pastecat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;br /&gt;
[[ca:Cloudy_plug-ins]]&lt;br /&gt;
[[en:Cloudy_plug-ins]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Qu%C3%A9_es_Cloudy</id>
		<title>Qué es Cloudy</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Qu%C3%A9_es_Cloudy"/>
				<updated>2015-02-19T14:45:56Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:clommunity-logo.png|right|100px]]&lt;br /&gt;
[[File:Logo_guifi.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
Cloudy &amp;lt;ref name=&amp;quot;cloudy&amp;quot;&amp;gt;Cloudy: http://wiki.clommunity-project.eu/soft:cloudservices&amp;lt;/ref&amp;gt; es una distribución basada en Debian GNU/Linux &amp;lt;ref name=&amp;quot;debian&amp;quot;&amp;gt;Debian GNU/Linux: http://debian.org&amp;lt;/ref&amp;gt; desarrollada en el marco del proyecto europeo CLOMMUNITY.&amp;lt;ref name=&amp;quot;clommunity&amp;quot;&amp;gt;CLOMMUNITY project: http://clommunity-project.eu&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta distribución, inspirada en la idea de la antigua [[Guinux]] &amp;lt;ref name=&amp;quot;guinux&amp;quot;&amp;gt;Guinux: http://guifi.net/node/29320&amp;lt;/ref&amp;gt;, facilita el despliegue y la gestión de los servicios de red en la nube ''(cloud services)''&amp;lt;ref name=&amp;quot;cloud-services&amp;quot;&amp;gt;Cloud computing: http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube&amp;lt;/ref&amp;gt;, así como la compartición de estos. Pensada en particular para los usuarios de redes comunitarias.&amp;lt;ref name=&amp;quot;CN&amp;quot;&amp;gt;Redes comunitarias: http://es.wikipedia.org/wiki/Comunidad_inal%C3%A1mbrica&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Antes de la adopción general de servicios en la nube ''(cloud services)''&amp;lt;ref name=&amp;quot;cloud-services&amp;quot;/&amp;gt; los usuarios de redes comunitarias &amp;lt;ref name=&amp;quot;CN&amp;quot;/&amp;gt; ya compartían o proveían servicios y recursos a la comunidad; sin embargo, estos usuarios eran una minoria. Una de las principales razones es la barrera tecnológica. Antes de proveer contenidos, los usuarios que quieren compartir información con la comunidad tienen primero que preocuparse de los aspectos técnicos como el despliegue/montaje de un servidor con un conjunto de servicios.&lt;br /&gt;
&lt;br /&gt;
En el pasado, los usuarios de Guifi.net, intentaron superar este problema publicando una distribución GNU/Linux llamada [[Guinux]] &amp;lt;ref name=&amp;quot;guinux&amp;quot;/&amp;gt;, que daba a los usuarios finales una solución fácil para ofrecer servicios a la comunidad (tales como [[Servidor_Proxy|proxy web]], [[Servidor_DNS|servidor DNS]], [[SNPservices|monitorización y gráficas]]).&lt;br /&gt;
&lt;br /&gt;
La clave principal de [[Guinux]] era un conjunto de ''scripts''&amp;lt;ref&amp;gt;http://es.wikipedia.org/wiki/Script&amp;lt;/ref&amp;gt; que automatitzaban el proceso de configuración. Los usuarios solo tenían que introducir unos pocos parámetros como la dirección de correo electrónico y el identificador del nodo. Enseguida, después de estar disponible la distribución, el número de usuarios compartiendo recursos aumentó considerablemente.&lt;br /&gt;
&lt;br /&gt;
De acuerdo con esto, quedó claro que reduciendo (o eliminando) la barrera d'entrada tecnológica animó a los usuarios a proveer de más servicios y a compartir sus recursos con la comunidad. Para ello, uno de los objetivos principales del proyecto CLOMMUNITY &amp;lt;ref name=&amp;quot;clommunity&amp;quot;/&amp;gt; es publicar una distribución GNU/Linux, llamada Cloudy, dirigida a los usuarios, para fomentar la transición y adopción del entorno Cloud en redes comunitarias ''(Community Network Cloud)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motivación === &lt;br /&gt;
&lt;br /&gt;
La distribución Cloudy ha sido pensada para satisfacer los siguientes requisitos:&lt;br /&gt;
&lt;br /&gt;
# '''Distribución''': para potenciar la distribución de servicios en las redes comunitarias (CN; community networks) es necesaria una plataforma para publicar y descubrir estos servicios. De este modo, el acceso a los servicios no depende de despliegues estáticos de redes y la estructura es consciente de las condiciones dinámicamente cambiantes de las CN. El software elegido para la publicación y descubrimiento de servicios es Avahi&amp;lt;ref name=&amp;quot;avahi&amp;quot;&amp;gt;Avahi: http://avahi.org&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# '''Descentralitzación''': una capa de red común es necesaria para permitir a todos los nodos de la nube comunicarse entre ellos directamente. Una buena manera de construir esto es creando una &amp;quot;capa 2 de red virtual&amp;quot; basada en un servicio VPN&amp;lt;ref&amp;gt;Red Privada Virtual: http://es.wikipedia.org/wiki/Red_privada_virtual&amp;lt;/ref&amp;gt;. Entre las opciones disponibles, se ha elegido Tinc VPN&amp;lt;ref&amp;gt;Tinc VPN: http://tinc-vpn.org&amp;lt;/ref&amp;gt;, ya que cumple todos los requisitos y es sencillo de configurar y administrar. Para coordinar los dispositivos con Tinc VPN, se ha desarrollado una herramienta para automatizar el despliegue del sistema. Este software, Getinconf&amp;lt;ref&amp;gt;Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md&amp;lt;/ref&amp;gt;, se encarga del proceso de configuración de Tinc VPN y del intercambio de claves con el resto de nodos de la nube.&lt;br /&gt;
# '''Facilidad de uso y experiencia de usuario''': para este objetivo, se ha desarrollado una plataforma web de administración destinada a integrar la instalación y configuración de los servicios en la nube habilitados en la distribución Cloudy. Una interfaz web simple y agradable &amp;lt;ref&amp;gt;Interfaz web de Cloudy: http://redmine.confine-project.eu/projects/getinconf&amp;lt;/ref&amp;gt; está disponible para los usuarios como solución fácil de configuración, administración y monitorización de los servicios ''cloud'' activos en el nodo.&lt;br /&gt;
# '''Software libre''': la distribución está basada en Debian GNU/Linux&amp;lt;ref name=&amp;quot;debian&amp;quot;/&amp;gt;. A parte de ser una de les distribuciones más populars y cumplir con los requisitos técnicos, ha sido elegida ya que el ''Debian Social Contract''&amp;lt;ref&amp;gt;Debian social contract: https://www.debian.org/social_contract&amp;lt;/ref&amp;gt; salvaguarda y garantiza que el software será siempre abierto y libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Requisitos mínimos ==&lt;br /&gt;
&lt;br /&gt;
Al ser una sistema basado en Debian, tiene los mismos requisitos de hardware.&amp;lt;ref&amp;gt;Requisitos mínimos: https://www.debian.org/releases/stable/i386/ch03s04.html.es&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen del sistema Cloudy trae una serie de configuraciones y paquetes adicionales; por lo que hace que sean necesarios alrededor de '''450 MiB de espacio de almacenamiento'''.&lt;br /&gt;
&lt;br /&gt;
De todos modos, es '''recomendable''' contar con '''al menos 1 GiB'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si se quiere utilizar algunos servicios como PeerStreamer (leer más abajo) los requisitos mínimos aumentarán, tanto de espacio como de memoria y procesamiento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conseguir Cloudy ==&lt;br /&gt;
&lt;br /&gt;
Actualmente puedes obtener la distribución Cloudy mediante la descarga de una imagen ISO para grabar en un CD o memoria USB, o de un ''template'' para ejecutar directamente en una máquina virtual (contenedor LXC&amp;lt;ref&amp;gt;Linux containers (LXC): https://linuxcontainers.org/&amp;lt;/ref&amp;gt; o OpenVZ&amp;lt;ref&amp;gt;http://openvz.org&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Alternativamente puedes bajar el codigo y compilarlo tú mismo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Descarga la imagen ===&lt;br /&gt;
&lt;br /&gt;
Ves a la página de Cloudy donde están las imagenes almacenadas:&lt;br /&gt;
&lt;br /&gt;
http://repo.clommunity-project.eu/images/&lt;br /&gt;
&lt;br /&gt;
Actualmente aun está en desarrollo y por tanto '''sólo está disponible la rama ''unstable'''''.&lt;br /&gt;
&lt;br /&gt;
Ahí encontrarás:&lt;br /&gt;
&lt;br /&gt;
* cloudy.README - Relación de paquetes adicionales incluidos en la imagen del sistema.&lt;br /&gt;
* cloudy.container.tar.gz - ''Template'' para crear una VM.&lt;br /&gt;
* cloudy.iso - Imatge ISO&lt;br /&gt;
&lt;br /&gt;
==== Grabar la imagen ISO (Linux) ====&lt;br /&gt;
&lt;br /&gt;
Los archivos ISO son ''live install CD images'', es decir, tienen un sistema de instalación que se ejecuta justo al iniciar la máquina desde el dispositivo (CD/DVD/USB).&lt;br /&gt;
&lt;br /&gt;
Puedes grabarlo en:&lt;br /&gt;
&lt;br /&gt;
* En un CD o DVD:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install xorriso&lt;br /&gt;
 $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed cloudy.iso&lt;br /&gt;
&lt;br /&gt;
* En una memoria USB:&lt;br /&gt;
&lt;br /&gt;
 $ dd if=cloudy.iso of=${USBSTICK}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compilar ===&lt;br /&gt;
&lt;br /&gt;
Para construir o compilar Cloudy se necesitan algunos programas en la máquina para poder descargar el código fuente, generar los binarios, manipular las imágenes ISO, etc.&lt;br /&gt;
&lt;br /&gt;
1. Descargar los paquetes necesarios (ejemple con la herramienta ''apt'' de los sistemas basados en Debian):&lt;br /&gt;
 sudo apt-get install build-essential live-build imagemagick curl debootstrap git unzip &lt;br /&gt;
&lt;br /&gt;
2. Descargar el &amp;quot;constructor&amp;quot; ''LBmake'' (Live-Build Make) para crear la imagen:&lt;br /&gt;
 git clone https://github.com/Clommunity/lbmake&lt;br /&gt;
&lt;br /&gt;
3. Compilar y generar la imagen ISO (y el Linux Container):&lt;br /&gt;
&lt;br /&gt;
* Ir al directorio donde se ha bajado el código de ''LBmake'' y compilar utilizando la herramienta de Linux ''make'':&lt;br /&gt;
 cd lbmake&lt;br /&gt;
 sudo make&lt;br /&gt;
&lt;br /&gt;
4. Una vez generada la imagen puedes probarla virtualizando el sistema con QEMU.&amp;lt;ref&amp;gt;QEMU processor emulator: http://wiki.qemu.org/Main_Page&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Generar una imagen de disco y utilizar la imagen ISO como Live CD para la instalación:&lt;br /&gt;
 qemu-img create -f qcow2 disk.qcow2 4G&lt;br /&gt;
 qemu-system-i386 -enable-kvm -cdrom devel/binary.hybrid.iso -hda disk.qcow2&lt;br /&gt;
&lt;br /&gt;
''NOTA: si tienes una máquina relativamente reciente, añadiendo la opción '-enable-kvm' se aprovecha la virtualitzación por hardware, con lo que aumentará la rápidez/fluidez.''&lt;br /&gt;
&lt;br /&gt;
==== Linux container ====&lt;br /&gt;
&lt;br /&gt;
Opcionalmente, a parte de la imagen ISO se puede crear un ''Linux Container'' con el siguiente comando:&lt;br /&gt;
 sudo make container&lt;br /&gt;
&lt;br /&gt;
''NOTA: antes de generar el contenedor (linux container) primero se tiene que haber creado la imagen ISO. En caso de que no fuera así, el comando anterior generará primero la ISO y después el contenedor.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
Como se explica en la introducción, la distribución Cloudy está basada en Debian GNU/Linux y contenida en una imagen ISO ''live''.&lt;br /&gt;
&lt;br /&gt;
Puedes probar a arrancar el sistema desde el dispositivo externo (CD/DVD/USB), o bien iniciar el proceso de instalación, seleccionando la opción corresponendiente en el menú.&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-boot-install.png|center]]&lt;br /&gt;
&lt;br /&gt;
La instalación es igual que con un Debian estándar &amp;lt;ref&amp;gt;Debian installation procedure: http://www.debian.org/releases/stable/i386/&amp;lt;/ref&amp;gt;, y los pasos se pueden resumir en: &lt;br /&gt;
&lt;br /&gt;
# Escoger la opción ''Install'' en el menú de inicio. (min 0:06)&lt;br /&gt;
# Seleccionar el idioma por defecto de la instalación y del sistema. (min 0:12)&lt;br /&gt;
# Seleccionar tu ubicación. (min 0:16)&lt;br /&gt;
# Seleccionar el mapa de teclado. (min 0:19)&lt;br /&gt;
# Cambiar/asignar el nombre del sistema. (min 1:21)&lt;br /&gt;
# Añadir la contraseña de ''root''. (min 1:37)&lt;br /&gt;
# Crear una nueva cuenta de usuario con contraseña. (min 1:45)&lt;br /&gt;
# Particionar el disco. En el ejemplo se ha utilizado todo el disco con una sola partición. (min 2:02)&lt;br /&gt;
# Configurar el gestor de paquetes, añadiendo una réplica del repositorio de Debian más próximo. (min 3:10)&lt;br /&gt;
# Instalar el cargador (''boot loader'') GRUB en el registro maestro de arranque del disco (''master boot record''). (min 4:34)&lt;br /&gt;
# Finalizar la instalación para reiniciar la máquina e iniciar el nuevo sistema. (min 4:43)&lt;br /&gt;
&lt;br /&gt;
''NOTA: las referencias en paréntesis corresponden al momento aproximado en el ejemplo en video &amp;lt;ref&amp;gt;Cloudy installation: http://videos.guifi.net/guifimedia/@cloudy/Cloudy%20installation.mp4&amp;lt;/ref&amp;gt; del proceso de instalación.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cómo actualizar ==&lt;br /&gt;
&lt;br /&gt;
El sistema de actualización permite comprobar y actualizar los paquetes propios de Cloudy para no tener que reinstalar el sistema ni perder los datos.&lt;br /&gt;
&lt;br /&gt;
En la versión actual, en el menú '''''System &amp;gt; Update''''', se puede comprobar si hay una versión nueva de los paquetes de Cloudy y actualizarlos uno a uno. También está la opción para hacer un ''upgrade'' general del sistema (paquetes de Debian).&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-update.png|center|1024px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Primeros pasos ==&lt;br /&gt;
&lt;br /&gt;
Para acceder al sistema de configuración se hace mediante un navegador web entrando en la '''dirección''' de la máquina servidor en el '''puerto 7000'''.&lt;br /&gt;
 http://DIRECCIÓN_IP:7000&lt;br /&gt;
&lt;br /&gt;
Credenciales:&lt;br /&gt;
* '''Usuario:''' root&lt;br /&gt;
* '''Contraseña:''' root ''(por defecto en el container, y seleccionada durante la instalación con la imagen ISO)''&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-home.png|center|1024px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez dentro podemos ver la página inicial con información general del sistema y un menú superior con diferentes secciones, dividido en dos partes.&lt;br /&gt;
&lt;br /&gt;
1. A la '''izquierda''' tenemos las opciones de configuración y monitorización del '''sistema'''.&lt;br /&gt;
&lt;br /&gt;
* '''Cloudy:''' página de inicio.&lt;br /&gt;
* '''System:''' actualizaciones, configuración de usuario, desconexión.&lt;br /&gt;
* '''Languages:''' selecció de l'idioma.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A la '''derecha''' tenemos las opciones de configuración y gestión de los '''servicios'''.&lt;br /&gt;
* '''Search:''' herramientas para anunciar y buscar servicios en la red. Permite utilizar diferentes programas para ello.&lt;br /&gt;
* '''Clommunity:''' servicios introducidos en el proyecto CLOMMUNITY.&lt;br /&gt;
* '''Guifi.net:''' servicios habitualmente utilizados en la red de Guifi.net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Servicios ===&lt;br /&gt;
&lt;br /&gt;
A continuación podéis ver qué servicios hay acutalmente disponibles en Cloudy para ser configurados fácilmente a través de la interfaz web.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Por hacer: explicación de cada uno de los servicios (puede verse en inglés en la página de Cloudy &amp;lt;ref&amp;gt;Cloudy contents: http://cloudy.community/features/&amp;lt;/ref&amp;gt;&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Clommunity ====&lt;br /&gt;
* Getinconf (gestión del cliente TincVPN)&lt;br /&gt;
* OpenVZ Web Panel (gestión de máquinas virtuales)&lt;br /&gt;
* Peer Streamer (streaming distribuido)&lt;br /&gt;
* Syncthing (sincronización de archivos en red)&lt;br /&gt;
* Tahofe-LAFS (sistema de ficheros distribuido)&lt;br /&gt;
* Webdav server&lt;br /&gt;
&lt;br /&gt;
==== Guifi ====&lt;br /&gt;
* Proxy3 (proxy web)&lt;br /&gt;
[[File:cloudy-guifi-proxy.png|center]]&lt;br /&gt;
&lt;br /&gt;
* SNPServices (monitorización/gráficas)&lt;br /&gt;
[[File:cloudy-guifi-snpservices.png|center]]&lt;br /&gt;
&lt;br /&gt;
* DNSServices (DNS)&lt;br /&gt;
[[File:cloudy-guifi-dnsservices.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enllaces externos ==&lt;br /&gt;
&lt;br /&gt;
* http://cloudy.community&lt;br /&gt;
* http://wiki.clommunity-project.eu/soft:cloudservices&lt;br /&gt;
* http://clommunity-project.eu&lt;br /&gt;
* http://guifi.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy</id>
		<title>Cloudy</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy"/>
				<updated>2015-01-26T17:14:48Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página redirigida a Categoría:Cloudy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Categor%C3%ADa:Cloudy</id>
		<title>Categoría:Cloudy</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Categor%C3%ADa:Cloudy"/>
				<updated>2015-01-26T17:12:55Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «Más información (en inglés): * http://cloudy.community * http://wiki.clommunity-project.eu/soft:cloudservices»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Más información (en inglés):&lt;br /&gt;
* http://cloudy.community&lt;br /&gt;
* http://wiki.clommunity-project.eu/soft:cloudservices&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Qu%C3%A9_es_Cloudy</id>
		<title>Qué es Cloudy</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Qu%C3%A9_es_Cloudy"/>
				<updated>2015-01-26T17:12:15Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:clommunity-logo.png|right|100px]]&lt;br /&gt;
[[File:Logo_guifi.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
Cloudy &amp;lt;ref name=&amp;quot;cloudy&amp;quot;&amp;gt;Cloudy: http://wiki.clommunity-project.eu/soft:cloudservices&amp;lt;/ref&amp;gt; es una distribución basada en Debian GNU/Linux &amp;lt;ref name=&amp;quot;debian&amp;quot;&amp;gt;Debian GNU/Linux: http://debian.org&amp;lt;/ref&amp;gt; desarrollada en el marco del proyecto europeo CLOMMUNITY.&amp;lt;ref name=&amp;quot;clommunity&amp;quot;&amp;gt;CLOMMUNITY project: http://clommunity-project.eu&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta distribución, inspirada en la idea de la antigua [[Guinux]] &amp;lt;ref name=&amp;quot;guinux&amp;quot;&amp;gt;Guinux: http://guifi.net/node/29320&amp;lt;/ref&amp;gt;, facilita el despliegue y la gestión de los servicios de red en la nube ''(cloud services)''&amp;lt;ref name=&amp;quot;cloud-services&amp;quot;&amp;gt;Cloud computing: http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube&amp;lt;/ref&amp;gt;, así como la compartición de estos. Pensada en particular para los usuarios de redes comunitarias.&amp;lt;ref name=&amp;quot;CN&amp;quot;&amp;gt;Redes comunitarias: http://es.wikipedia.org/wiki/Comunidad_inal%C3%A1mbrica&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Antes de la adopción general de servicios en la nube ''(cloud services)''&amp;lt;ref name=&amp;quot;cloud-services&amp;quot;/&amp;gt; los usuarios de redes comunitarias &amp;lt;ref name=&amp;quot;CN&amp;quot;/&amp;gt; ya compartían o proveían servicios y recursos a la comunidad; sin embargo, estos usuarios eran una minoria. Una de las principales razones es la barrera tecnológica. Antes de proveer contenidos, los usuarios que quieren compartir información con la comunidad tienen primero que preocuparse de los aspectos técnicos como el despliegue/montaje de un servidor con un conjunto de servicios.&lt;br /&gt;
&lt;br /&gt;
En el pasado, los usuarios de Guifi.net, intentaron superar este problema publicando una distribución GNU/Linux llamada [[Guinux]] &amp;lt;ref name=&amp;quot;guinux&amp;quot;/&amp;gt;, que daba a los usuarios finales una solución fácil para ofrecer servicios a la comunidad (tales como [[Servidor_Proxy|proxy web]], [[Servidor_DNS|servidor DNS]], [[SNPservices|monitorización y gráficas]]).&lt;br /&gt;
&lt;br /&gt;
La clave principal de [[Guinux]] era un conjunto de ''scripts''&amp;lt;ref&amp;gt;http://es.wikipedia.org/wiki/Script&amp;lt;/ref&amp;gt; que automatitzaban el proceso de configuración. Los usuarios solo tenían que introducir unos pocos parámetros como la dirección de correo electrónico y el identificador del nodo. Enseguida, después de estar disponible la distribución, el número de usuarios compartiendo recursos aumentó considerablemente.&lt;br /&gt;
&lt;br /&gt;
De acuerdo con esto, quedó claro que reduciendo (o eliminando) la barrera d'entrada tecnológica animó a los usuarios a proveer de más servicios y a compartir sus recursos con la comunidad. Para ello, uno de los objetivos principales del proyecto CLOMMUNITY &amp;lt;ref name=&amp;quot;clommunity&amp;quot;/&amp;gt; es publicar una distribución GNU/Linux, llamada Cloudy, dirigida a los usuarios, para fomentar la transición y adopción del entorno Cloud en redes comunitarias ''(Community Network Cloud)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motivación === &lt;br /&gt;
&lt;br /&gt;
La distribución Cloudy ha sido pensada para satisfacer los siguientes requisitos:&lt;br /&gt;
&lt;br /&gt;
# '''Distribución''': para potenciar la distribución de servicios en las redes comunitarias (CN; community networks) es necesaria una plataforma para publicar y descubrir estos servicios. De este modo, el acceso a los servicios no depende de despliegues estáticos de redes y la estructura es consciente de las condiciones dinámicamente cambiantes de las CN. El software elegido para la publicación y descubrimiento de servicios es Avahi&amp;lt;ref name=&amp;quot;avahi&amp;quot;&amp;gt;Avahi: http://avahi.org&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# '''Descentralitzación''': una capa de red común es necesaria para permitir a todos los nodos de la nube comunicarse entre ellos directamente. Una buena manera de construir esto es creando una &amp;quot;capa 2 de red virtual&amp;quot; basada en un servicio VPN&amp;lt;ref&amp;gt;Red Privada Virtual: http://es.wikipedia.org/wiki/Red_privada_virtual&amp;lt;/ref&amp;gt;. Entre las opciones disponibles, se ha elegido Tinc VPN&amp;lt;ref&amp;gt;Tinc VPN: http://tinc-vpn.org&amp;lt;/ref&amp;gt;, ya que cumple todos los requisitos y es sencillo de configurar y administrar. Para coordinar los dispositivos con Tinc VPN, se ha desarrollado una herramienta para automatizar el despliegue del sistema. Este software, Getinconf&amp;lt;ref&amp;gt;Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md&amp;lt;/ref&amp;gt;, se encarga del proceso de configuración de Tinc VPN y del intercambio de claves con el resto de nodos de la nube.&lt;br /&gt;
# '''Facilidad de uso y experiencia de usuario''': para este objetivo, se ha desarrollado una plataforma web de administración destinada a integrar la instalación y configuración de los servicios en la nube habilitados en la distribución Cloudy. Una interfaz web simple y agradable &amp;lt;ref&amp;gt;Interfaz web de Cloudy: http://redmine.confine-project.eu/projects/getinconf&amp;lt;/ref&amp;gt; está disponible para los usuarios como solución fácil de configuración, administración y monitorización de los servicios ''cloud'' activos en el nodo.&lt;br /&gt;
# '''Software libre''': la distribución está basada en Debian GNU/Linux&amp;lt;ref name=&amp;quot;debian&amp;quot;/&amp;gt;. A parte de ser una de les distribuciones más populars y cumplir con los requisitos técnicos, ha sido elegida ya que el ''Debian Social Contract''&amp;lt;ref&amp;gt;Debian social contract: https://www.debian.org/social_contract&amp;lt;/ref&amp;gt; salvaguarda y garantiza que el software será siempre abierto y libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Requisitos mínimos ==&lt;br /&gt;
&lt;br /&gt;
Al ser una sistema basado en Debian, tiene los mismos requisitos de hardware.&amp;lt;ref&amp;gt;Requisitos mínimos: https://www.debian.org/releases/stable/i386/ch03s04.html.es&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen del sistema Cloudy trae una serie de configuraciones y paquetes adicionales; por lo que hace que sean necesarios alrededor de '''450 MiB de espacio de almacenamiento'''.&lt;br /&gt;
&lt;br /&gt;
De todos modos, es '''recomendable''' contar con '''al menos 1 GiB'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si se quiere utilizar algunos servicios como PeerStreamer (leer más abajo) los requisitos mínimos aumentarán, tanto de espacio como de memoria y procesamiento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conseguir Cloudy ==&lt;br /&gt;
&lt;br /&gt;
Actualmente puedes obtener la distribución Cloudy mediante la descarga de una imagen ISO para grabar en un CD o memoria USB, o de un ''template'' para ejecutar directamente en una máquina virtual (contenedor LXC&amp;lt;ref&amp;gt;Linux containers (LXC): https://linuxcontainers.org/&amp;lt;/ref&amp;gt; o OpenVZ&amp;lt;ref&amp;gt;http://openvz.org&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Alternativamente puedes bajar el codigo y compilarlo tú mismo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Descarga la imagen ===&lt;br /&gt;
&lt;br /&gt;
Ves a la página de Cloudy donde están las imagenes almacenadas:&lt;br /&gt;
&lt;br /&gt;
http://repo.clommunity-project.eu/images/&lt;br /&gt;
&lt;br /&gt;
Actualmente aun está en desarrollo y por tanto '''sólo está disponible la rama ''unstable'''''.&lt;br /&gt;
&lt;br /&gt;
Ahí encontrarás:&lt;br /&gt;
&lt;br /&gt;
* cloudy.README - Relación de paquetes adicionales incluidos en la imagen del sistema.&lt;br /&gt;
* cloudy.container.tar.gz - ''Template'' para crear una VM.&lt;br /&gt;
* cloudy.iso - Imatge ISO&lt;br /&gt;
&lt;br /&gt;
==== Grabar la imagen ISO (Linux) ====&lt;br /&gt;
&lt;br /&gt;
Los archivos ISO son ''live install CD images'', es decir, tienen un sistema de instalación que se ejecuta justo al iniciar la máquina desde el dispositivo (CD/DVD/USB).&lt;br /&gt;
&lt;br /&gt;
Puedes grabarlo en:&lt;br /&gt;
&lt;br /&gt;
* En un CD o DVD:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install xorriso&lt;br /&gt;
 $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed cloudy.iso&lt;br /&gt;
&lt;br /&gt;
* En una memoria USB:&lt;br /&gt;
&lt;br /&gt;
 $ dd if=cloudy.iso of=${USBSTICK}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compilar ===&lt;br /&gt;
&lt;br /&gt;
Para construir o compilar Cloudy se necesitan algunos programas en la máquina para poder descargar el código fuente, generar los binarios, manipular las imágenes ISO, etc.&lt;br /&gt;
&lt;br /&gt;
1. Descargar los paquetes necesarios (ejemple con la herramienta ''apt'' de los sistemas basados en Debian):&lt;br /&gt;
 sudo apt-get install build-essential live-build imagemagick curl debootstrap git unzip &lt;br /&gt;
&lt;br /&gt;
2. Descargar el &amp;quot;constructor&amp;quot; ''LBmake'' (Live-Build Make) para crear la imagen:&lt;br /&gt;
 git clone https://github.com/Clommunity/lbmake&lt;br /&gt;
&lt;br /&gt;
3. Compilar y generar la imagen ISO (y el Linux Container):&lt;br /&gt;
&lt;br /&gt;
* Ir al directorio donde se ha bajado el código de ''LBmake'' y compilar utilizando la herramienta de Linux ''make'':&lt;br /&gt;
 cd lbmake&lt;br /&gt;
 sudo make&lt;br /&gt;
&lt;br /&gt;
4. Una vez generada la imagen puedes probarla virtualizando el sistema con QEMU.&amp;lt;ref&amp;gt;QEMU processor emulator: http://wiki.qemu.org/Main_Page&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Generar una imagen de disco y utilizar la imagen ISO como Live CD para la instalación:&lt;br /&gt;
 qemu-img create -f qcow2 disk.qcow2 4G&lt;br /&gt;
 qemu-system-i386 -enable-kvm -cdrom devel/binary.hybrid.iso -hda disk.qcow2&lt;br /&gt;
&lt;br /&gt;
''NOTA: si tienes una máquina relativamente reciente, añadiendo la opción '-enable-kvm' se aprovecha la virtualitzación por hardware, con lo que aumentará la rápidez/fluidez.''&lt;br /&gt;
&lt;br /&gt;
==== Linux container ====&lt;br /&gt;
&lt;br /&gt;
Opcionalmente, a parte de la imagen ISO se puede crear un ''Linux Container'' con el siguiente comando:&lt;br /&gt;
 sudo make container&lt;br /&gt;
&lt;br /&gt;
''NOTA: antes de generar el contenedor (linux container) primero se tiene que haber creado la imagen ISO. En caso de que no fuera así, el comando anterior generará primero la ISO y después el contenedor.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
Como se explica en la introducción, la distribución Cloudy está basada en Debian GNU/Linux y contenida en una imagen ISO ''live''.&lt;br /&gt;
&lt;br /&gt;
Puedes probar a arrancar el sistema desde el dispositivo externo (CD/DVD/USB), o bien iniciar el proceso de instalación, seleccionando la opción corresponendiente en el menú.&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-boot-install.png|center]]&lt;br /&gt;
&lt;br /&gt;
La instalación es igual que con un Debian estándar &amp;lt;ref&amp;gt;Debian installation procedure: http://www.debian.org/releases/stable/i386/&amp;lt;/ref&amp;gt;, y los pasos se pueden resumir en: &lt;br /&gt;
&lt;br /&gt;
# Escoger la opción ''Install'' en el menú de inicio. (min 0:06)&lt;br /&gt;
# Seleccionar el idioma por defecto de la instalación y del sistema. (min 0:12)&lt;br /&gt;
# Seleccionar tu ubicación. (min 0:16)&lt;br /&gt;
# Seleccionar el mapa de teclado. (min 0:19)&lt;br /&gt;
# Cambiar/asignar el nombre del sistema. (min 1:21)&lt;br /&gt;
# Añadir la contraseña de ''root''. (min 1:37)&lt;br /&gt;
# Crear una nueva cuenta de usuario con contraseña. (min 1:45)&lt;br /&gt;
# Particionar el disco. En el ejemplo se ha utilizado todo el disco con una sola partición. (min 2:02)&lt;br /&gt;
# Configurar el gestor de paquetes, añadiendo una réplica del repositorio de Debian más próximo. (min 3:10)&lt;br /&gt;
# Instalar el cargador (''boot loader'') GRUB en el registro maestro de arranque del disco (''master boot record''). (min 4:34)&lt;br /&gt;
# Finalizar la instalación para reiniciar la máquina e iniciar el nuevo sistema. (min 4:43)&lt;br /&gt;
&lt;br /&gt;
''NOTA: las referencias en paréntesis corresponden al momento aproximado en el ejemplo en video &amp;lt;ref&amp;gt;Cloudy installation: http://videos.guifi.net/guifimedia/2014-05%20Cloudy,%20the%20community%20distro/cloudy-installation.mp4&amp;lt;/ref&amp;gt; del proceso de instalación.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cómo actualizar ==&lt;br /&gt;
&lt;br /&gt;
El sistema de actualización permite comprobar y actualizar los paquetes propios de Cloudy para no tener que reinstalar el sistema ni perder los datos.&lt;br /&gt;
&lt;br /&gt;
En la versión actual, en el menú '''''System &amp;gt; Update''''', se puede comprobar si hay una versión nueva de los paquetes de Cloudy y actualizarlos uno a uno. También está la opción para hacer un ''upgrade'' general del sistema (paquetes de Debian).&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-update.png|center|1024px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Primeros pasos ==&lt;br /&gt;
&lt;br /&gt;
Para acceder al sistema de configuración se hace mediante un navegador web entrando en la '''dirección''' de la máquina servidor en el '''puerto 7000'''.&lt;br /&gt;
 http://DIRECCIÓN_IP:7000&lt;br /&gt;
&lt;br /&gt;
Credenciales:&lt;br /&gt;
* '''Usuario:''' root&lt;br /&gt;
* '''Contraseña:''' root ''(por defecto en el container, y seleccionada durante la instalación con la imagen ISO)''&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-home.png|center|1024px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez dentro podemos ver la página inicial con información general del sistema y un menú superior con diferentes secciones, dividido en dos partes.&lt;br /&gt;
&lt;br /&gt;
1. A la '''izquierda''' tenemos las opciones de configuración y monitorización del '''sistema'''.&lt;br /&gt;
&lt;br /&gt;
* '''Cloudy:''' página de inicio.&lt;br /&gt;
* '''System:''' actualizaciones, configuración de usuario, desconexión.&lt;br /&gt;
* '''Languages:''' selecció de l'idioma.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A la '''derecha''' tenemos las opciones de configuración y gestión de los '''servicios'''.&lt;br /&gt;
* '''Search:''' herramientas para anunciar y buscar servicios en la red. Permite utilizar diferentes programas para ello.&lt;br /&gt;
* '''Clommunity:''' servicios introducidos en el proyecto CLOMMUNITY.&lt;br /&gt;
* '''Guifi.net:''' servicios habitualmente utilizados en la red de Guifi.net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Servicios ===&lt;br /&gt;
&lt;br /&gt;
A continuación podéis ver qué servicios hay acutalmente disponibles en Cloudy para ser configurados fácilmente a través de la interfaz web.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Por hacer: explicación de cada uno de los servicios (puede verse en inglés en la página de Cloudy &amp;lt;ref&amp;gt;Cloudy contents: http://cloudy.community/features/&amp;lt;/ref&amp;gt;&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Clommunity ====&lt;br /&gt;
* Getinconf (gestión del cliente TincVPN)&lt;br /&gt;
* OpenVZ Web Panel (gestión de máquinas virtuales)&lt;br /&gt;
* Peer Streamer (streaming distribuido)&lt;br /&gt;
* Syncthing (sincronización de archivos en red)&lt;br /&gt;
* Tahofe-LAFS (sistema de ficheros distribuido)&lt;br /&gt;
* Webdav server&lt;br /&gt;
&lt;br /&gt;
==== Guifi ====&lt;br /&gt;
* Proxy3 (proxy web)&lt;br /&gt;
[[File:cloudy-guifi-proxy.png|center]]&lt;br /&gt;
&lt;br /&gt;
* SNPServices (monitorización/gráficas)&lt;br /&gt;
[[File:cloudy-guifi-snpservices.png|center]]&lt;br /&gt;
&lt;br /&gt;
* DNSServices (DNS)&lt;br /&gt;
[[File:cloudy-guifi-dnsservices.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enllaces externos ==&lt;br /&gt;
&lt;br /&gt;
* http://cloudy.community&lt;br /&gt;
* http://wiki.clommunity-project.eu/soft:cloudservices&lt;br /&gt;
* http://clommunity-project.eu&lt;br /&gt;
* http://guifi.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Cloudy</id>
		<title>Cloudy</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Cloudy"/>
				<updated>2015-01-26T17:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página redirigida a Categoria:Cloudy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Categoria:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Qu%C3%A9_es_Cloudy</id>
		<title>Qué es Cloudy</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Qu%C3%A9_es_Cloudy"/>
				<updated>2015-01-26T17:02:58Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: Página creada con «100px 100px  Cloudy &amp;lt;ref name=&amp;quot;cloudy&amp;quot;&amp;gt;Cloudy: http://wiki.clommunity-project.eu/soft:cloudservices&amp;lt;/ref&amp;gt; e...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:clommunity-logo.png|right|100px]]&lt;br /&gt;
[[File:Logo_guifi.svg|right|100px]]&lt;br /&gt;
&lt;br /&gt;
Cloudy &amp;lt;ref name=&amp;quot;cloudy&amp;quot;&amp;gt;Cloudy: http://wiki.clommunity-project.eu/soft:cloudservices&amp;lt;/ref&amp;gt; es una distribución basada en Debian GNU/Linux &amp;lt;ref name=&amp;quot;debian&amp;quot;&amp;gt;Debian GNU/Linux: http://debian.org&amp;lt;/ref&amp;gt; desarrollada en el marco del proyecto europeo CLOMMUNITY.&amp;lt;ref name=&amp;quot;clommunity&amp;quot;&amp;gt;CLOMMUNITY project: http://clommunity-project.eu&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta distribución, inspirada en la idea de la antigua [[Guinux]] &amp;lt;ref name=&amp;quot;guinux&amp;quot;&amp;gt;Guinux: http://guifi.net/node/29320&amp;lt;/ref&amp;gt;, facilita el despliegue y la gestión de los servicios de red en la nube ''(cloud services)''&amp;lt;ref name=&amp;quot;cloud-services&amp;quot;&amp;gt;Cloud computing: http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube&amp;lt;/ref&amp;gt;, así como la compartición de estos. Pensada en particular para los usuarios de redes comunitarias.&amp;lt;ref name=&amp;quot;CN&amp;quot;&amp;gt;Redes comunitarias: http://es.wikipedia.org/wiki/Comunidad_inal%C3%A1mbrica&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Antes de la adopción general de servicios en la nube ''(cloud services)''&amp;lt;ref name=&amp;quot;cloud-services&amp;quot;/&amp;gt; los usuarios de redes comunitarias &amp;lt;ref name=&amp;quot;CN&amp;quot;/&amp;gt; ya compartían o proveían servicios y recursos a la comunidad; sin embargo, estos usuarios eran una minoria. Una de las principales razones es la barrera tecnológica. Antes de proveer contenidos, los usuarios que quieren compartir información con la comunidad tienen primero que preocuparse de los aspectos técnicos como el despliegue/montaje de un servidor con un conjunto de servicios.&lt;br /&gt;
&lt;br /&gt;
En el pasado, los usuarios de Guifi.net, intentaron superar este problema publicando una distribución GNU/Linux llamada [[Guinux]] &amp;lt;ref name=&amp;quot;guinux&amp;quot;/&amp;gt;, que daba a los usuarios finales una solución fácil para ofrecer servicios a la comunidad (tales como [[Servidor_Proxy|proxy web]], [[Servidor_DNS|servidor DNS]], [[SNPservices|monitorización y gráficas]]).&lt;br /&gt;
&lt;br /&gt;
La clave principal de [[Guinux]] era un conjunto de ''scripts''&amp;lt;ref&amp;gt;http://es.wikipedia.org/wiki/Script&amp;lt;/ref&amp;gt; que automatitzaban el proceso de configuración. Los usuarios solo tenían que introducir unos pocos parámetros como la dirección de correo electrónico y el identificador del nodo. Enseguida, después de estar disponible la distribución, el número de usuarios compartiendo recursos aumentó considerablemente.&lt;br /&gt;
&lt;br /&gt;
De acuerdo con esto, quedó claro que reduciendo (o eliminando) la barrera d'entrada tecnológica animó a los usuarios a proveer de más servicios y a compartir sus recursos con la comunidad. Para ello, uno de los objetivos principales del proyecto CLOMMUNITY &amp;lt;ref name=&amp;quot;clommunity&amp;quot;/&amp;gt; es publicar una distribución GNU/Linux, llamada Cloudy, dirigida a los usuarios, para fomentar la transición y adopción del entorno Cloud en redes comunitarias ''(Community Network Cloud)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Motivación === &lt;br /&gt;
&lt;br /&gt;
La distribución Cloudy ha sido pensada para satisfacer los siguientes requisitos:&lt;br /&gt;
&lt;br /&gt;
# '''Distribución''': para potenciar la distribución de servicios en las redes comunitarias (CN; community networks) es necesaria una plataforma para publicar y descubrir estos servicios. De este modo, el acceso a los servicios no depende de despliegues estáticos de redes y la estructura es consciente de las condiciones dinámicamente cambiantes de las CN. El software elegido para la publicación y descubrimiento de servicios es Avahi&amp;lt;ref name=&amp;quot;avahi&amp;quot;&amp;gt;Avahi: http://avahi.org&amp;lt;/ref&amp;gt;.&lt;br /&gt;
# '''Descentralitzación''': una capa de red común es necesaria para permitir a todos los nodos de la nube comunicarse entre ellos directamente. Una buena manera de construir esto es creando una &amp;quot;capa 2 de red virtual&amp;quot; basada en un servicio VPN&amp;lt;ref&amp;gt;Red Privada Virtual: http://es.wikipedia.org/wiki/Red_privada_virtual&amp;lt;/ref&amp;gt;. Entre las opciones disponibles, se ha elegido Tinc VPN&amp;lt;ref&amp;gt;Tinc VPN: http://tinc-vpn.org&amp;lt;/ref&amp;gt;, ya que cumple todos los requisitos y es sencillo de configurar y administrar. Para coordinar los dispositivos con Tinc VPN, se ha desarrollado una herramienta para automatizar el despliegue del sistema. Este software, Getinconf&amp;lt;ref&amp;gt;Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md&amp;lt;/ref&amp;gt;, se encarga del proceso de configuración de Tinc VPN y del intercambio de claves con el resto de nodos de la nube.&lt;br /&gt;
# '''Facilidad de uso y experiencia de usuario''': para este objetivo, se ha desarrollado una plataforma web de administración destinada a integrar la instalación y configuración de los servicios en la nube habilitados en la distribución Cloudy. Una interfaz web simple y agradable &amp;lt;ref&amp;gt;Interfaz web de Cloudy: http://redmine.confine-project.eu/projects/getinconf&amp;lt;/ref&amp;gt; está disponible para los usuarios como solución fácil de configuración, administración y monitorización de los servicios ''cloud'' activos en el nodo.&lt;br /&gt;
# '''Software libre''': la distribución está basada en Debian GNU/Linux&amp;lt;ref name=&amp;quot;debian&amp;quot;/&amp;gt;. A parte de ser una de les distribuciones más populars y cumplir con los requisitos técnicos, ha sido elegida ya que el ''Debian Social Contract''&amp;lt;ref&amp;gt;Debian social contract: https://www.debian.org/social_contract&amp;lt;/ref&amp;gt; salvaguarda y garantiza que el software será siempre abierto y libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Requisitos mínimos ==&lt;br /&gt;
&lt;br /&gt;
Al ser una sistema basado en Debian, tiene los mismos requisitos de hardware.&amp;lt;ref&amp;gt;Requisitos mínimos: https://www.debian.org/releases/stable/i386/ch03s04.html.es&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La imagen del sistema Cloudy trae una serie de configuraciones y paquetes adicionales; por lo que hace que sean necesarios alrededor de '''450 MiB de espacio de almacenamiento'''.&lt;br /&gt;
&lt;br /&gt;
De todos modos, es '''recomendable''' contar con '''al menos 1 GiB'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si se quiere utilizar algunos servicios como PeerStreamer (leer más abajo) los requisitos mínimos aumentarán, tanto de espacio como de memoria y procesamiento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conseguir Cloudy ==&lt;br /&gt;
&lt;br /&gt;
Actualmente puedes obtener la distribución Cloudy mediante la descarga de una imagen ISO para grabar en un CD o memoria USB, o de un ''template'' para ejecutar directamente en una máquina virtual (contenedor LXC&amp;lt;ref&amp;gt;Linux containers (LXC): https://linuxcontainers.org/&amp;lt;/ref&amp;gt; o OpenVZ&amp;lt;ref&amp;gt;http://openvz.org&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Alternativamente puedes bajar el codigo y compilarlo tú mismo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Descarga la imagen ===&lt;br /&gt;
&lt;br /&gt;
Ves a la página de Cloudy donde están las imagenes almacenadas:&lt;br /&gt;
&lt;br /&gt;
http://repo.clommunity-project.eu/images/&lt;br /&gt;
&lt;br /&gt;
Actualmente aun está en desarrollo y por tanto '''sólo está disponible la rama ''unstable'''''.&lt;br /&gt;
&lt;br /&gt;
Ahí encontrarás:&lt;br /&gt;
&lt;br /&gt;
* cloudy.README - Relación de paquetes adicionales incluidos en la imagen del sistema.&lt;br /&gt;
* cloudy.container.tar.gz - ''Template'' para crear una VM.&lt;br /&gt;
* cloudy.iso - Imatge ISO&lt;br /&gt;
&lt;br /&gt;
==== Grabar la imagen ISO (Linux) ====&lt;br /&gt;
&lt;br /&gt;
Los archivos ISO son ''live install CD images'', es decir, tienen un sistema de instalación que se ejecuta justo al iniciar la máquina desde el dispositivo (CD/DVD/USB).&lt;br /&gt;
&lt;br /&gt;
Puedes grabarlo en:&lt;br /&gt;
&lt;br /&gt;
* En un CD o DVD:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install xorriso&lt;br /&gt;
 $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed cloudy.iso&lt;br /&gt;
&lt;br /&gt;
* En una memoria USB:&lt;br /&gt;
&lt;br /&gt;
 $ dd if=cloudy.iso of=${USBSTICK}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compilar ===&lt;br /&gt;
&lt;br /&gt;
Para construir o compilar Cloudy se necesitan algunos programas en la máquina para poder descargar el código fuente, generar los binarios, manipular las imágenes ISO, etc.&lt;br /&gt;
&lt;br /&gt;
1. Descargar los paquetes necesarios (ejemple con la herramienta ''apt'' de los sistemas basados en Debian):&lt;br /&gt;
 sudo apt-get install build-essential live-build imagemagick curl debootstrap git unzip &lt;br /&gt;
&lt;br /&gt;
2. Descargar el &amp;quot;constructor&amp;quot; ''LBmake'' (Live-Build Make) para crear la imagen:&lt;br /&gt;
 git clone https://github.com/Clommunity/lbmake&lt;br /&gt;
&lt;br /&gt;
3. Compilar y generar la imagen ISO (y el Linux Container):&lt;br /&gt;
&lt;br /&gt;
* Ir al directorio donde se ha bajado el código de ''LBmake'' y compilar utilizando la herramienta de Linux ''make'':&lt;br /&gt;
 cd lbmake&lt;br /&gt;
 sudo make&lt;br /&gt;
&lt;br /&gt;
4. Una vez generada la imagen puedes probarla virtualizando el sistema con QEMU.&amp;lt;ref&amp;gt;QEMU processor emulator: http://wiki.qemu.org/Main_Page&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Generar una imagen de disco y utilizar la imagen ISO como Live CD para la instalación:&lt;br /&gt;
 qemu-img create -f qcow2 disk.qcow2 4G&lt;br /&gt;
 qemu-system-i386 -enable-kvm -cdrom devel/binary.hybrid.iso -hda disk.qcow2&lt;br /&gt;
&lt;br /&gt;
''NOTA: si tienes una máquina relativamente reciente, añadiendo la opción '-enable-kvm' se aprovecha la virtualitzación por hardware, con lo que aumentará la rápidez/fluidez.''&lt;br /&gt;
&lt;br /&gt;
==== Linux container ====&lt;br /&gt;
&lt;br /&gt;
Opcionalmente, a parte de la imagen ISO se puede crear un ''Linux Container'' con el siguiente comando:&lt;br /&gt;
 sudo make container&lt;br /&gt;
&lt;br /&gt;
''NOTA: antes de generar el contenedor (linux container) primero se tiene que haber creado la imagen ISO. En caso de que no fuera así, el comando anterior generará primero la ISO y después el contenedor.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
Como se explica en la introducción, la distribución Cloudy está basada en Debian GNU/Linux y contenida en una imagen ISO ''live''.&lt;br /&gt;
&lt;br /&gt;
Puedes probar a arrancar el sistema desde el dispositivo externo (CD/DVD/USB), o bien iniciar el proceso de instalación, seleccionando la opción corresponendiente en el menú.&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-boot-install.png|center]]&lt;br /&gt;
&lt;br /&gt;
La instalación es igual que con un Debian estándar &amp;lt;ref&amp;gt;Debian installation procedure: http://www.debian.org/releases/stable/i386/&amp;lt;/ref&amp;gt;, y los pasos se pueden resumir en: &lt;br /&gt;
&lt;br /&gt;
# Escoger la opción ''Install'' en el menú de inicio. (min 0:06)&lt;br /&gt;
# Seleccionar el idioma por defecto de la instalación y del sistema. (min 0:12)&lt;br /&gt;
# Seleccionar tu ubicación. (min 0:16)&lt;br /&gt;
# Seleccionar el mapa de teclado. (min 0:19)&lt;br /&gt;
# Cambiar/asignar el nombre del sistema. (min 1:21)&lt;br /&gt;
# Añadir la contraseña de ''root''. (min 1:37)&lt;br /&gt;
# Crear una nueva cuenta de usuario con contraseña. (min 1:45)&lt;br /&gt;
# Particionar el disco. En el ejemplo se ha utilizado todo el disco con una sola partición. (min 2:02)&lt;br /&gt;
# Configurar el gestor de paquetes, añadiendo una réplica del repositorio de Debian más próximo. (min 3:10)&lt;br /&gt;
# Instalar el cargador (''boot loader'') GRUB en el registro maestro de arranque del disco (''master boot record''). (min 4:34)&lt;br /&gt;
# Finalizar la instalación para reiniciar la máquina e iniciar el nuevo sistema. (min 4:43)&lt;br /&gt;
&lt;br /&gt;
''NOTA: las referencias en paréntesis corresponden al momento aproximado en el ejemplo en video &amp;lt;ref&amp;gt;Cloudy installation: http://videos.guifi.net/guifimedia/2014-05%20Cloudy,%20the%20community%20distro/cloudy-installation.mp4&amp;lt;/ref&amp;gt; del proceso de instalación.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cómo actualizar ==&lt;br /&gt;
&lt;br /&gt;
El sistema de actualización permite comprobar y actualizar los paquetes propios de Cloudy para no tener que reinstalar el sistema ni perder los datos.&lt;br /&gt;
&lt;br /&gt;
En la versión actual, en el menú '''''System &amp;gt; Update''''', se puede comprobar si hay una versión nueva de los paquetes de Cloudy y actualizarlos uno a uno. También está la opción para hacer un ''upgrade'' general del sistema (paquetes de Debian).&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-update.png|center|1024px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Primeros pasos ==&lt;br /&gt;
&lt;br /&gt;
Para acceder al sistema de configuración se hace mediante un navegador web entrando en la '''dirección''' de la máquina servidor en el '''puerto 7000'''.&lt;br /&gt;
 http://DIRECCIÓN_IP:7000&lt;br /&gt;
&lt;br /&gt;
Credenciales:&lt;br /&gt;
* '''Usuario:''' root&lt;br /&gt;
* '''Contraseña:''' root ''(por defecto en el container, y seleccionada durante la instalación con la imagen ISO)''&lt;br /&gt;
&lt;br /&gt;
[[File:cloudy-home.png|center|1024px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez dentro podemos ver la página inicial con información general del sistema y un menú superior con diferentes secciones, dividido en dos partes.&lt;br /&gt;
&lt;br /&gt;
1. A la '''izquierda''' tenemos las opciones de configuración y monitorización del '''sistema'''.&lt;br /&gt;
&lt;br /&gt;
* '''Cloudy:''' página de inicio.&lt;br /&gt;
* '''System:''' actualizaciones, configuración de usuario, desconexión.&lt;br /&gt;
* '''Languages:''' selecció de l'idioma.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. A la '''derecha''' tenemos las opciones de configuración y gestión de los '''servicios'''.&lt;br /&gt;
* '''Search:''' herramientas para anunciar y buscar servicios en la red. Permite utilizar diferentes programas para ello.&lt;br /&gt;
* '''Clommunity:''' servicios introducidos en el proyecto CLOMMUNITY.&lt;br /&gt;
* '''Guifi.net:''' servicios habitualmente utilizados en la red de Guifi.net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Servicios ===&lt;br /&gt;
&lt;br /&gt;
A continuación podéis ver qué servicios hay acutalmente disponibles en Cloudy para ser configurados fácilmente a través de la interfaz web.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Por hacer: explicación de cada uno de los servicios (puede verse en inglés en la página de Cloudy &amp;lt;ref&amp;gt;Cloudy contents: http://cloudy.community/features/&amp;lt;/ref&amp;gt;&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Clommunity ====&lt;br /&gt;
* Getinconf (gestión del cliente TincVPN)&lt;br /&gt;
* OpenVZ Web Panel (gestión de máquinas virtuales)&lt;br /&gt;
* Peer Streamer (streaming distribuido)&lt;br /&gt;
* Syncthing (sincronización de archivos en red)&lt;br /&gt;
* Tahofe-LAFS (sistema de ficheros distribuido)&lt;br /&gt;
* Webdav server&lt;br /&gt;
&lt;br /&gt;
==== Guifi ====&lt;br /&gt;
* Proxy3 (proxy web)&lt;br /&gt;
[[File:cloudy-guifi-proxy.png|center]]&lt;br /&gt;
&lt;br /&gt;
* SNPServices (monitorización/gráficas)&lt;br /&gt;
[[File:cloudy-guifi-snpservices.png|center]]&lt;br /&gt;
&lt;br /&gt;
* DNSServices (DNS)&lt;br /&gt;
[[File:cloudy-guifi-dnsservices.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enllaces externos ==&lt;br /&gt;
&lt;br /&gt;
* http://cloudy.community&lt;br /&gt;
* http://wiki.clommunity-project.eu/soft:cloudservices&lt;br /&gt;
* http://clommunity-project.eu&lt;br /&gt;
* http://guifi.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Cloudy]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Portada</id>
		<title>Portada</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Portada"/>
				<updated>2014-06-25T14:12:33Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: /* Mesh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
{| style=&amp;quot;background:#f6f6f6; border:1px solid #C7D0F8; font-size:107%; -moz-border-radius:1em; -webkit-border-radius:1em;border-radius:1em;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; style=&amp;quot;padding:12px 17px 5px 17px&amp;quot; |&lt;br /&gt;
'''Guifi.net''' es de todos, participa [[conectar|conectando]] tu [[tramo de la red]] con la de los demás.&lt;br /&gt;
&lt;br /&gt;
Es un proyecto colaborativo [[organización horizontal|organizado horizontalmente]] que agrupa tanto a personas individuales como a colectivos, empresas y administraciones.&lt;br /&gt;
&lt;br /&gt;
Es abierto, por lo que todo el mundo puede participar en igualdad de condiciones, en el marco de [http://guifi.net/es/ProcomunXOLN Procomún de la Red Abierta, Libre y Neutral]&lt;br /&gt;
&amp;lt;div style=&amp;quot; text-align: right&amp;quot;&amp;gt;[[Guifi.net|Más sobre Guifi.net]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width:100%; background:#f6f6f6&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#f6f6f6; text-align: right; width 30%&amp;quot; |&amp;lt;div style=&amp;quot;width: 400px; margin: 0 auto; background-color: #fcfcfc; border: 1px solid #ccc; border-bottom: 5px groove #999999; border-right:5px groove #999999; text-align: center; padding: 0.4em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 162%; padding: 0.1em;&amp;quot;&amp;gt;Bienvenid@ al wiki de '''Guifi.net'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 95%;&amp;quot;&amp;gt;Documentación sobre la red abierta, libre y neutral.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;En estos momentos tenemos [[Especial:Estadísticas|{{NUMBEROFARTICLES}}]] [[Especial:Todas|artículos]] en español.&lt;br /&gt;
[[Especial:PáginasRequeridas|Escribir una página requerida]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;background:#f6f6f6; width:100%;&amp;quot;&lt;br /&gt;
|''La documentación de guifi.net contiene los documentos de referencia para usuarios nuevos, experimentados y desarrolladores. Sé libre [[Qué es un wiki|de editar esta wiki]] para mejorar su contenido.''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div style=&amp;quot; text-align: center&amp;quot;&amp;gt;Contacta: [http://guifi.net/es/forum/231 Foros] '''|''' [http://lists.guifi.net Listas de correo] '''|''' [http://irc.guifi.net/?channels=guifi Chat]&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;mp-upper&amp;quot; style=&amp;quot;width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; background:#FFFFE0; border:1px solid #EECFA1; padding:10px; margin-bottom:7px; vertical-align:top; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-tfa&amp;quot;&amp;gt;&amp;lt;!--Selector per a [[meta:Mobile]]--&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-left&amp;quot; style=&amp;quot;vertical-align:top; background:#FFFFE0; border-spacing: 0px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#FFDEAD; border:1px solid #EECFA1; border-right:0px; padding:0px; font-size:150%; vertical-align:middle; font-weight:normal; width:100%;&amp;quot; | Cómo conectarse a Guifi.net&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-left:0px; padding:0px; vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;color:#000; background:#FFFFE0; padding:15px 5px&amp;quot; | &amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[tres pasos|Cómo dar de alta y enlazar un nodo]]&lt;br /&gt;
* [[Elige el material]]&lt;br /&gt;
* [[Configura tu ordenador]]&lt;br /&gt;
* [[Buenas Prácticas|Código de buenas prácticas]]&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1px solid transparent;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:50%;background:#f5fffa;border:1px solid #99CC33;padding:10px;margin-bottom:7px; vertical-align:top;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em; &amp;quot; | &lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-left&amp;quot; style=&amp;quot;vertical-align:top; background:#f5fffa; border-spacing: 0px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-right:0px; padding:0px; font-size:150%; vertical-align:middle; font-weight:normal; width:100%;&amp;quot; | Supernodos e islas&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-left:0px; padding:0px; vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;color:#000; background:#f5fffa; padding:15px 5px&amp;quot; |&amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Empezar una isla desde 0|Comenzar una isla desde cero]]&lt;br /&gt;
* [[Crear un supernodo]]&lt;br /&gt;
* [[Buenas Prácticas|Código de buenas prácticas]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;mp-upper&amp;quot; style=&amp;quot;width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; style=&amp;quot;background:#f5faff;border:1px solid #cedff2;padding:10px;margin-bottom:7px; vertical-align:top;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em; &amp;quot; | &lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-dyk&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
== [[Legal]] ==&lt;br /&gt;
* [[Ayuntamientos]] / [[Anexo:Guifi.net en Ayuntamientos]]&lt;br /&gt;
* [[Associación|Constitución de una asociación]]&lt;br /&gt;
* [[Legislaciones|Legislaciones Países]]&lt;br /&gt;
* [[FAQ_Legal|FAQ]]&lt;br /&gt;
* [[Comunicación_comunidad|Cómo realizar la comunicación de instalación de nodo guifi.net a la Comunidad de Vecinos]]&lt;br /&gt;
&lt;br /&gt;
== Red ==&lt;br /&gt;
=== Los básicos en la web ===&lt;br /&gt;
* [[Zona|Crear y modificar una zona]]&lt;br /&gt;
* [[Añadir_un_nodo_de_guifi.net|Añadir un nodo de guifi.net]]&lt;br /&gt;
* [[Servicios|Crear servicios y vincularlos en los servidores]]&lt;br /&gt;
* [[Herramientas|Herramientas (localización de IPs y MACs, estadísticas, mapas de enrutamiento, etc.)]]&lt;br /&gt;
&lt;br /&gt;
=== Infraestructura ===&lt;br /&gt;
* [[Crear_un_supernodo|Montaje de supernodos]]&lt;br /&gt;
* [[Filtros de red]]&lt;br /&gt;
* [[Enlaces virtuales]]&lt;br /&gt;
* [[Herramienta para buscar rangos de IPs libres]]&lt;br /&gt;
* [[Nanostations: Modificando configuración por consola]]&lt;br /&gt;
* [[Configuración de antena TP-LINK TL-WA7510N]]&lt;br /&gt;
&lt;br /&gt;
=== Mesh ===&lt;br /&gt;
* [[Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net#Crear_una_nube_Mesh|Crear una nube Mesh en Guifi.net]]&lt;br /&gt;
* [[Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net#Conectarse_a_una_red_Mesh|Conectarse a una nube Mesh de Guifi.net]]&lt;br /&gt;
* [[:ca:Annex:subxarxes_mesh|Listado de redes Mesh (catalán)]]&lt;br /&gt;
* [[Quick_Mesh_Project|Quick Mesh Project (qMp)]]&lt;br /&gt;
* [[Alix+GSF|ALIX + Conectarse a la nube de gracia con mesh]]&lt;br /&gt;
* [[Mesh|Otros artículos sobre Mesh]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamientos y conceptos de redes ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Enrutamientos]]&lt;br /&gt;
* [[Peerings]]&lt;br /&gt;
* [[IPv4]]&lt;br /&gt;
* [[IPv6]]&lt;br /&gt;
* [[Criterios de asignación de direcciones IPv4]]&lt;br /&gt;
* [[ARP]]&lt;br /&gt;
* [[Cables_UTP|Cables UTP]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Cómo se vertebra la red: Troncal, puntos de acceso y conexiones simples]]&lt;br /&gt;
* [[La seguridad en la red abierta]]&lt;br /&gt;
* [[Aplicaciones | Aplicaciones de guifi.net]]&lt;br /&gt;
* [[Recursos externos]]&lt;br /&gt;
* [[Instalar firmware Ubiquiti Rocket M5]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Sistemas ==&lt;br /&gt;
* [[Distribución guinux]]&lt;br /&gt;
* [[Servidor compacto con una routerstation]]&lt;br /&gt;
* [[Comtrend_hg536%2B]] Reciclar router de Jazztel o telefónica como router neutro con OpenWRT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Servicios básicos ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Configurar Repositorio APT guifi]]&lt;br /&gt;
* [[Servidor Proxy]]&lt;br /&gt;
* [[Squid autentificándose contra squid]]&lt;br /&gt;
* [[Servidor de gráficas]]&lt;br /&gt;
* [[SNPservices]]&lt;br /&gt;
* [[Servidor DNS]]&lt;br /&gt;
* [[Servidor Reloj|Servidor de Reloj (NTP)]]&lt;br /&gt;
* [[Configurar red]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de compartición de ficheros ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Servidor FTP]]&lt;br /&gt;
* [[Servidor Peer 2 Peer]]&lt;br /&gt;
* [[Servidor DCC]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de mensajería ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Servidor de Correo]]&lt;br /&gt;
* [[Webmail]]&lt;br /&gt;
* [[Servidor Jabber]]&lt;br /&gt;
* [[Servidor IRC]]&lt;br /&gt;
* [[Mailman]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de Voz y Vídeo ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[VoIP|Servidor de VeuIP (VoIP)]]&lt;br /&gt;
* [[Servidor Radio Streaming]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Otros Servicios ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[LDAP|Servidor LDAP]]&lt;br /&gt;
* [[Apache|Servidor web Apache]]&lt;br /&gt;
* [[Servidor Repositorio Linux]]&lt;br /&gt;
* [[Servidor Repositorio Linux (Cache)]]&lt;br /&gt;
* [[Servidor Iperf]]&lt;br /&gt;
* [[Servidor repositorio subversion]]&lt;br /&gt;
* [[DHCP|Servidor DHCP]]&lt;br /&gt;
* [[MySQL]] (Bases de Datos)&lt;br /&gt;
* [[Proxmox]] (virtualitzación)&lt;br /&gt;
* [[Cacti]] (monitorización)&lt;br /&gt;
* [[Clamav]] (antivirus con GNU/Linux)&lt;br /&gt;
* [[Trac]] (sistema de gestión de tiquets)&lt;br /&gt;
* [[Monitor]] (Monitorización de la red distribuida)&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Sistema ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[ACPI]]&lt;br /&gt;
* [[Bridges_con_Linux|Bridges con GNU/Linux]]&lt;br /&gt;
* [[Chroot]]&lt;br /&gt;
* [[Corkscrew]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Estandares de transmisión de datos y organizaciones colaboradoras ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [http://es.wikipedia.org/wiki/IEEE_802.11 IEEE 802.11]&lt;br /&gt;
* [http://es.wikipedia.org/wiki/Multimedia_over_Coax_Alliance Multimedia over Coax Alliance]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/HomePNA HomePNA]&lt;br /&gt;
* [[Aprovechar el cable de antena de televisión]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== [[Instaladores]] ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Pararrayos]]&lt;br /&gt;
* [[Aprovechar el cable de antena de televisión]]&lt;br /&gt;
* [[Presupuestos]]&lt;br /&gt;
* [http://guifi.net/ca/node/12486 Comunidad de vecinos, caso de ejemplo]&lt;br /&gt;
* [[Reinicio remoto de nodos]]&lt;br /&gt;
* [[Campanarios]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Desarrolladores ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Preparando el entorno de desarrollo]]&lt;br /&gt;
* [[Manual editor wiki]]&lt;br /&gt;
* [http://wiki.guifi.net/wiki/Trac Trac de Guifi.net]&lt;br /&gt;
* [[Actualizaciones módulos drupal]]&lt;br /&gt;
* [[Mapas de nodos en la web]]&lt;br /&gt;
* [http://gitorious.org/guifi Repositorios del código del proyecto guifi.net]&lt;br /&gt;
* [[Mapa del código]]&lt;br /&gt;
* [[API de Guifi]]&lt;br /&gt;
* [[CNML]]&lt;br /&gt;
* [[Empotrar_mapa_de_guifi|Empotrar el mapa de Guifi-Google Maps en una web]]&lt;br /&gt;
* [[Unsóloclic]]&lt;br /&gt;
* [[:Categoría:router|Routers]]&lt;br /&gt;
* [[:Categoría:Telefonía móvil|Telefonía móvil sobre guifi.net]]&lt;br /&gt;
* [[Guifi.net Studio]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Diseñadores ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Logos]]&lt;br /&gt;
* [[Maquetación de las distintas páginas web]]&lt;br /&gt;
* [[Usabilidad]]&lt;br /&gt;
* [[Presentaciones de guifi.net]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Desarrollo colectivo de la red ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Cursos]]&lt;br /&gt;
* [[Necesidades]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Glosario ==&lt;br /&gt;
{{Acontecimientos}}&lt;br /&gt;
&lt;br /&gt;
* [[Términos usados habitualmente]]&lt;br /&gt;
* [[Guia Rápida de Guifi.net]]&lt;br /&gt;
* [[Preguntas Frecuentes]]&lt;br /&gt;
* [http://guifi.net/es/ESDocs Documentos basados en la web de guifi.net] antigua &amp;quot;ComEsFa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Accesos Rápidos =&lt;br /&gt;
* [http://planet.guifi.net Planet]&lt;br /&gt;
* [http://guifi.net/es/ProcomunXOLN Procomún XOLN (Licencia de la red)]&lt;br /&gt;
* [http://guifi.net/es/maps Mapa guifi]&lt;br /&gt;
* [http://guifi.net/es/grups Webs Regionales]&lt;br /&gt;
* [http://trac.guifi.net Reporta Errores de la web]&lt;br /&gt;
* [http://fundacio.guifi.net Fundación]&lt;br /&gt;
* [http://lists.guifi.net Listas de Correo]&lt;br /&gt;
&lt;br /&gt;
[[ca:Portada]]&lt;br /&gt;
[[en:Main Page]]&lt;br /&gt;
[[eu:Azala]]&lt;br /&gt;
[[fr:Accueil]]&lt;br /&gt;
[[gl:Portada]]&lt;br /&gt;
[[pt:Página principal]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Portada</id>
		<title>Portada</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Portada"/>
				<updated>2014-06-25T14:06:12Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: /* Mesh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
{| style=&amp;quot;background:#f6f6f6; border:1px solid #C7D0F8; font-size:107%; -moz-border-radius:1em; -webkit-border-radius:1em;border-radius:1em;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; style=&amp;quot;padding:12px 17px 5px 17px&amp;quot; |&lt;br /&gt;
'''Guifi.net''' es de todos, participa [[conectar|conectando]] tu [[tramo de la red]] con la de los demás.&lt;br /&gt;
&lt;br /&gt;
Es un proyecto colaborativo [[organización horizontal|organizado horizontalmente]] que agrupa tanto a personas individuales como a colectivos, empresas y administraciones.&lt;br /&gt;
&lt;br /&gt;
Es abierto, por lo que todo el mundo puede participar en igualdad de condiciones, en el marco de [http://guifi.net/es/ProcomunXOLN Procomún de la Red Abierta, Libre y Neutral]&lt;br /&gt;
&amp;lt;div style=&amp;quot; text-align: right&amp;quot;&amp;gt;[[Guifi.net|Más sobre Guifi.net]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width:100%; background:#f6f6f6&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#f6f6f6; text-align: right; width 30%&amp;quot; |&amp;lt;div style=&amp;quot;width: 400px; margin: 0 auto; background-color: #fcfcfc; border: 1px solid #ccc; border-bottom: 5px groove #999999; border-right:5px groove #999999; text-align: center; padding: 0.4em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 162%; padding: 0.1em;&amp;quot;&amp;gt;Bienvenid@ al wiki de '''Guifi.net'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 95%;&amp;quot;&amp;gt;Documentación sobre la red abierta, libre y neutral.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;En estos momentos tenemos [[Especial:Estadísticas|{{NUMBEROFARTICLES}}]] [[Especial:Todas|artículos]] en español.&lt;br /&gt;
[[Especial:PáginasRequeridas|Escribir una página requerida]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;background:#f6f6f6; width:100%;&amp;quot;&lt;br /&gt;
|''La documentación de guifi.net contiene los documentos de referencia para usuarios nuevos, experimentados y desarrolladores. Sé libre [[Qué es un wiki|de editar esta wiki]] para mejorar su contenido.''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div style=&amp;quot; text-align: center&amp;quot;&amp;gt;Contacta: [http://guifi.net/es/forum/231 Foros] '''|''' [http://lists.guifi.net Listas de correo] '''|''' [http://irc.guifi.net/?channels=guifi Chat]&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;mp-upper&amp;quot; style=&amp;quot;width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; background:#FFFFE0; border:1px solid #EECFA1; padding:10px; margin-bottom:7px; vertical-align:top; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-tfa&amp;quot;&amp;gt;&amp;lt;!--Selector per a [[meta:Mobile]]--&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-left&amp;quot; style=&amp;quot;vertical-align:top; background:#FFFFE0; border-spacing: 0px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#FFDEAD; border:1px solid #EECFA1; border-right:0px; padding:0px; font-size:150%; vertical-align:middle; font-weight:normal; width:100%;&amp;quot; | Cómo conectarse a Guifi.net&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-left:0px; padding:0px; vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;color:#000; background:#FFFFE0; padding:15px 5px&amp;quot; | &amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[tres pasos|Cómo dar de alta y enlazar un nodo]]&lt;br /&gt;
* [[Elige el material]]&lt;br /&gt;
* [[Configura tu ordenador]]&lt;br /&gt;
* [[Buenas Prácticas|Código de buenas prácticas]]&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1px solid transparent;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:50%;background:#f5fffa;border:1px solid #99CC33;padding:10px;margin-bottom:7px; vertical-align:top;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em; &amp;quot; | &lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-left&amp;quot; style=&amp;quot;vertical-align:top; background:#f5fffa; border-spacing: 0px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-right:0px; padding:0px; font-size:150%; vertical-align:middle; font-weight:normal; width:100%;&amp;quot; | Supernodos e islas&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-left:0px; padding:0px; vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;color:#000; background:#f5fffa; padding:15px 5px&amp;quot; |&amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Empezar una isla desde 0|Comenzar una isla desde cero]]&lt;br /&gt;
* [[Crear un supernodo]]&lt;br /&gt;
* [[Buenas Prácticas|Código de buenas prácticas]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;mp-upper&amp;quot; style=&amp;quot;width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; style=&amp;quot;background:#f5faff;border:1px solid #cedff2;padding:10px;margin-bottom:7px; vertical-align:top;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em; &amp;quot; | &lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-dyk&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
== [[Legal]] ==&lt;br /&gt;
* [[Ayuntamientos]] / [[Anexo:Guifi.net en Ayuntamientos]]&lt;br /&gt;
* [[Associación|Constitución de una asociación]]&lt;br /&gt;
* [[Legislaciones|Legislaciones Países]]&lt;br /&gt;
* [[FAQ_Legal|FAQ]]&lt;br /&gt;
* [[Comunicación_comunidad|Cómo realizar la comunicación de instalación de nodo guifi.net a la Comunidad de Vecinos]]&lt;br /&gt;
&lt;br /&gt;
== Red ==&lt;br /&gt;
=== Los básicos en la web ===&lt;br /&gt;
* [[Zona|Crear y modificar una zona]]&lt;br /&gt;
* [[Añadir_un_nodo_de_guifi.net|Añadir un nodo de guifi.net]]&lt;br /&gt;
* [[Servicios|Crear servicios y vincularlos en los servidores]]&lt;br /&gt;
* [[Herramientas|Herramientas (localización de IPs y MACs, estadísticas, mapas de enrutamiento, etc.)]]&lt;br /&gt;
&lt;br /&gt;
=== Infraestructura ===&lt;br /&gt;
* [[Crear_un_supernodo|Montaje de supernodos]]&lt;br /&gt;
* [[Filtros de red]]&lt;br /&gt;
* [[Enlaces virtuales]]&lt;br /&gt;
* [[Herramienta para buscar rangos de IPs libres]]&lt;br /&gt;
* [[Nanostations: Modificando configuración por consola]]&lt;br /&gt;
* [[Configuración de antena TP-LINK TL-WA7510N]]&lt;br /&gt;
&lt;br /&gt;
=== Mesh ===&lt;br /&gt;
* [[Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net#Crear_una_nube_Mesh|Crear una nube Mesh en Guifi.net]]&lt;br /&gt;
* [[Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net#Conectarse_a_una_red_Mesh|Conectarse a una nube Mesh de Guifi.net]]&lt;br /&gt;
* [[Quick_Mesh_Project|Quick Mesh Project (qMp)]]&lt;br /&gt;
* [[Alix+GSF|ALIX + Conectarse a la nube de gracia con mesh]]&lt;br /&gt;
* [[Mesh|Otros artículos sobre Mesh]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamientos y conceptos de redes ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Enrutamientos]]&lt;br /&gt;
* [[Peerings]]&lt;br /&gt;
* [[IPv4]]&lt;br /&gt;
* [[IPv6]]&lt;br /&gt;
* [[Criterios de asignación de direcciones IPv4]]&lt;br /&gt;
* [[ARP]]&lt;br /&gt;
* [[Cables_UTP|Cables UTP]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Cómo se vertebra la red: Troncal, puntos de acceso y conexiones simples]]&lt;br /&gt;
* [[La seguridad en la red abierta]]&lt;br /&gt;
* [[Aplicaciones | Aplicaciones de guifi.net]]&lt;br /&gt;
* [[Recursos externos]]&lt;br /&gt;
* [[Instalar firmware Ubiquiti Rocket M5]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Sistemas ==&lt;br /&gt;
* [[Distribución guinux]]&lt;br /&gt;
* [[Servidor compacto con una routerstation]]&lt;br /&gt;
* [[Comtrend_hg536%2B]] Reciclar router de Jazztel o telefónica como router neutro con OpenWRT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Servicios básicos ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Configurar Repositorio APT guifi]]&lt;br /&gt;
* [[Servidor Proxy]]&lt;br /&gt;
* [[Squid autentificándose contra squid]]&lt;br /&gt;
* [[Servidor de gráficas]]&lt;br /&gt;
* [[SNPservices]]&lt;br /&gt;
* [[Servidor DNS]]&lt;br /&gt;
* [[Servidor Reloj|Servidor de Reloj (NTP)]]&lt;br /&gt;
* [[Configurar red]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de compartición de ficheros ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Servidor FTP]]&lt;br /&gt;
* [[Servidor Peer 2 Peer]]&lt;br /&gt;
* [[Servidor DCC]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de mensajería ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Servidor de Correo]]&lt;br /&gt;
* [[Webmail]]&lt;br /&gt;
* [[Servidor Jabber]]&lt;br /&gt;
* [[Servidor IRC]]&lt;br /&gt;
* [[Mailman]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de Voz y Vídeo ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[VoIP|Servidor de VeuIP (VoIP)]]&lt;br /&gt;
* [[Servidor Radio Streaming]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Otros Servicios ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[LDAP|Servidor LDAP]]&lt;br /&gt;
* [[Apache|Servidor web Apache]]&lt;br /&gt;
* [[Servidor Repositorio Linux]]&lt;br /&gt;
* [[Servidor Repositorio Linux (Cache)]]&lt;br /&gt;
* [[Servidor Iperf]]&lt;br /&gt;
* [[Servidor repositorio subversion]]&lt;br /&gt;
* [[DHCP|Servidor DHCP]]&lt;br /&gt;
* [[MySQL]] (Bases de Datos)&lt;br /&gt;
* [[Proxmox]] (virtualitzación)&lt;br /&gt;
* [[Cacti]] (monitorización)&lt;br /&gt;
* [[Clamav]] (antivirus con GNU/Linux)&lt;br /&gt;
* [[Trac]] (sistema de gestión de tiquets)&lt;br /&gt;
* [[Monitor]] (Monitorización de la red distribuida)&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Sistema ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[ACPI]]&lt;br /&gt;
* [[Bridges_con_Linux|Bridges con GNU/Linux]]&lt;br /&gt;
* [[Chroot]]&lt;br /&gt;
* [[Corkscrew]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Estandares de transmisión de datos y organizaciones colaboradoras ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [http://es.wikipedia.org/wiki/IEEE_802.11 IEEE 802.11]&lt;br /&gt;
* [http://es.wikipedia.org/wiki/Multimedia_over_Coax_Alliance Multimedia over Coax Alliance]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/HomePNA HomePNA]&lt;br /&gt;
* [[Aprovechar el cable de antena de televisión]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== [[Instaladores]] ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Pararrayos]]&lt;br /&gt;
* [[Aprovechar el cable de antena de televisión]]&lt;br /&gt;
* [[Presupuestos]]&lt;br /&gt;
* [http://guifi.net/ca/node/12486 Comunidad de vecinos, caso de ejemplo]&lt;br /&gt;
* [[Reinicio remoto de nodos]]&lt;br /&gt;
* [[Campanarios]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Desarrolladores ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Preparando el entorno de desarrollo]]&lt;br /&gt;
* [[Manual editor wiki]]&lt;br /&gt;
* [http://wiki.guifi.net/wiki/Trac Trac de Guifi.net]&lt;br /&gt;
* [[Actualizaciones módulos drupal]]&lt;br /&gt;
* [[Mapas de nodos en la web]]&lt;br /&gt;
* [http://gitorious.org/guifi Repositorios del código del proyecto guifi.net]&lt;br /&gt;
* [[Mapa del código]]&lt;br /&gt;
* [[API de Guifi]]&lt;br /&gt;
* [[CNML]]&lt;br /&gt;
* [[Empotrar_mapa_de_guifi|Empotrar el mapa de Guifi-Google Maps en una web]]&lt;br /&gt;
* [[Unsóloclic]]&lt;br /&gt;
* [[:Categoría:router|Routers]]&lt;br /&gt;
* [[:Categoría:Telefonía móvil|Telefonía móvil sobre guifi.net]]&lt;br /&gt;
* [[Guifi.net Studio]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Diseñadores ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Logos]]&lt;br /&gt;
* [[Maquetación de las distintas páginas web]]&lt;br /&gt;
* [[Usabilidad]]&lt;br /&gt;
* [[Presentaciones de guifi.net]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Desarrollo colectivo de la red ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Cursos]]&lt;br /&gt;
* [[Necesidades]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Glosario ==&lt;br /&gt;
{{Acontecimientos}}&lt;br /&gt;
&lt;br /&gt;
* [[Términos usados habitualmente]]&lt;br /&gt;
* [[Guia Rápida de Guifi.net]]&lt;br /&gt;
* [[Preguntas Frecuentes]]&lt;br /&gt;
* [http://guifi.net/es/ESDocs Documentos basados en la web de guifi.net] antigua &amp;quot;ComEsFa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Accesos Rápidos =&lt;br /&gt;
* [http://planet.guifi.net Planet]&lt;br /&gt;
* [http://guifi.net/es/ProcomunXOLN Procomún XOLN (Licencia de la red)]&lt;br /&gt;
* [http://guifi.net/es/maps Mapa guifi]&lt;br /&gt;
* [http://guifi.net/es/grups Webs Regionales]&lt;br /&gt;
* [http://trac.guifi.net Reporta Errores de la web]&lt;br /&gt;
* [http://fundacio.guifi.net Fundación]&lt;br /&gt;
* [http://lists.guifi.net Listas de Correo]&lt;br /&gt;
&lt;br /&gt;
[[ca:Portada]]&lt;br /&gt;
[[en:Main Page]]&lt;br /&gt;
[[eu:Azala]]&lt;br /&gt;
[[fr:Accueil]]&lt;br /&gt;
[[gl:Portada]]&lt;br /&gt;
[[pt:Página principal]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Portada</id>
		<title>Portada</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Portada"/>
				<updated>2014-06-25T14:02:49Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: /* Mesh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
{| style=&amp;quot;background:#f6f6f6; border:1px solid #C7D0F8; font-size:107%; -moz-border-radius:1em; -webkit-border-radius:1em;border-radius:1em;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; style=&amp;quot;padding:12px 17px 5px 17px&amp;quot; |&lt;br /&gt;
'''Guifi.net''' es de todos, participa [[conectar|conectando]] tu [[tramo de la red]] con la de los demás.&lt;br /&gt;
&lt;br /&gt;
Es un proyecto colaborativo [[organización horizontal|organizado horizontalmente]] que agrupa tanto a personas individuales como a colectivos, empresas y administraciones.&lt;br /&gt;
&lt;br /&gt;
Es abierto, por lo que todo el mundo puede participar en igualdad de condiciones, en el marco de [http://guifi.net/es/ProcomunXOLN Procomún de la Red Abierta, Libre y Neutral]&lt;br /&gt;
&amp;lt;div style=&amp;quot; text-align: right&amp;quot;&amp;gt;[[Guifi.net|Más sobre Guifi.net]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width:100%; background:#f6f6f6&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:#f6f6f6; text-align: right; width 30%&amp;quot; |&amp;lt;div style=&amp;quot;width: 400px; margin: 0 auto; background-color: #fcfcfc; border: 1px solid #ccc; border-bottom: 5px groove #999999; border-right:5px groove #999999; text-align: center; padding: 0.4em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 162%; padding: 0.1em;&amp;quot;&amp;gt;Bienvenid@ al wiki de '''Guifi.net'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 95%;&amp;quot;&amp;gt;Documentación sobre la red abierta, libre y neutral.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;En estos momentos tenemos [[Especial:Estadísticas|{{NUMBEROFARTICLES}}]] [[Especial:Todas|artículos]] en español.&lt;br /&gt;
[[Especial:PáginasRequeridas|Escribir una página requerida]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;background:#f6f6f6; width:100%;&amp;quot;&lt;br /&gt;
|''La documentación de guifi.net contiene los documentos de referencia para usuarios nuevos, experimentados y desarrolladores. Sé libre [[Qué es un wiki|de editar esta wiki]] para mejorar su contenido.''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div style=&amp;quot; text-align: center&amp;quot;&amp;gt;Contacta: [http://guifi.net/es/forum/231 Foros] '''|''' [http://lists.guifi.net Listas de correo] '''|''' [http://irc.guifi.net/?channels=guifi Chat]&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;mp-upper&amp;quot; style=&amp;quot;width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; background:#FFFFE0; border:1px solid #EECFA1; padding:10px; margin-bottom:7px; vertical-align:top; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-tfa&amp;quot;&amp;gt;&amp;lt;!--Selector per a [[meta:Mobile]]--&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-left&amp;quot; style=&amp;quot;vertical-align:top; background:#FFFFE0; border-spacing: 0px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#FFDEAD; border:1px solid #EECFA1; border-right:0px; padding:0px; font-size:150%; vertical-align:middle; font-weight:normal; width:100%;&amp;quot; | Cómo conectarse a Guifi.net&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-left:0px; padding:0px; vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;color:#000; background:#FFFFE0; padding:15px 5px&amp;quot; | &amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[tres pasos|Cómo dar de alta y enlazar un nodo]]&lt;br /&gt;
* [[Elige el material]]&lt;br /&gt;
* [[Configura tu ordenador]]&lt;br /&gt;
* [[Buenas Prácticas|Código de buenas prácticas]]&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;border:1px solid transparent;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:50%;background:#f5fffa;border:1px solid #99CC33;padding:10px;margin-bottom:7px; vertical-align:top;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em; &amp;quot; | &lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&lt;br /&gt;
{| id=&amp;quot;mp-left&amp;quot; style=&amp;quot;vertical-align:top; background:#f5fffa; border-spacing: 0px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-right:0px; padding:0px; font-size:150%; vertical-align:middle; font-weight:normal; width:100%;&amp;quot; | Supernodos e islas&lt;br /&gt;
! style=&amp;quot;background:#a5e085; border:1px solid #99CC33; border-left:0px; padding:0px; vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 style=&amp;quot;color:#000; background:#f5fffa; padding:15px 5px&amp;quot; |&amp;lt;div id=&amp;quot;mp-itn&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Empezar una isla desde 0|Comenzar una isla desde cero]]&lt;br /&gt;
* [[Crear un supernodo]]&lt;br /&gt;
* [[Buenas Prácticas|Código de buenas prácticas]]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;mp-upper&amp;quot; style=&amp;quot;width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; style=&amp;quot;background:#f5faff;border:1px solid #cedff2;padding:10px;margin-bottom:7px; vertical-align:top;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em; &amp;quot; | &lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-dyk&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
== [[Legal]] ==&lt;br /&gt;
* [[Ayuntamientos]] / [[Anexo:Guifi.net en Ayuntamientos]]&lt;br /&gt;
* [[Associación|Constitución de una asociación]]&lt;br /&gt;
* [[Legislaciones|Legislaciones Países]]&lt;br /&gt;
* [[FAQ_Legal|FAQ]]&lt;br /&gt;
* [[Comunicación_comunidad|Cómo realizar la comunicación de instalación de nodo guifi.net a la Comunidad de Vecinos]]&lt;br /&gt;
&lt;br /&gt;
== Red ==&lt;br /&gt;
=== Los básicos en la web ===&lt;br /&gt;
* [[Zona|Crear y modificar una zona]]&lt;br /&gt;
* [[Añadir_un_nodo_de_guifi.net|Añadir un nodo de guifi.net]]&lt;br /&gt;
* [[Servicios|Crear servicios y vincularlos en los servidores]]&lt;br /&gt;
* [[Herramientas|Herramientas (localización de IPs y MACs, estadísticas, mapas de enrutamiento, etc.)]]&lt;br /&gt;
&lt;br /&gt;
=== Infraestructura ===&lt;br /&gt;
* [[Crear_un_supernodo|Montaje de supernodos]]&lt;br /&gt;
* [[Filtros de red]]&lt;br /&gt;
* [[Enlaces virtuales]]&lt;br /&gt;
* [[Herramienta para buscar rangos de IPs libres]]&lt;br /&gt;
* [[Nanostations: Modificando configuración por consola]]&lt;br /&gt;
* [[Configuración de antena TP-LINK TL-WA7510N]]&lt;br /&gt;
&lt;br /&gt;
=== Mesh ===&lt;br /&gt;
* [[Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net#Crear_una_nube_Mesh|Crear una nube Mesh en Guifi.net]]&lt;br /&gt;
* [[Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net#Conectarse_a_una_red_Mesh|Conectarse a una nube Mesh de Guifi.net]]&lt;br /&gt;
* [[Alix+GSF|ALIX + Conectarse a la nube de gracia con mesh]]&lt;br /&gt;
* [[Mesh|Otros artículos sobre Mesh]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamientos y conceptos de redes ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Enrutamientos]]&lt;br /&gt;
* [[Peerings]]&lt;br /&gt;
* [[IPv4]]&lt;br /&gt;
* [[IPv6]]&lt;br /&gt;
* [[Criterios de asignación de direcciones IPv4]]&lt;br /&gt;
* [[ARP]]&lt;br /&gt;
* [[Cables_UTP|Cables UTP]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Cómo se vertebra la red: Troncal, puntos de acceso y conexiones simples]]&lt;br /&gt;
* [[La seguridad en la red abierta]]&lt;br /&gt;
* [[Aplicaciones | Aplicaciones de guifi.net]]&lt;br /&gt;
* [[Recursos externos]]&lt;br /&gt;
* [[Instalar firmware Ubiquiti Rocket M5]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Sistemas ==&lt;br /&gt;
* [[Distribución guinux]]&lt;br /&gt;
* [[Servidor compacto con una routerstation]]&lt;br /&gt;
* [[Comtrend_hg536%2B]] Reciclar router de Jazztel o telefónica como router neutro con OpenWRT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Servicios básicos ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Configurar Repositorio APT guifi]]&lt;br /&gt;
* [[Servidor Proxy]]&lt;br /&gt;
* [[Squid autentificándose contra squid]]&lt;br /&gt;
* [[Servidor de gráficas]]&lt;br /&gt;
* [[SNPservices]]&lt;br /&gt;
* [[Servidor DNS]]&lt;br /&gt;
* [[Servidor Reloj|Servidor de Reloj (NTP)]]&lt;br /&gt;
* [[Configurar red]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de compartición de ficheros ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Servidor FTP]]&lt;br /&gt;
* [[Servidor Peer 2 Peer]]&lt;br /&gt;
* [[Servidor DCC]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de mensajería ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Servidor de Correo]]&lt;br /&gt;
* [[Webmail]]&lt;br /&gt;
* [[Servidor Jabber]]&lt;br /&gt;
* [[Servidor IRC]]&lt;br /&gt;
* [[Mailman]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Servicios de Voz y Vídeo ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[VoIP|Servidor de VeuIP (VoIP)]]&lt;br /&gt;
* [[Servidor Radio Streaming]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Otros Servicios ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[LDAP|Servidor LDAP]]&lt;br /&gt;
* [[Apache|Servidor web Apache]]&lt;br /&gt;
* [[Servidor Repositorio Linux]]&lt;br /&gt;
* [[Servidor Repositorio Linux (Cache)]]&lt;br /&gt;
* [[Servidor Iperf]]&lt;br /&gt;
* [[Servidor repositorio subversion]]&lt;br /&gt;
* [[DHCP|Servidor DHCP]]&lt;br /&gt;
* [[MySQL]] (Bases de Datos)&lt;br /&gt;
* [[Proxmox]] (virtualitzación)&lt;br /&gt;
* [[Cacti]] (monitorización)&lt;br /&gt;
* [[Clamav]] (antivirus con GNU/Linux)&lt;br /&gt;
* [[Trac]] (sistema de gestión de tiquets)&lt;br /&gt;
* [[Monitor]] (Monitorización de la red distribuida)&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
=== Sistema ===&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[ACPI]]&lt;br /&gt;
* [[Bridges_con_Linux|Bridges con GNU/Linux]]&lt;br /&gt;
* [[Chroot]]&lt;br /&gt;
* [[Corkscrew]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Estandares de transmisión de datos y organizaciones colaboradoras ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [http://es.wikipedia.org/wiki/IEEE_802.11 IEEE 802.11]&lt;br /&gt;
* [http://es.wikipedia.org/wiki/Multimedia_over_Coax_Alliance Multimedia over Coax Alliance]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/HomePNA HomePNA]&lt;br /&gt;
* [[Aprovechar el cable de antena de televisión]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== [[Instaladores]] ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Pararrayos]]&lt;br /&gt;
* [[Aprovechar el cable de antena de televisión]]&lt;br /&gt;
* [[Presupuestos]]&lt;br /&gt;
* [http://guifi.net/ca/node/12486 Comunidad de vecinos, caso de ejemplo]&lt;br /&gt;
* [[Reinicio remoto de nodos]]&lt;br /&gt;
* [[Campanarios]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Desarrolladores ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Preparando el entorno de desarrollo]]&lt;br /&gt;
* [[Manual editor wiki]]&lt;br /&gt;
* [http://wiki.guifi.net/wiki/Trac Trac de Guifi.net]&lt;br /&gt;
* [[Actualizaciones módulos drupal]]&lt;br /&gt;
* [[Mapas de nodos en la web]]&lt;br /&gt;
* [http://gitorious.org/guifi Repositorios del código del proyecto guifi.net]&lt;br /&gt;
* [[Mapa del código]]&lt;br /&gt;
* [[API de Guifi]]&lt;br /&gt;
* [[CNML]]&lt;br /&gt;
* [[Empotrar_mapa_de_guifi|Empotrar el mapa de Guifi-Google Maps en una web]]&lt;br /&gt;
* [[Unsóloclic]]&lt;br /&gt;
* [[:Categoría:router|Routers]]&lt;br /&gt;
* [[:Categoría:Telefonía móvil|Telefonía móvil sobre guifi.net]]&lt;br /&gt;
* [[Guifi.net Studio]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Diseñadores ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Logos]]&lt;br /&gt;
* [[Maquetación de las distintas páginas web]]&lt;br /&gt;
* [[Usabilidad]]&lt;br /&gt;
* [[Presentaciones de guifi.net]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Desarrollo colectivo de la red ==&lt;br /&gt;
{{div col|cols=2}}&lt;br /&gt;
* [[Cursos]]&lt;br /&gt;
* [[Necesidades]]&lt;br /&gt;
{{div end}}&lt;br /&gt;
&lt;br /&gt;
== Glosario ==&lt;br /&gt;
{{Acontecimientos}}&lt;br /&gt;
&lt;br /&gt;
* [[Términos usados habitualmente]]&lt;br /&gt;
* [[Guia Rápida de Guifi.net]]&lt;br /&gt;
* [[Preguntas Frecuentes]]&lt;br /&gt;
* [http://guifi.net/es/ESDocs Documentos basados en la web de guifi.net] antigua &amp;quot;ComEsFa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Accesos Rápidos =&lt;br /&gt;
* [http://planet.guifi.net Planet]&lt;br /&gt;
* [http://guifi.net/es/ProcomunXOLN Procomún XOLN (Licencia de la red)]&lt;br /&gt;
* [http://guifi.net/es/maps Mapa guifi]&lt;br /&gt;
* [http://guifi.net/es/grups Webs Regionales]&lt;br /&gt;
* [http://trac.guifi.net Reporta Errores de la web]&lt;br /&gt;
* [http://fundacio.guifi.net Fundación]&lt;br /&gt;
* [http://lists.guifi.net Listas de Correo]&lt;br /&gt;
&lt;br /&gt;
[[ca:Portada]]&lt;br /&gt;
[[en:Main Page]]&lt;br /&gt;
[[eu:Azala]]&lt;br /&gt;
[[fr:Accueil]]&lt;br /&gt;
[[gl:Portada]]&lt;br /&gt;
[[pt:Página principal]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	<entry>
		<id>http://es.wiki.guifi.net/wiki/Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net</id>
		<title>Abrir redes tipo mesh a través de Guifi.net</title>
		<link rel="alternate" type="text/html" href="http://es.wiki.guifi.net/wiki/Abrir_redes_tipo_mesh_a_trav%C3%A9s_de_Guifi.net"/>
				<updated>2013-10-04T18:36:40Z</updated>
		
		<summary type="html">&lt;p&gt;Conxuro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GSF-logo.png|right]]&lt;br /&gt;
[[File:Qmp_small.png|right|200px]]&lt;br /&gt;
Este manual explica cómo integrar con Guifi.net las redes mesh (también conocidas como [[MANET]] y entendidas como redes que funcionan con protocolos de enrutamiento dinámico cómo [[B.A.T.M.A.N.-adv]], [[BMX6]] u [[protocolos de enrutament dinámico|otros]]) de forma que se intercambian datos con el resto de la red libre a través de [[IPv4]].&lt;br /&gt;
&lt;br /&gt;
El manual se basa en la manera de dar de alta los nodos mesh en la web de Guifi.net.&lt;br /&gt;
&lt;br /&gt;
Originalmente, en [[Guifi.net]], para realizar este tipo de redes, se utilizaba un software/firmware desarrollado por la comunidad del barrio de Gràcia de Barcelona, [[GSF|Gràcia Sense Fils (GSF)]].&lt;br /&gt;
&lt;br /&gt;
Actualmente, se utiliza habitualmente el software desarrollado en el proyecto [[Quick_Mesh_Project|Quick Mesh Project (qMp)]].&lt;br /&gt;
&lt;br /&gt;
Desde junio de 2013 se han aplicado unos pequeños cambios para adaptar la web mejor a les redes Mesh, concretamente con [[Quick_Mesh_Project|qMp]].&lt;br /&gt;
&lt;br /&gt;
Ahora, ya no hay tipos de zonas (ad-hoc, infraestructura) y lo que hay es un nuevo tipo de radio &amp;quot;Mesh&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Además, para poder realizar una mejor agregación IP en las zonas, se define un nuevo tipo de direcciones IP &amp;quot;Mesh&amp;quot;, que es la que se asigna a los dispositivos con estas radios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear una nube Mesh ==&lt;br /&gt;
&lt;br /&gt;
La finalidad de crear una nube Mesh es permitir agrupar los nodos que se conectarán a este tipo de redes, y reservar y asignar direcciones IP en la web sólo para estos nodos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Crear una nueva zona ===&lt;br /&gt;
&lt;br /&gt;
Se puede crear una nueva zona en la web siguiendo estos [[Zona|pasos para configurarla]], o bien utilizar una existente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Agregar un rango IP ===&lt;br /&gt;
&lt;br /&gt;
Lo más importante de todo, es agregar un nuevo direccionamiento IP de tipo Mesh en la zona, sea nueva o no, para que se puedan asignar IPs a los dispositivos que se conecten en Mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:MeshNetwork1.png|Afegir un rang nou]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitaciones actuales ===&lt;br /&gt;
&lt;br /&gt;
* La web '''no permite realizar búsquedas de rangos IPs de tipo Mesh'''.&lt;br /&gt;
** Se tiene que utilizar la herramienta de [http://guifi.net/es/guifi/menu/ip/ipsearch/10.1.%2525 búsqueda de direcciones IP] para ver los rangos disponibles.&lt;br /&gt;
** Se tiene que agregar manualmente la IP base de red y la máscara.&lt;br /&gt;
* La web '''no distingue si un rango IP está en uso''' si no se agrega exactamente la misma dirección y máscara.&lt;br /&gt;
:''P.ej. Si se agrega una red 10.1.4.0/24, lo permite, a pesar de que el rango 10.1.0.0/21 esté asignado previamente (sólo lo evitaría si intentamos agregar 10.1.0.0/21 de nuevo).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conectarse a una red Mesh ==&lt;br /&gt;
&lt;br /&gt;
Para conectarse a una de las redes Mesh con qMp existentes a Guifi.net, primero hay que seguir los [[Tres_pasos|&amp;quot;tres pasos para unirse a Guifi.net&amp;quot;]]; es decir:&lt;br /&gt;
# Registrarse en la web&lt;br /&gt;
# Crear un nodo &lt;br /&gt;
# Agregar un dispositivo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Agregar un dispositivo ===&lt;br /&gt;
&lt;br /&gt;
* Primero es necesario seleccionar el modelo de dispositivo, concretamente uno de los [http://qmp.cat/projects/qmp/wiki/Devices soportados (en)] por qMp.&lt;br /&gt;
* A diferencia de otras redes de Guifi.net, para enlazar y conectar a una red Mesh, al crear un dispositivo nuevo tiene que agregarse '''una radio de tipo &amp;quot;Mesh&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
[[File:MeshRadio1.png|Añadir una radio para enlazar en Mesh]]&lt;br /&gt;
&lt;br /&gt;
* Una vez agregada la radio se tienen que configurar los siguientes parámetros:&lt;br /&gt;
** '''MAC''': aquí hay que agregar el [http://es.wikipedia.org/wiki/BSSID BSSID] que se utilice en la zona Mesh donde se quiere conectar. Normalmente con qMp se utiliza ''''02:CA:FF:EE:BA:BE''''.&lt;br /&gt;
** '''SSID''': identificador Wifi de tu dispositivo.  ''Recomendado poner algo como '''guifi.net-qMp-NOMBREDELNODO''' para ser reconocido facilmente al hacer un scan''.&lt;br /&gt;
** '''Protocolo''': normalmente se utilizan enlaces a 5GHz, ya sean '''802.11a''' o '''más habitualmente 802.11n''' en dispositivos nuevos.&lt;br /&gt;
** '''Canal''': el número de canal Wifi con el que enlazan las antenas en una zona Mesh.  ''Hay que colocarlo bien, ya que cada zona utiliza uno (o varios) diferentes''.&lt;br /&gt;
* Se asignará automáticamente un rango de direcciones IP /27 que serán las que el router/antena tendrá disponibles para comunicarse y para asignar a los dispositivos finales (ordenadores, móbiles, etc.).&lt;br /&gt;
&lt;br /&gt;
[[File:MeshRadio2.png|Parámetros de la radio para enlazar en Mesh]]&lt;br /&gt;
&lt;br /&gt;
* Finalmente, se tendrá que instalar el software qMp en el dispositivo con los parámetros que se han configurado en la web (BSSID, SSID, Canal, IP, etc.).&lt;br /&gt;
** Podéis seguir los pasos de http://es.wiki.guifi.net/wiki/QMP para instalar y configurar qMp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nodos frontera ===&lt;br /&gt;
&lt;br /&gt;
Un nodo frontera es un nodo que interconecta una red Mesh con el resto de Guifi.net.&lt;br /&gt;
&lt;br /&gt;
Como mínimo son necesarios dos dispositivos, o bien, uno con dos antenas/radios.&lt;br /&gt;
&lt;br /&gt;
Hay dos maneras de montar un nodo frontera:&lt;br /&gt;
&lt;br /&gt;
:1. Nodos frontera sólo con qMp.&lt;br /&gt;
: Utilizando el paquete de Quagga para OpenWRT.&lt;br /&gt;
&lt;br /&gt;
''[Completar]''&lt;br /&gt;
&lt;br /&gt;
:2. Nodos frontera con diferentes dispositivos.&lt;br /&gt;
: Podéis ver un tipo de configuración &amp;quot;híbrida&amp;quot; con [[Node_frontera_amb_qMp|qMp y una RB Mikrotik]].&lt;br /&gt;
&lt;br /&gt;
''[Completar]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitaciones actuales ===&lt;br /&gt;
&lt;br /&gt;
Actualmente la web de Guifi.net presenta algunas limitaciones para crear y representar las redes Mesh.&lt;br /&gt;
&lt;br /&gt;
* No se puede crear un dispositivo con una radio para Mesh y otra para infraestructura, y a la vez '''reservar un rango IP diferente (Mesh,public)''' para cada una, ya que la interfaz wlan/lan se crea asociada sólo a la primera radio añadida y, luego, sólo se pueden agregar nuevos rangos IP a ésta interfaz.&lt;br /&gt;
** Para permitir asignar una (o varias) IP a cada radio/cable se tendrían que hacer cambios más grandes en la web, así como adaptar la BBDD. Cómo no está previsto a corto plazo, de momento, es aconsejable en dispositivos mixtos crear primero la radio Mesh y luego la radio AP, para que la primera sea la asociada a la interfaz wlan/lan, y luego, si se precisa, agregar manualmente IP's del rango &amp;quot;público&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Si hay '''algún nodo que tiene visión hacia dos redes Mesh''' (p.ej. GSF-Vallcarca, UPC-Sants), automáticamente no se podrá asignar una IP de cada rango, ya que el nodo tendría que estar a la vez en dos subzonas.&lt;br /&gt;
** Para solucionar esto, se podría hacer, o bien dejar el nodo en la zona superior (p.ej. Barcelona) y agregar las IP de las Mesh manualmente por un administrador en los diferentes dispositivos; ó bien dejarlo en una zona/nube que tenga rango IP Mesh, y agregar manualmente el rango de la otra Mesh a otro dispositivo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* De momento, '''no se pueden representar/pintar en el mapa los enlaces Mesh''', ya que, al ser dinámicos, no está implementada la opción en la web.&lt;br /&gt;
** Para ver los nodos en un mapa, podéis mirar el que hay integrado en el software qMp dentro del dispositivo. &lt;br /&gt;
** O bien, en el mapa de Altermesh, seleccionando qMp.cat en el desplegable (combo box): http://map.qmp.cat/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recomendaciones ==&lt;br /&gt;
&lt;br /&gt;
* En lo que respecta al direccionamiento IP, hay un rango reservado en la zona &amp;quot;World&amp;quot;, y puede que sea recomendable (aunque sea por claridad) que las diferentes zonas Mesh tengan subrangos de éste.&lt;br /&gt;
&lt;br /&gt;
* Reservar rangos IP de tipo Mesh para las zonas con máscara de al menos /21.&lt;br /&gt;
&lt;br /&gt;
''REVISAR: http://ca.wiki.guifi.net/wiki/Criteris_d%27assignaci%C3%B3_d%27adreces_IPv4(cat)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ver también ==&lt;br /&gt;
&lt;br /&gt;
* [[Quick_Mesh_Project|Quick Mesh Project (qMp)]]&lt;br /&gt;
* [[Altermesh]]&lt;br /&gt;
* [[Instalación de qMp en RouterStation Pro]]&lt;br /&gt;
* [[MonsterBox]]&lt;br /&gt;
* [[MANET]]&lt;br /&gt;
* [[qMp al Jardí Botànic de Barcelona]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
* [http://qmp.cat/ Web del projecte qMp]&lt;br /&gt;
* [http://graciasensefils.net/ Gracia Sense Fils]&lt;br /&gt;
* [http://guifisants.net/ Guifi Sants]&lt;br /&gt;
* [http://poblenousensefils.net/ Poble Nou Sense Fils]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Listas de correo&lt;br /&gt;
* [https://mail.qmp.cat/cgi-bin/mailman/listinfo/qmp-users qmp-users ''(ENG)'']&lt;br /&gt;
* [https://mail.qmp.cat/cgi-bin/mailman/listinfo/qmp-dev qmp-dev ''(ENG)'']&lt;br /&gt;
* [https://llistes.guifi.net/sympa/info/guifi-mesh guifi-mesh]&lt;br /&gt;
* [https://llistes.graciasensefils.net/pipermail/graciasensefils/ gsf usuaris]&lt;br /&gt;
* [https://llistes.graciasensefils.net/pipermail/gsf-dev/ &amp;lt;strike&amp;gt;gsf-dev&amp;lt;/strike&amp;gt; ''(cerrada)'']&lt;br /&gt;
* [https://mail.guifisants.net/cgi-bin/mailman/listinfo/llista guifi sants]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:MANET]]&lt;br /&gt;
&lt;br /&gt;
[[ca:Obrir xarxes tipus mesh a través de Guifi.net]]&lt;/div&gt;</summary>
		<author><name>Conxuro</name></author>	</entry>

	</feed>