## FreedomBox Manual

## FreedomBox: recupera tu privacidad online

FreedomBox es un servidor personal diseñado tomando en cuenta la privacidad y la propiedad de los datos. Es un subconjunto del sistema operativo universal Debian e incluye solo software libre. Puedes ejecutarlo en casa en un ordenador pequeño, barato y energéticamente eficiente dedicado a tal uso. También se puede instalar en cualquier ordenador que ejecute Debian o en una máquina virtual.

Para reeemplazar servicios de comunicaciones de terceros que están espiando toda tu vida, podrás alojar servicios por ti mismo y usarlos en casa o a través de Internet mediante un navegador o aplicaciones especializadas. Estos servicios incluyen chat y audioconferencias, correo electrónico web, compartición de ficheros y calendario, libreta de direcciones y sincronización de feeds de noticias. Por ejemplo, para comenzar a usar un servicio de chat privado activa el servicio desde el interfaz de administración y agrega a tus amistades como usuarios autorizados del servicio. Podrán conectarse al servicio alojado en tu FreedomBox usando clientes de chat XMPP como Conversations para Android, Pidgin para Windows y Linux, o Messages para Mac OS, y acceder a comunicaciones cifradas.

FreedomBox también puede alojar un punto de acceso Wi-Fi, un proxy para bloquear anuncios y una red privada virtual (VPN). Los usuarios más avanzados pueden reemplazar su router por un FreedomBox.

Configurar FreedomBox en casa sobre un hardware específico o en tu ordenador con Debian podría requerir cierto conocimiento técnico o ayuda de la comunidad. Una vez instalado el interfaz es fácil de usar, parecido a un teléfono inteligente.

Documentación relacionada:

- Aplicaciones de FreedomBox

- Máquinas que soportan FreedomBox

- Desgarga e Instalación

- Manual

- Ayuda en directo de la comunidad

- Manual del Desarrollador de FreedomBox

### Uso típico: Nube Privada

FreedomBox proporciona servicios a ordenadores y dispositivos móviles en tu hogar, y a tus amistades. Esto incluye mensajería instantánea segura y audioconferencias de alta calidad con poco consumo de banda. FreedomBox te permite publicar tus contenidos en un blog y en un wiki para colaborar con el resto del mundo. Están previstos los servicios de servidor personal de correo electrónico y red social federada usando GNU Social y Diaspora, para proporcionar alternativas a Gmail y Facebook que respeten la privacidad.

### Uso avanzado: Router Casero Inteligente

FreedomBox se ejecuta en un ordenador físico y puede enrutar tu tráfico. Puede reemplazar a tu router inalámbrico de casa dando salida a internet a dispositivos variados como teléfonos móviles, ordenadores portátiles y televisores. Enrutando tráfico FreedomBox puede eliminar anuncios espía y malware web antes incluso de que alcancen tus dispositivos. FreedomBox puede ocultar tu localización y protejer tu anonimato enrutando tu tráfico por la red Tor. FreedomBox proporciona un servidor VPN que puedes emplear cuando estés lejos de casa para mantener secreto tu tráfico en redes inalámbricas públicas en las que no confíes y para acceder con seguridad a tus dispositivos de casa.

También lo puedes llevar contigo y tu portátil y usarlo para conectar a redes públicas en el trabajo, o para habilitar sus servicios en la escuela o en la oficina.

Se podría emplear en una aldea para habilitar comunicaciones digitales por toda la aldea. En el futuro, FreedomBox intentará dar soporte a medios alternativos de conexión a Internet, como redes Mesh.

### Uso avanzado: Para Comunidades

El objetivo principal del diseño de FreedomBox es ser empleado como servidor personal en el hogar para uso por parte de una única familia y sus amistades. No obstante, en esencia es un software servidor que puede ayudar a un usuario no técnico a desplegar y mantener servicios con facilidad. El software se encarga automáticamente de muchas de las decisiones técnicas de administración del sistema, incluída la seguridad, reduciendo la complejidad para un usuario no técnico. Esta naturaleza de FreedomBox le hace apropiado para alojar servicios para comunidades pequeñas como aldeas o pequeñas empresas. Las comunidades pueden alojar sus propios servicios con un esfuerzo minimo usando FreedomBox. Pueden desplegar redes Wi-Fi que cubran toda el área de la comunidad y traer conexiones a Internet desde largas distancias. Los miembros de la comunidad pueden disfrutar conectividad a Internet, cobertura Wi-Fi omnipresente, servicios de VoIP, contenidos educativos y de entretenimiento offline, etc anteriormente no disponibles. También reforzará la privacidad individual de los miembros de la comunidad, reducirá su dependencia de servicios centralizados proporcionados por grandes compañías y les hará resistentes a la censura.

El libro electrónico libre FreedomBox for Communities describe la motivación y proporciona instrucciones detalladas para configurar FreedomBox para este caso de uso. Miembros del proyecto FreedomBox estan involucrados en desplegar redes Wi-Fi con conectividad gratuíta a Internet en la India rural. Este libro electrónico documenta su conocimiento y experiencias.

### Interfaz de FreedomBox

#### Captura de pantalla

#### Video de introducción

Plinth_Introduction.webm

(36 MB, 13 Min.)

#### Más recursos en formato video

La charla Eben Moglen - Freedom in the cloud que impartió Eben Moglen antes del arranque del proyecto FreedomBox expone aspectos de la filosofía que hay detrás FreedomBox.

Primera demostración de FreedomBox en SFLC, Universidad de Columbia por Sunil Mohan Adapa.

## Guía de Inicio Rápido

### Lo que necesitas para empezar

- Un dispositivo soportado (incluyendo cualquier dispositivo que pueda funcionar con Debian). En el resto de este manual lo llamaremos la FreedomBox.

- Un cable de alimentación para tu dispositivo.

- Un cable de red Ethernet.

- Una tarjeta microSD (o un medio de almacenamiento equivalente para tu dispositivo) preparado según las instrucciones de la página de Descargas.

### Cómo empezar

1. Conecta un extremo del cable de red al puerto Ethernet de tu FreedomBox y el otro a tu router.

2. Enciende la FreedomBox. Nota: En la mayoría de computadoras monoplaca no esperes un efecto de salida en un monitor si lo conectas por HDMI porque el núcleo (kernel) del sistema podría no reconocerlo. Mira más abajo para aprender cómo acceder y controlar tu FreedomBox desde la red.

3. En el primer arranque FreedomBox ejecutará su configuración inicial (las versiones más antiguas de FreedomBox se reinician tras este paso). Este proceso podría llevar varios minutos en algunas máquinas. Después de darle unos 10 minutos aproximadamente, sigue con el siguiente paso. Nota: Esta espera y reinicio se necesitan a causa de un defecto conocido.

4. Después de que tu FreedomBox haya finalizado su configuración inicial puedes acceder a su interfaz web (llamado Plinth) mediante tu navegador web.

   - Si tu ordenador está conectado directamente a tu FreedomBox a través de un segundo puerto Ethernet de la red local, puedes navegar a http://freedombox/ o a http://10.42.0.1/.

   - Si tu ordenador soporta mDNS (GNU/Linux, Mac OSX o Windows con software mDNS instalado), puedes navegar a: http://freedombox.local/ (o a http://<el-hostname-que-estableciste-durante-la-instalación>.local/)

   - Si te manejas con el interfaz web de tu router, puedes buscar allí la dirección IP de tu FreedomBox y navegar a ella.

   - Si no están disponibles ninguno de estos métodos necesitarás averiguar la dirección IP de tu FreedomBox. Puedes usar el programa "nmap" de tu ordenador para encontrar su dirección IP:

              nmap -p 80 --open -sV 192.168.0.0/24 (remplaza la ip/máscara de red con la que use tu router)

     En la mayoría de los casos puedes mirar tu dirección IP actual y cambiar los últimos dígitos por 0 para encontrar tu red local, así: `XXX.XXX.XXX.0/24`

     Tu FreedomBox aparecerá como una dirección IP con un puerto TCP 80 abierto usando el servicio `Apache httpd` sobre Debian. En el siguiente ejemplo estaría en `http://192.168.0.165`:

              Nmap scan report for 192.168.0.165
              Host is up (0.00088s latency).
              PORT   STATE SERVICE VERSION
              80/tcp open  http    Apache httpd 2.4.17 ((Debian))

     Si nmap no encuentra nada con el comando anterior puedes probar a remplazar `192.168.0.0/24` por `10.42.0.255/24`.

              nmap -n -sP 10.42.0.255/24

     El informe de escaneo mostrará algo similar a esto:

              Nmap scan report for 10.42.0.1
              Host is up (0.00027s latency).
              Nmap scan report for 10.42.0.50
              Host is up (0.00044s latency).

     En este ejemplo, la FreedomBox está en `http://10.42.0.50`. (`10.42.0.1` es mi ordenador.)

5. Al acceder al interfaz web de FreedomBox (Plinth) tu navegador te avisará de que comunica en modo seguro pero que considera invalido el certificado de seguridad. Tienes que aceptarlo porque el certificado es autogenerado en la FreedomBox y "autofirmado" (el navegador podría denominarlo "no confiable", "no privado", "error de privacidad" o "emisor/autoridad desconocida"). Decir a tu navegador que ya lo sabes podría implicar accionar algunos botones como "Entiendo los riesgos", "proceder ... (inseguro)" o "Añadir excepción". Después de la instalación este certificado se puede cambiar a otro normal usando la opción Let's Encrypt.

6. La primera vez que accedes al interfaz web de tu FreedomBox verás una página de bienvenida. Haz clic en el botón "Iniciar configuración" para continuar.

   - Si has instalado FreedomBox usando un paquete Debian se te pedirá una clave secreta. Esta clave se te habrá proporcionado durante la instalación del paquete Debian. También se puede leer en el archivo `/var/lib/plinth/firstboot-wizard-secret`.

7. La siguiente página te pide un nombre de usuario y contraseña. Rellena el formulario y haz clic en "Crear Cuenta."

   - Nota: El usuario que creas aquí tendrá privilegios de Admin y también podrá entrar por SSH. Por seguridad y para prevenir meteduras de pata no deberías introducir tu cuenta de uso habitual, sino una especial. Luego puedes añadir más usuarios, entre ellos el tuyo de uso habitual.

8. Tras completar el formulario estarás en el interfaz web de FreedomBox (Plinth) y podrás acceder a las apps y a la configuración mediante el interfaz web.

Ahora puedes probar cualquier App disponible en FreedomBox.

### Orientándote

#### Página principal

La página principal es la que verás al acceder a la raíz web de tu FreedomBox. También puedes acceder a ella haciendo clic sobre el logo de FreedomBox de la esquina de arriba a la izquierda del interfaz web de FreedomBox (Plinth).

La página principal tiene accesos directos a las apps instaladas que estén habilitadas. Haciendo clic en los accesos directos de aplicaciones web te llevarán a la página web correspondiente de cada app. Si son otro tipo de servicios hacer clic en los accesos directos te mostrará información acerca de cada servicio.

#### Menú de Aplicaciones

Al Menú de Aplicaciones se accede por el icono de rejilla que está junto al logo de FreedomBox. Esta página lista todas las apps disponibles para instalar en tu FreedomBox. Haz click sobre el nombre de la app para visitar su página, desde la que podrás instalarla y configurarla.

#### Menú de Ayuda

Al Menú de Ayuda se accede por el icono del signo de interrogación de la esquina de arriba a la derecha. Incluye enlaces útiles y el manual de FreedomBox.

#### Menú del Sistema

Al Menú del Sistema se accede por el icono del engranaje de la esquina de arriba a la izquierda. Incluye páginas relacionadas con la configuración del sistema.

#### Menú del Usuario

En la esquina superior derecha se muestra el nombre del usuario actual. Un menú desplegable incluye opciones para editar el perfil del usuario o sacarle del interfaz web.

#### Menú de Hamburgesa

El interfaz web de FreedomBox's (Plinth) es autoadaptativo. En algún caso podrías echar en falta las opciones del menú en ventanas estrechas.

Esto se debe a que las opciones del menú han colapsado en el icono de hamburguesa mostrado en la esquina superior derecha de la ventana. Al hacer clic en él se despliega el menú.

## Obtener Ayuda

Este manual intenta darte la información que necesitas para comenzar a usar tu FreedomBox. No obstante, si después de leerlo tienes cualquier pregunta puedes obtener ayuda de los contribuyentes a la comunidad así:

- Buscando o preguntando en tu foro de debate (recomendado).

- Escribiendo a la lista de correo electrónico freedombox-discuss@lists.alioth.debian.org. También puedes apuntarte a recibir copias de cada debate que ocurra en la lista de correo o leer sus archivos.

- Conversando por chat en #freedombox@irc.oftc.net.

- Leyendo el wiki.

- Leyendo el sitio web de la FreedomBox Foundation.

- Leyendo la Página del Proyecto FreedomBox.

## Descarga e Instalación

Bienvenido a la página de descargas de FreedomBox. Puedes instalar FreedomBox sobre alguno de los baratos dispositivos hardware soportados, sobre cualquier sistema operativo Debian Linux, o sobre una máquina virtual.

Instalar en una máquina que lleve el sistema Debian es fácil porque FreedomBox está disponble como paquete. Recomendamos instalar FreedomBox sobre una placa SBC soportada. La placa estaría dedicada al uso de FreedomBox en el hogar. Esto evitará un montón de riesgos, como configuraciones accidentalmente incorectas por el usuario. En caso de duda decidiendo qué hardware es el más apropiado para tí o durante la instalación, usa por favor la página de soporte o lee la página de Preguntas y Respuestas basada en los archivos de la lista de correo Freedombox-discuss.

### Descargando en Debian

Si estás instalando sobre un sistema Debian existente no necesitas descargar las imágenes. Lee las instrucciones para configurar FreedomBox en Debian.

### Descargando para placa SBC o Máquina Virtual

#### Preparar tu dispositivo

Lee las instrucciones específicas para tu hardware respecto a como preparar tu dispositivo en la sección Hardware. En la web hay abundante documentación respecto a como contigurar tu dispositivo y grabar USB's o tarjetas SD para arrancar tu hardware.

#### Descargar Imágenes

Las imágenes recientes para hardware soportado están disponibles aquí:

- Imágenes Oficiales: https://freedombox.org/download/

- Imágenes Oficiales: https://ftp.freedombox.org/pub/freedombox/

#### Verificar las Imágenes Descargadas

Es importante verificar las imágenes que has descargado para asegurar que el fichero no se ha corrompido durante la transmisión y que efectívamente es la imagen construída por los desarrolladores de FreedomBox.

Nota: Las imágenes de prueba y nocturnas las firma el servidor de integración contínua de FreedomBox automaticamente.

- Primero abre un terminal e importa las claves publicas de los desarrolladores de FreedomBox que construyeron las imágenes:

      $ gpg --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971

      $ gpg --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808

      # Esta es la clave del servidor de integración contínua de FreedomBox
      $ gpg --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8

  Si este comando muestra un error como new key but contains no user ID - skipped usa un servidor de claves diferente para descargarlas:

      $ gpg --keyserver keys.gnupg.net --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971
      $ gpg --keyserver keys.gnupg.net --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808
      $ gpg --keyserver keys.gnupg.net --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8

  O

      $ gpg --keyserver keyserver.ubuntu.com --recv-keys BCBEBD57A11F70B23782BC5736C361440C9BC971
      $ gpg --keyserver keyserver.ubuntu.com --recv-keys 7D6ADB750F91085589484BE677C0C75E7B650808
      $ gpg --keyserver keyserver.ubuntu.com --recv-keys 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8

- A continuación, verifica la huella de las claves públicas:

      $ gpg --fingerprint BCBEBD57A11F70B23782BC5736C361440C9BC971
      pub   4096R/0C9BC971 2011-11-12
            Key fingerprint = BCBE BD57 A11F 70B2 3782  BC57 36C3 6144 0C9B C971
      uid                  Sunil Mohan Adapa <sunil@medhas.org>
      sub   4096R/4C1D4B57 2011-11-12

      $ gpg --fingerprint 7D6ADB750F91085589484BE677C0C75E7B650808
      pub   4096R/7B650808 2015-06-07 [expires: 2020-06-05]
            Key fingerprint = 7D6A DB75 0F91 0855 8948  4BE6 77C0 C75E 7B65 0808
      uid                  James Valleroy <jvalleroy@mailbox.org>
      uid                  James Valleroy <jvalleroy@freedombox.org>
      sub   4096R/25D22BF4 2015-06-07 [expires: 2020-06-05]
      sub   4096R/DDA11207 2015-07-03 [expires: 2020-07-01]
      sub   2048R/2A624357 2015-12-22

      $ gpg --fingerprint 013D86D8BA32EAB4A6691BF85D4153D6FE188FC8
      pub   rsa4096 2018-06-06 [SC]
            013D 86D8 BA32 EAB4 A669  1BF8 5D41 53D6 FE18 8FC8
      uid           [ unknown] FreedomBox CI (Continuous Integration server) <admin@freedombox.org>
      sub   rsa4096 2018-06-06 [E]

- Finalmente, verifica tu imágen descargada con su archivo de firma `.sig`. Por ejemplo:

      $ gpg --verify freedombox-unstable-free_2015-12-13_cubietruck-armhf.img.xz.sig freedombox-unstable-free_2015-12-13_cubietruck-armhf.img.xz
      gpg: Signature made Thursday 15 January 2015 09:27:50 AM IST using RSA key ID 0C9BC971
      gpg: Good signature from "Sunil Mohan Adapa <sunil@medhas.org>"
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: BCBE BD57 A11F 70B2 3782  BC57 36C3 6144 0C9B C971

#### Instalación

Tras la descarga puedes emplear la imágen para arrancar tu hardware (incluyendo máquinas virtuales). Necesitarás copiar la imágen a la tarjeta de memoria o pincho USB así:

1. Averigua en qué dispositivo está tu tarjeta.

   1. Desconecta tu tarjeta (Sácala de la ranura).

   2. Ejecuta `dmesg -w` mara mostrar y seguir los mensajes del núcleo (kernel).

   3. Conecta tu tarjeta (insértala en su ranura). Verás mensajes como estos:

          [33299.023096] usb 4-6: new high-speed USB device number 12 using ehci-pci
          [33299.157160] usb 4-6: New USB device found, idVendor=058f, idProduct=6361
          [33299.157162] usb 4-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
          [33299.157164] usb 4-6: Product: Mass Storage Device
          [33299.157165] usb 4-6: Manufacturer: Generic
          [33299.157167] usb 4-6: SerialNumber: XXXXXXXXXXXX
          [33299.157452] usb-storage 4-6:1.0: USB Mass Storage device detected
          [33299.157683] scsi host13: usb-storage 4-6:1.0
          [33300.155626] scsi 13:0:0:0: Direct-Access     Generic- Compact Flash    1.01 PQ: 0 ANSI: 0
          [33300.156223] scsi 13:0:0:1: Direct-Access     Multiple Flash Reader     1.05 PQ: 0 ANSI: 0
          [33300.157059] sd 13:0:0:0: Attached scsi generic sg4 type 0
          [33300.157462] sd 13:0:0:1: Attached scsi generic sg5 type 0
          [33300.462115] sd 13:0:0:1: [sdg] 30367744 512-byte logical blocks: (15.5 GB/14.4 GiB)
          [33300.464144] sd 13:0:0:1: [sdg] Write Protect is off
          [33300.464159] sd 13:0:0:1: [sdg] Mode Sense: 03 00 00 00
          [33300.465896] sd 13:0:0:1: [sdg] No Caching mode page found
          [33300.465912] sd 13:0:0:1: [sdg] Assuming drive cache: write through
          [33300.470489] sd 13:0:0:0: [sdf] Attached SCSI removable disk
          [33300.479493]  sdg: sdg1
          [33300.483566] sd 13:0:0:1: [sdg] Attached SCSI removable disk

   4. En este caso, el disco insertado recientemente está disponible en /dev/sdg. Toma nota con mucho cuidado para emplearla en el paso de copia más adelante.

2. Descomprime la descarga usando tar:

       $ xz -d freedombox-unstable-free_2015-12-13_cubietruck-armhf.img.xz

   El comando de arriba es un ejemplo para la imagen cubietruck construída el 2015/12/13. El nombre de archivo de tu descarga será diferente.

3. Copia la imágen a tu tarjeta. Asegúrate de que NO escribes sobre el almacenamiento principal de tu ordenador (como /dev/sda). Asegúrate

también de que NO ejecutas este paso como root para evitar sobreescribir datos en tu disco duro por una identificación errónea del dispositivo o fallos al teclear el comando. No habitual es que los usuarios normales tuvieran acceso de escritura sobre los discos USB y tarjetas SD pinchados en el sistema. Si no tienes permiso para escribir en tu tarjeta SD como usuario normal quizá necesites ejecutar éste comando como root. En tal caso comprueba y recomprueba todo antes de ejecutar el comando. Otra precaución de seguridad es desconectar todos los demás discos externos excepto la tarjeta SD antes de ejecutar el comando.

- Por ejemplo, si tu tarjeta SD es /dev/sdg, como en el paso anterior, para copiar la imágen, ejecuta:

      $ dd bs=1M if=freedombox-unstable-free_2015-12-13_cubietruck-armhf.img of=/dev/sdg conv=fdatasync status=progress

Un comando alternativo para copiar a la tarjeta SD:

-     $ cat freedombox-unstable-free_2015-12-13_cubietruck-armhf.img > /dev/sdg ; sync

En MS Windows necesitarás una herramienta como etcher. En MacOS (OSX) puedes usar programas como balenaetcher y rosaimagewriter.

- El comando anterior es un ejemplo para la imagen cubietruck construída el 2015/12/13. El nombre del archivo de tu imágen será diferente.

  Al identificar el dispositivo, usa el destino con letra de unidad como /dev/sdg, NO un destino numerado como /dev/sdg1. El dispositivo sin número refiere al dispositivo completo, mientras que el numerado refiere a una partición concreta. Queremos usar todo el dispositivo. Las imágenes descargadas contienen información completa acerca de cuantas particiones debería haber, sus tamaños y tipos. No necesitas formatear tu tarjeta SD ni crear particiones. Todo el contenido previo de la tarjeta será eliminado durante el proceso de escritura.

- Usa la imágen insertando la tarjeta SD o disco USB en el dispositivo de destino y arrancándolo. Tu dispositivo también debe estár preparado

  (ver la sección Hardware).

- Lee (el resto de) el Manual (en) para obtener instrucciones acerca de como usar las aplicaciones de FreedomBox.

### Obtener el Código Fuente

FreedomBox es 100% software libre y puedes obtener el código fuente para estudiarlo, modificarlo y distribuir mejoras.

#### Desde (dentro de) FreedomBox

FreedomBox se compone de diferentes programas de software y puedes obtener el código fuente de cualquiera de ellos. Estas instrucciones son similares a obtener y construír código fuente de Debian ya que FreedomBox es una variante pura de Debian. Usando este procedimiento puedes obtener el código fuente de la misma versión del paquete que estás usando actualmene en FreedomBox.

1. Para ver la lista de paquetes software instalados en tu FreedomBox, ejecuta lo siguiente en un terminal:

       dpkg -l

2. Para obtener el código fuente de cualquiera de esos programas ejecuta:

       apt source <nombre_del_paquete>

   Esto requiere que el archivo /etc/apt/sources/list contenga información acerca de los repositorios de código fuente. Esto es así por defecto en todas las imágenes FreedomBox. Pero si has instalado FreedomBox desde Debian necesitas asegurarte de que los repositorios de código fuente figuren en este archivo.

3. Para construir el paquete desde su código fuente, primero instala sus dependencias

       apt build-dep <nombre_del_paquete>

   Cambia al directorio fuente creado con el comando apt source:

       cd <directorio_fuente>

   Y construye el paquete

        dpkg-buildpackage -rfakeroot -uc

4. Instala el paquete:

        dpkg -i ../<paquete_construído>.deb

#### Otras Maneras de Obtener el Código Fuente

1. El código fuente de cualquier paquete se puede ver y buscar usando el interfaz web de sources.debian.org. Por ejemplo, mira el paquete plinth.

2. El código fuente y el binario precompilado de cualquier version de un paquete, incluyendo versiones antigüas, se pueden obtener de snapshot.debian.org. Por ejemplo, mira el paquete plinth.

3. También puedes obtener los enlaces a la web del proyecto original, al control de versiones del proyecto original, al control de versiones de Debian, registro de cambios, etc. desde la página de control Debian para el proyecto en tracker.debian.org. Por ejemplo, mira la página de control para el paquete plinth.

4. Puedes compilar e instalar un paquete desde el control de versiones de Debian. Por ejemplo,

        git clone https://salsa.debian.org/freedombox-team/plinth
        cd plinth
        apt build-dep .
        dpkg-buildpackage -rfakeroot -uc
        dpkg -i ../plinth*.deb

#### Construyendo Imágenes de disco

También puedes construír imágenes de disco FreedomBox para varias platformas de hardware usando la herramienta freedom-maker. Esta también está disponible como paquete Debian y su código fuente se puede obtener empleando los métodos anteriores. Hay disponibles Instrucciones de Construcción para generar imágenes de disco incluídas en el código fuente del paquete freedom-maker.

Las imágenes de disco de FreedomBox se construyen y suben a los servidores oficiales empleando la infraestructura de integración contínua automatizada. Esta infraestructura está disponible también como código fuente y proporciona información precisa acerca de como se contruyen las imágenes de FreedomBox.

##### Imágenes U-boot sobre Pioneer Edition

Hay una excepción menor en el paquete u-boot que viene con el hardware que se vende como Kits de Servidor Casero FreedomBox Pioneer Edition. Contiene un parche pequeño pero importante que no está en el código fuente de Debian. Tanto el repositorio fuente de Debian u-boot como el parche de FreedomBox están disponibles como un repositorio aparte. Esperamos que en algún momento este parche esté integrado en u-boot de serie y este repositorio ya no sea necesario. Este paquete se puede compilar en una máquina Debian armhf como sigue (también se puede hacer compilación cruzada, simplemente sigue las instrucciones para compilación cruzada de paquetes Debian):

    apt install git git-buildpackage
    git clone https://salsa.debian.org/freedombox-team/u-boot.git
    cd u-boot
    pbuilder create --distribution=buster
    gbp buildpackage --git-pbuilder

El paquete u-boot Debian estará en u-boot-sunxi*.deb. Este paquete contendrá

    mkdir temp
    dpkg -x u-boot-suxi*.deb temp
    unxz <lime2_image_built_with_freedom_maker>
    dd if=temp/usr/lib/u-boot/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin of=<lime2.img> seek=8 bs=1k conv=notrunc

La imagen resultante tendrá el u-boot modificado.

## Apps

Add entries here sorted after the level 2 heading inside the page to keep the list alphabetically sorted Para mantener la lista ordenada alfabéticamente añade estas entradas según el título de nivel 2 de dentro de su página

### Sitios Web de Usuario (User websites) (userdir)

#### ¿Qué es User websites?

User websites es un módulo del servidor web Apache habilitado para permitir a los usuarios definidos en el sistema FreedomBox exponer un conjunto de archivos del sistema de ficheros de FreedomBox como sitio web a la red local y/o a internet de acuerdo a la configuración de la red y el cortafuegos.

Datos básicos de la aplicación
Categoría | Compartición de archivos
Disponible desde la versión | 0.9.4
Sitio web del proyecto original | https://httpd.apache.org/docs/2.4/mod/mod_userdir.html
Documentación original de usuario | https://httpd.apache.org/docs/2.4/howto/public_html.html

#### Captura de pantalla

Añadir cuando/si se crea un interfaz para Plinth

#### Usar User websites

El módulo está siempre activado y no ofrece configuración desde el interfaz web de Plinth. Actualmente ni siquiera muestra que exista.

Para servir documentos con el módulo solo se necesita poner los documentos en un subdirectorio designado `/home/<un_usuario_de_plinth>/public_html`.

`User websites` servirá los documentos que haya en este directorio cuando se reciban peticiones con la URI `~<un_usuario_de_plinth>`. Por tanto para un dominio `ejemplo.org` con un usuario `pepe` una petición `ejemplo.org/~pepe/index.html` transferirá el fichero `/home/pepe/public_html/index.html`.

#### Usar SFTP para crear public_html y subir archivos

Pendiente de redactar

### Red para el anonimato (Tor)

#### ¿Qué es Tor?

Tor es una red de servidores operada por voluntarios. Permite a los usuarios de esos servidores mejorar su privacidad y seguridad cuando navegan por Internet. Tu y tus amigos podéis acceder a tu FreedomBox a través de la red Tor sin revelar su dirección IP. Activando la aplicación Tor en tu FreedomBox podrás ofrecer servicios remotos (chat, wiki, file sharing, etc...) sin mostrar tu localización. Esta aplicación te dará una protección mejor que un servidor web público porque estarás menos expuesto a gente intrusiva.

#### Usar Tor para navegación anónima

Tor Browser es la manera recomendada para navegar la web a través de Tor. Puedes descargar Tor Browser desde https://www.torproject.org/projects/torbrowser.html y seguir sus instrucciones para instalarlo y ejecutarlo.

#### Usar Servicio Tor Onion para acceder a tu FreedomBox

El Servicio Tor Onion proporciona una manera de acceder a tu FreedomBox incluso aunque esté detrás de un router, cortafuegos, o redirector NAT (p.ej. si tu proveedor de Internet no proporciona una dirección pública IPv4 para tu router). Para habilitar el Servicio Tor Onion primero navega a la página Red para el anónimato (Tor). (Si no la ves haz clic en el logo de FreedomBox de arriba a la izquierda de la página y ve a la página principal de Apps.) En la página Red para el anónimato (Tor), bajo Configuración, habilita la caja Habilitar los Servicios Tor Onion y pulsa el botón de Actualizar configuración. Tor se reconfigurará y se reiniciará.

Transcurrido un rato la página se refrescará bajo Estado verás la tabla que lista la dirección .onion del servicio. Copia toda la dirección (que termina en .onion) y pégala en el campo dirección de Tor Browser. Deberías poder acceder a tu FreedomBox. (Quizá veas un aviso de certificado porque FreedomBox tiene un certificado autofirmado.)

- Onion

Actualmente solo HTTP (puerto 80), HTTPS (puerto 443) y SSH (puerto 22) están accesibles a través del Servicio Tor Onion configurado en la FreedomBox.

#### Apps accesibles via Tor

Las siguientes apps se pueden acceder a través de Tor. Esta lista puede ser incompleta.

- Calendario y Libreta de direcciones (Radicale)

- Sincronización de ficheros (Syncthing)

- Búsqueda Web (Searx)

- Wiki (MediaWiki)

- Wiki y Blog (Ikiwiki)

#### Ejecutar un nodo Tor

Cuando se instala Tor se configura por defecto para ejecutarse como puente a la red (bridge relay). Esta opción se puede deshabilitar en la página de configuración de Tor de Plinth.

En la parte inferior de página de Tor de Plinth hay una lista de puertos que usa el puente a la red Tor. Si tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos de tu router para que estos puertos sean accesibles desde Internet.

Los requisitos para ejecutar un puente a la red se listan en la Tor Relay Guide. En resúmen, se

- recomienda que un puente tenga disponibles para Tor al menos 16 Mbit/s (Mbps) de ancho de banda para subida y bajada. Mejor más.

- requiere que a se le permita al puente usar un mínimo de 100 GByte de tráfico mensual de salida y de entrada.

- recomienda que un nodo sin salida (mero reenrutador) de <40 Mbit/s tenga al menos 512 MB de RAM disponible; Uno más rápido de 40 Mbit/s debería tener al menos 1 GB de RAM.

#### Usar el puerto Tor SOCKS (avanzado)

FreedomBox proporciona un puerto Tor SOCKS al que pueden conectar otras aplicaciones para enrutar su tráfico a través de la red Tor. Este puerto es accesible a cualquier interfaz (de red) configurado en la zona interna del cortafuegos. Para configurar la aplicación apunta el Host SOCKS a la dirección IP interna de la conexión y pon el Puerto SOCKS a 9050.

##### Exjemplo con Firefox

Tu navegador web se puede configurar para emplear la red Tor para toda tu actividad de navegación. Esto permite eludir la censura y oculta tu dirección IP a los sitios web durante la navegación normal. Para anonimato se recomienda usar el Navegador Tor.

Configura tu dirección IP local de FreedomBox y el puerto 9050 como un proxy SOCKS en Firefox. Hay extensiones para facilitar la activación y desactivación del proxy.

Con en proxy SOCKS configurado puedes acceder cualquier URL de tipo onion diréctamente desde Firefox. FreedomBox tiene una dirección onion v3 propia a la que puedes conectarte por la red Tor (guárdala en tus favoritos para usarla en situaciones de emergencia).

#### Eludiendo la censura de Tor

Si tu proveedor de Internet (ISP) está tratando de bloquear el tráfico Tor puedes usar puentes (a la red Tor) para conectar (a la red Tor).

1. Obtén la configuración de los puentes de Tor BridgeDB

2. Añade las líneas a la configuración de Tor de tu FreedomBox como se muestra.

### BitTorrent (Transmission)

#### ¿Qué es Transmission ?

BitTorrent es un protocolo de comunicaciones para compartir ficheros entre pares (P2P = peer-to-peer). No es anónimo; debes asumir que otros puedan ver qué ficheros estás comprtiendo. Hay 2 clientes web para BitTorrent disponibles en FreedomBox: Transmission y Deluge. Tienen funcionalidades similares pero quizá prefieras uno sobre otro.

Transmission es un cliente BitTorrent ligero, famoso por su simplicidad y una configuración por defecto que "símplemente funciona".

#### Captura de pantalla

#### Usar Transmission

Tras instalar Transmission está accesible en `https://<tu freedombox>/transmission`. Transmission emplea el ingreso único de FreedomBox lo que significa que si has ingresado en tu FreedomBox puedes acceder diréctamente a Transmission sin tener que volver a introducir las credenciales. Si no, se te pedirá que ingreses primero y luego se te redirigirá a la app Transmission.

#### Consejos

##### Transferir Descargas desde la FreedomBox

- Se puede añadir el directorio de descargas de Transmission como directorio compartido en la app "Compartir" y así acceder a tus descargas en este directorio compartido empleando un navegador web.

- (Avanzado) Si tienes acceso SSH a tu FreedomBox puedes usar `sftp` para ver el directorio de descargas usando un gestor de archivos o un navegador apropiados (p.ej. dolphin o Konqueror).

### BitTorrent (Deluge)

#### ¿Qué es Deluge?

BitTorrent es un protocolo de comunicaciones para compartir ficheros entre pares (P2P = peer-to-peer). No es anónimo; debes asumir que otros puedan ver qué ficheros estás comprtiendo. Hay 2 clientes web para BitTorrent disponibles en FreedomBox: Transmission y Deluge. Tienen funcionalidades similares pero quizá prefieras uno sobre otro.

Deluge es un cliente BitTorrent altamente configurable. Se puede añadir funcionalidad adicional instalando extensiones (plugins).

#### Captura de pantalla

#### Configuración Inicial

Tras instalar Deluge se puede acceder apuntando tu navegador a `https://<tu freedombox>/deluge`. Necesitarás introducir una contraseña para ingresar:

La contraseña inicial es `deluge`. La primera vez que ingreses Deluge te preguntará si quieres cambiarla. Debes cambiarla por algo más dificil de adivinar.

A continuación se te mostrará el administrador de conexiones. Haz clic sobre la primera entrada (Offline - 127.0.0.1:58846). Luego pulsa "Arrancar el Demonio" para que arranque el servicio Deluge service que se ejecutará en segundo plano.

Ahora debería poner "Online". Haz clic en "Conectar" para completar la configuración.

En este punto ya estás usando Deluge. Puedes hacer más cambios en las Preferencias o añadir un fichero o una URL de torrent.

### Block Sandbox (Minetest)

Minetest es un Block Sandbox multijugador para mundos infinitos. Este módulo permite ejecutar el servidor `Minetest` en esta FreedomBox, en su puerto por defecto (30000). Para conectar al servidor se necesita un cliente de Minetest.

#### Enrutado de Puertos

Si tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos en tu router para los siguientes puertos de Minetest:

- UDP 30000

### Agenda (Radicale)

Con Radicale puedes sincronizar tus calendarios, listas de tareas y agendas de contactos personales entre varios ordendores, tabletas, y/o teléfonos inteligentes y compartirlos con tus amistades. Todo sin tener que permitir a terceros que accedan a tu información privada.

#### ¿Porque debería usar Radicale?

Usando Radicale puedes evitar servicios centralizados como Google Calendar o Apple Calendar (iCloud) que explotan los datos de tus eventos y conexiones sociales.

#### ¿Cómo configurar Radicale?

Primero el servidor Radicale necesita estar activado en tu FreedomBox.

- En el servicio FreedomBox (Plinth)

  1. selecciona Apps

  2. ve a Radicale (Calendario y Libreta de contactos) e

  3. instala la aplicación. Tras completar la instalación asegúrate de que la aplicación está marcada como "habilitada" en el interfaz de FreedomBox. Habilitar la aplicación arranca el servidor CalDAV/CardDAV Radicale.

  4. define los permisos de acceso:

     - Solo el dueño de un calendario/libreta de contactos puede ver o hacer cambios

     - Cualquier usuario puede ver cualquier calendario/libreta de contactos pero solo el dueño puede hacer cambios

     - Cualquier usuario puede ver o hacer cambios en cualquier calendario/libreta

Nota: Solo los usuarios dados de alta en FreedomBox pueden acceder a Radicale.

Si quieres compartir un calendario solo con algunos usuarios determinados la manera más simple es crear un nuevo usuario común para ellos y compartir con ellos el nombre del usuario común y su contraseña.

Radicale proporciona un interfaz web básico que solo soporta crear calendarios y libretas nuevos. Para añadir eventos o contactos se necesita una aplicación cliente soportada externa.

- Crear calendarios y/o libretas usando el interfaz web

  1. Visita `https://<dirección_IP_o_dominio_de_tu_servidor>/radicale/`

  2. Ingresa con tu cuenta de FreedomBox

  3. Selecciona "Crear nuevo calendario o libreta"

  4. Proporciona un título y selecciona el tipo

  5. Opcionalmente, proporciona una descripción o selecciona un color

  6. Haz clic en "Crear"

  7. La página mostrará la URL de tu created nuevo calendario o libreta

Ahora abre tu aplicación cliente para crear calendarios y/o libretas nuevos que usarán tu FreedomBox y servidor Radicale. El sitio web de Radicale proporciona una lista de clientes soportados pero no uses las URLs que se mencionan allí; sigue este manual porque FreedomBox usa otra configuración. A continuación se muestran los pasos para 2 ejemplos:

- Ejemplo de configuración con el cliente Evolution:

  - Calendario

    1. Crea un calendario nuevo

    2. Selecciona el "Tipo" "CalDAV"

    3. Con "CalDAV" seleccionado aparecerán más opciones en el cuadro de diálogo.

    4. URL: `https://<dirección_IP_o_dominio_de_tu_servidor>/radicale/<usuario>/<nombre_del_calendario>.ics/` cambiando los elementos marcados entre `<>` de acuerdo a tu configuración.

       - nota: la `/` inicial de la ruta es importante.

    5. Habilita "Usar una conexión segura."

    6. Nombre del calendario

  - Lista de tareas: Añadir una lista de tareas es prácticamente igual que con un calendario.

  - Contactos

    - Sigue los mismos pasos anteriores reemplazando CalDAV por WebDAV y la extensión de la libreta por `.vcf`.

#### Sincronizar via Tor

Configurar un calendario en Plinth con Radicale sobre Tor es lo mismo que sobre la red en claro, en resumen:

1. Cuando hayas ingresado a Plinth desde Tor haz clic en Radicale e introduce un usuario de tu FreedomBox y su contraseña.

2. Ingresa en el interfaz web de Radicale usando el usuario de tu FreedomBox y su contraseña.

3. Haz clic en "Crear libreta o calendario nuevo", proporciona un título, selecciona un tipo y haz clic en "Crear".

4. Anota la URL, p.ej. `https://<direccion_onion_de_tu_servidor>.onion/radicale/<usuario>/<código_del_calendario>/` cambiando los elementos marcados entre `<>` de acuerdo a tu configuración.

Estas instrucciones son para Thunderbird/Lightning. Nota: necesitarás estar conectado a Tor con el `Tor Browser Bundle`.

1. Abre Thunderbird, la extensión (add-on) Torbirdy y reinicia Thunderbird. (Quizá no haga falta.)

2. En el interfaz Lightning, en el panel izquierdo bajo Calendario haz clic con el botón derecho del ratón y selecciona "Nuevo calendario".

3. Selecciona "En la red" como localización de tu calendario.

4. Selecciona "CalDAV" copia la URL, p.ej., `https://<direccion_onion_de_tu_servidor>.onion/radicale/<usuario>/<código_del_calendario>/`. como localización cambiando los elementos marcados entre `<>` de acuerdo a tu configuración.

5. Proporciona un nombre, etc. Haz clic en "Siguiente". Tu calendario está ahora sincronizando con tu FreedomBox a través de Tor.

6. Si no has generado un certificado con "Let's Encrypt" para tu FreedomBox quizá necesites seleccionar "Confirmar Excepción de Seguridad" cuando se te indique.

#### Sincronizar con tu teléfono Android

Hay varias Apps que admiten integración con el servidor Radicale. Este ejemplo usa `DAVx5`, que está disponible p.ej. en F-Droid. Si también quieres usar listas de tareas hay que instalar primero la app compatible OpenTasks.

Sigue estos pasos para configurar tu cuanta con el servidor Radicale de tu FreedomBox.

1. Instala DAVx5.

2. Crea una cuenta nueva en DAVx5 haciendo clic en el botón flotante [+].

3. Selecciona la 2ª opción como se muestra en la primera imagen más abajo e introduce la URL base https://<dirección_de_tu_freedombox>/radicale/<usuario>/ (no olvides la `/` del final). DAVx5 averiguará las cuentas CalDAV y WebDAV del usuario.

4. Sigue este video del FAQ de DAVx5 para aprender cómo importar tus contactos existentes a Radicale.

Sincronizar contactos

1. Haz clic en los menús de hamburguesa de CalDAV y CardDAV y selecciona "Refrescar ..." en caso de cuentas existentes o "Crear ..." en caso de cuentas nuevas (ver la 2ª captura de pantalla más abajo).

2. Marca las cajas de las libretas y/o contactos que quieras sincronizar y haz clic en el botón de sincronización de la cabecera. (ver la 3ª captura de pantalla más abajo)

#### Usuarios Avanzados

##### Compartir recursos

Arriba se mostrá una manera fácil de crear un recurso para un grupo de gente creando una cuenta dedicada común. Aquí de describe un método alternativo con el que se otorga acceso a un calendario a 2 usuarios `Usuario1` y `Usuario2`. Esto requiere acceso por SSH a la FreedomBox.

1. crea un archivo `/etc/radicale/rights`

   -     [friends_calendar]
         user: ^(Usuario1|Usuario2)$
         collection: ^.*/calendario_de_mis_amigos.ics$
         permission: rw

         # Dar permisos de escritura a los dueños:
         [owner-write]
         user: .+
         collection: ^%(login)s/.+$
         permission: rw

   - `[calendario_de_mis_amigos]` es solo un identificador, puede ser cualquier nombre.

   - La sección `[owner-write]` asegura que los dueños tengan acceso a sus propios archivos.

2. Edita el archivo `/etc/radicale/config` y haz los siguientes cambios en la sección `[rights)`

   -     [rights]
         type = from_file
         file = /etc/radicale/rights

3. Reinicia el servidor Radicale o la FreedomBox

##### Importar archivos

Si estás usando un archivo de contactos exportado desde otro servicio o aplicación hay que copiarlo a: /var/lib/radicale/collections/<usuario>/<nombre_del_archivo_de_contactos>'.vcf.

#### Migrar desde Radicale versión 1.x a versión 2.x

En Febrero de 2019 se actualizó Radicale en las versiones "en pruebas" (testing) de Debian desde la versión 1.x a la 2.x. La versión 2.x es mejor pero incompatible con los datos y la configuración empleados en la 1.x. El mecanismo automático de actualización de FreedomBox que emplean las actualizaciones desatendidas no actualiza automaticamente la version 2.x de Radicale debido a cambios en los archivos de configuración. No obstante la version 19.1 de FreedomBox, disponible en en las versiones "en pruebas" (testing) desde el 23 de Febrero de 2019, realizará la migración de los datos y la configuración a la versión 2.x de Radicale. No se requiere ninguna acción por parte de los usuarios típicos. Ocurrirá automáticamente.

Si por algún motivo necesitas ejecutar a mano `apt dist-upgrade` en tu máquina Radicale se actualizará a 2.x y entonces tu FreedomBox no podrá ejecutar esta actualización (ya que el proyecto de origen decidió eliminar las herramientas de migración de la versión 2.x de Radicale). Para evitar esta situación se recomienda el siguiente procedimiento para actualizar.

    sudo su -
    apt hold radicale
    apt dist-upgrade
    apt unhold radicale

En cualquier caso, si ya has actualizado a Radicale 2.x sin ayuda de FreedomBox necesitas realizar la migración de los datos y la configuración por tí mismo. Sigue este procedimiento:

    sudo su -
    tar -cvzf /root/radicale_backup.tgz /var/lib/radicale/ /etc/radicale/ /etc/default/radicale
    apt install -y python-radicale
    python -m radicale --export-storage=/root/radicale-migration
    cp -dpR /root/radicale-migration/collection-root /var/lib/radicale/collections/collection-root/
    (elimina este directorio si ya existe. O mezcla los contenidos.)
    chown -R radicale:radicale /var/lib/radicale/collections/collection-root/
    apt remove -y python-radicale
    if [ -f /etc/radicale/config.dpkg-dist ] ; then cp /etc/radicale/config.dpkg-dist /etc/radicale/config ; fi
    if [ -f /etc/default/radicale.dpkg-dist ] ; then cp /etc/default/radicale.dpkg-dist /etc/default/radicale ; fi
    (Cuando FreedomBox 19.1 está disponble ve al interfaz web de FreedomBox y vuelve a configurar tu preferencia de compartición de calendario si no se muestra bien porque se habrá perdido durante la operación.)

Notas:

- `python-radicale` es un paquete antigüo de la versión 1.x de Radicale que sigue disponible en las versiones "en pruebas" (testing) de Debian. Esto es un hack alternativo para emplear la funcionalidad `--export-storage` que es responsable de la migración de datos. Por desgracia esta funcionalidad ya no está disponible en Radicale 2.x.

- Los ficheros que acaban en `.dpkg-dist` solo existirán si has elegido "Conservar tu versión actualmente instalada" cuando se te preguntó durante la actualización a Radicale 2.x. El procedimiento anterior sobrescribirá la configuración antigüa con una nueva. No se necesitan cambios a los 2 ficheros de configuración salvo que hayas cambiado la preferencia de compartición de calendario.

- Nota: Durante la migración tus datos permanecen a salvo en el directorio `/var/lib/radicale/collections`. Los datos nuevos se crearán y usarán en el directorio `/var/lib/radicale/collections/collections-root/`.

- El comando `tar` hace una copia de seguridad de tu configuración y tus datos en `/root/radicale_backup.tgz` por si haces o algo va mal y quieres deshacer los cambios.

#### Resolución de Problemas

1. Si estás usando FreedomBox Pioneer Edition o instalando FreedomBox sobre Debian Buster Radicale podría no estar operativo inmediatamente después de la instalación. Esto se debe a un defecto ya corregido posteriormente. Para superar el problema actualiza FreedomBox haciendo clic en 'Actualización Manual' desde la app 'Actualizaciones'. Otra opción es simplemente esperar un par de días y dejar que FreedomBox se actualice solo. Después instala Radicale. Si Radicale ya está instalado deshabilitalo y rehabilitalo después de que se complete la actualización. Esto arreglará el problema y dejará a Radicale trabajando correctamente.

### Servidor de Mensajería Instantánea (chat) (ejabberd)

#### ¿Qué es XMPP?

XMPP es un protocolo federatedo para Mensajería Instantánea. Esto significa que los usuarios que tengan cuenta en un servidor XMPP pueden conversar con los usuarios que estén en el mismo u otros servidores XMPP. XMPP se puede usar también para llamadas de voz y vídeo si los clientes las soportan.

Con XMPP las conversaciones se pueden securizar de 2 maneras:

1. TLS: Esto securiza la conexión entre el cliente y el servidor o entre 2 servidores. Esto está áltamente recomendado y ya debería estar soportado por todos los clientes.

2. Punto a punto: Esto securiza los mensajes enviados entre los clientes de modo que ni siquiera el servidor pueda ver los contenidos. El último protocolo y también el más cómodo se llama OMEMO pero solo lo soportan algunos clientes. Algunos clientes que no soportan OMEMO podrían soportar otro protocolo llamado OTR. Para que funcione ambos clientes tienen que ser compatibles con el mismo protocolo.

#### Estableciendo un Nombre de Dominio

Para que funcione XMPP tu FreedomBox necesita tener Nombre de Dominio accesible desde Internet. Puedes leer acerca de la obtención de un Nombre de Dominio en la sección DNS Dinámico de este manual.

Una vez tengas ya tu Nombre de Dominio puedes decirle a tu FreedomBox que lo use dándolo de alta en la configuración del sistema.

- Nota: Tras cambiar tu Nombre de Dominio la página del servidor (XMPP) de mensajería instantánea podría mostrar que el servicio no está funcionando. En un minuto más o menos se actualizará y lo volverá a mostrar operativo.

Ten en cuenta que de momento PageKite no soporta el protocolo XMPP.

#### Registrando los usuarios XMPP mediante SSO

Actualmente todos los usuarios creados con Plinth podrán ingresar al servidor XMPP. Puedes añadir usuarios nuevos con el módulo de "Usuarios y Grupos del Sistema". Los grupos seleccionados para el usuario nuevo no importan.

#### Usar el cliente web

Tras completar la instalación del módulo XMPP el cliente web JSXC para XMPP está accesible en `https://<tu_freedombox>/plinth/apps/xmpp/jsxc/`. Automáticamente comprobará la conexión del servidor BOSH al nombre de dominio configurado.

#### Usar un cliente móvil o de escritorio

Hay disponibles clientes XMPP para varias platformas móviles y de escritorio.

#### Enrutado de Puertos

Si tu FreedomBox está detrás de un router tendrás que configurar en él la redirección de puertos. Redirije los siguientes puertos de XMPP:

- TCP 5222 (cliente-a-servidor)

- TCP 5269 (servidor-a-servidor)

### Servidor de Mensajería Instantánea (chat) (Matrix Synapse)

#### ¿Qué es Matrix?

Matrix es un estándar abierto para comunicaciones sobre IP en tiempo real interoperables y descentralizadas. Synapse es la implementación de referencia de un servidor Matrix. Se puede usar para montar mensajería instantánea sobre FreedomBox para albergar grandes salones de chat, comunicaciones cifradas punto a punto y llamadas de audio/vídeo. Matrix Synapse es una aplicación federada en la que puede haber salas de chat en un servidor y los usuarios de cualquier otro servidor de la red federada pueden unirse a ellas. Más información acerca de Matrix.

Disponible desde: versión 0.14.0

#### ¿Cómo acceder a tu servidor Matrix Synapse?

Para acceder al servidor Matrix Synapse recomendamos el cliente Riot. Puedes descargar Riot para escritorio. Las aplicaciones para Android e iOS están disponibles en sus tiendas (app stores) respectivas.

#### Configurar Matrix Synapse en tu FreedomBox

Para habilitar Matrix, primero navega a la página de tu servidor de chat (Matrix Synapse) e instálalo. Matrix necesita un nombre de dominio válido configurado. Tras la instalación, se te pedirá que lo configures seleccionandolo de entre un menú desplegable con dominios disponibles. Los dominios se configuran en la página Sistema -> Configuración. Tras configurar un dominio verás que el servicio se está ejecutando. El servicio estará accesible en el dominio de FreedomBox configurado. Todos los usuarios registrados tendrán sus IDs Matrix `@usuario:dominio`. Actualmente no podrás cambiar el dominio una vez esté configurado.

#### Federarse con otras instancias Matrix

Podrás interactuar con cualquier otra persona que ejecute otra instancia de Matrix. Esto se hace simplemente iniciando una conversación con ellos usando su matrix ID que seguirá el formato `@su-usuario:su-dominio`. También podrás unirte a salas de otros servidores y tener llamadas de audio/video con contactos de otros servidores.

#### Uso de Memoria

El servidor de referencia Synapse implementado en Python es conocido por consumir mucha RAM, especialmente al cargar salones grandes con miles de participantes como #matrix:matrix.org. Se recomienda evitar unirse a estos salones si tu dispositivo FreedomBox solo tiene 1 GiB RAM o menos. Debería ser seguro unirse a salas con hasta 100 participantes. El equipo de Matrix está trabajando en una implementación de servidor Matrix escrita en Go llamada Dendrite que debería tener mejor rendimiento en entornos con poca memoria.

Algunos salones públicos muy grandes de la red Matrix están también disponibles como canales IRC (p.ej. #freedombox:matrix.org está disponible también como #freedombox en irc.debian.org). Es mejor usar IRC en vez de Matrix para estos salones tán grandes. Puedes unirte a los canales de IRC usando Quassel.

#### Uso Avanzado

1. Si quieres crear una gran cantidad de usuarios en tu servidor de Matrix Synapse usa los siguientes comandos en una shell remota como usuario root:

   -     cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1 | sed "s+^+registration_shared_secret: +" > /etc/matrix-synapse/conf.d/registration_shared_secret.yaml
         chmod 600 /etc/matrix-synapse/conf.d/registration_shared_secret.yaml
         chown matrix-synapse:nogroup /etc/matrix-synapse/conf.d/registration_shared_secret.yaml
         systemctl restart matrix-synapse
         register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml

2. Si quieres ver la lista de usuarios registrados en Matrix Syanpse haz lo siguiente como usuario root:

   -     apt install sqlite3
         echo 'select name from users' | sqlite3 /var/lib/matrix-synapse/homeserver.db

3. Para crear una comunidad en Matrix Synapse se necesita un usuario Matrix con privilegios de admin en el servidor. Para dárselos a `miusuario` ejecuta los siguientes comandos como usuario root:

   -     sudo apt install sqlite3
         echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 /var/lib/matrix-synapse/homeserver.db

### Cliente de Correo Electrónico (Email) (Roundcube)

#### ¿Qué es Roundcube?

Roundcube es un cliente de correo electrónico (email) para navegador con un interfaz de usuario parecido a una aplicación de escritorio. Admite varios lenguajes. Roundcube usa el protocolo de acceso a mensajes de Internet (IMAP = Internet Message Access Protocol) para acceder a los correos en un servidor remoto. Soporta MIME para enviar archivos adjuntos y en particular proporciona libreta de contactos, gestión de carpetas, búsquedas de mensajes y verificación ortográfica.

#### Usar Roundcube

Tras instalar Roundcube se puede acceder a él en `https://<tu_freedombox>/roundcube`. Introduce tu usuario y contraseña. El usuario de muchos servicios de correo electrónico suele ser la propia dirección completa, como usuario_de_ejemplo@servicio_de_ejemplo.org, no solo el usuario usuario_de_ejemplo. Introduce la dirección del servidor IMAP de tu servicio de correo electrónico en el campo Servidor. Puedes probar a poner aquí tu nombre de dominio como servicio_de_ejemplo.org si la dirección es usuario_de_ejemplo@servicio_de_ejemplo.org y si esto no funciona consulta la dirección del servidor IMAP en la documentación de tu proveedor de correo electrónico. Se recomienda encarecidamente usar una conexión cifrada a tu servidor IMAP. Para ello inserta el prefijo "imaps://" al principio de la dirección del servidor IMAP. Por ejemplo, `imaps://imap.servicio_de_ejemplo.org`.

#### Usar Gmail con Roundcube

Si quieres usar Roundcube con tu cuenta Gmail necesitas habilitar primero el ingreso con contraseña en las preferencias de tu cuenta Google porque Gmail no va a permitir por defecto que ingresen aplicaciones mediante contraseña. Para hacerlo visita las preferencias de la Cuenta Google y habilita Apps Menos seguras. A continuación ingresa en Roundcube introduciendo tu dirección de Gmail como Usuario y tu contraseña. En el campo servidor pon `imaps://imap.gmail.com`.

### Compartición de Archivos (Coquelicot)

#### Acerca de Coquelicot

Coquelicot es aplicación web para compartir archivos enfocada a proteger la privacidad de sus usuarios. El principio básico es simple: los usuarios pueden subir un archivo al servidor y a cambio reciben una URL única para descargarlo que se puede compartir con terceros. Además se puede establecer una contraseña para reforzar el acceso.

Más información acerca de Coquelicot en su LEEME

Disponible desde: versión 0.24.0

#### Cuando usar Coquelicot

El mejor uso de Coquelicot es para compartir rápidamente un archivo suelto. Si quieres compartir una carpeta...

- ...para usar y tirar, comprime la carpeta y compartela como archivo con Coquelicot

- ...que deba mantenerse sincronizada entre ordenadores usa mejor Syncthing

Coquelicot también puede proporcionar un grado de privacidad razonable. Si se necesita anonimato mejor sopesas emplear la aplicación de escritorio Onionshare.

Como Coquelicot carga todo el archivo al servidor tu FreedomBox consumirá ancho de banda tanto para la subida como para la descarga. Para archivos muy grandes sopesa compartirlos creando un fichero BitTorrent privado. Si se necesita anonimato usa Onionshare. Es P2P y no necesita servidor.

#### Coquelicot en FreedomBox

Con Coquelicot instalado puedes subir archivos a tu servidor FreedomBox y compartirlos en privado.

Tras la instalación la página de Coquelicot ofrece 2 preferencias.

1. Contraseña de Subida: Actualmente y por facilidad de uso Coquelicot está configurado en FreedomBox para usar autenticación simple por contraseña. Recuerda que se trata de una contraseña global para esta instancia de Coquelicot y no tu contraseña de usuario para FreedomBox. Tienes que acordarte de esta contraseña. Puedes establecer otra en cualquier momento desde el interfaz Plinth.

2. Tamaño Máximo de Archivo: Puedes alterar el tamaño máximo de los archivos a transferir mediante Coquelicot usando esta preferencia. El tamaño se expresa en Mebibytes y el máximo solo está limitado por el espacio en disco de tu FreedomBox.

#### Privacidad

Alguien que monitorice tu tráfico de red podría averiguar que se está transfiriendo un archivo en tu FreedomBox y posiblemente también su tamaño pero no sabrá su nombre. Coquelicot cifra los archivos en el servidor y sobrescribe los contenidos con 0s al borrarlos, eliminando el riesgo de que se desvelen los contenidos del fichero si tu FreedomBox resultara confiscada o robada. El riesgo real que hay que mitigar es que además del destinatario legítimo un tercero también descargue tu fichero.

##### Compartir mediante mensajería instantánea

Algunas aplicaciones de mensajería instantánea con vista previa de sitios web podrían descargar tu fichero para mostrarla (su vista previa) en la conversación. Si configuras la opción de descarga única para un archivo podrías notar que la aplicación de mensajería consume la única descarga. Si compartes mediante estas aplicaciones usa una contraseña de descarga en combinación con la opción de descarga única.

##### Compartir en privado enlaces de descarga

Se recomienda compartir las contraseñas y los enlaces de descarga de tus archivos por canales cifrados. Puedes evitar todos los problemas anteriores con las vistas previas de la mensajería instantánea símplemente empleando aplicaciones de mensajería que soporten conversaciones cifradas como Riot con Matrix Synapse o XMPP (servidor ejabberd en FreedomBox) con clientes que soporten cifrado punto a punto. Envía la contraseña y el enlace de descarga separados en 2 mensajes distintos (ayuda que tu aplicación de mensajería soporte perfect forward secrecy como XMPP con OTR). También puedes compartir tus enlaces por correo electrónico cifrado con PGP usando Thunderbird.

### Compartición de Archivos (MLDonkey)

#### ¿Qué es MLDonkey?

MLDonkey es una aplicación libre y multiprotocolo para compartir archivos entre pares (P2P) que ejecuta un servidor back-end sobre muchas plataformas. Se puede controlar mediante algún interfaz front-end, ya sea web, telnet o cualquier otro de entre una docena de programas cliente nativos.

Originalmente era un cliente Linux para el protocolo eDonkey pero ahora se ejecuta en multiples sabores de Unix y derivados, OS X, Microsoft Windows y MorphOS. Y soporta muchos protocolos P2P, incluyendo ED2K (y Kademlia sobre Overnet), BitTorrent, DC++ y más.

Más información acerca de MLDonkey en el Wiki del Proyecto MLDonkey

Disponible desde: versión 0.48.0

#### Captura de Pantalla

#### Usar el Interfaz Web MLDonkey

Tras instalar MLDonkey su interfaz web está accesible a los usuarios de los grupos ed2k y admin en `https://<tu_freedombox>/mldonkey`.

#### Usar el Interfaz para Escritorio/Móvil

Se pueden usar muchas aplicaciones de escritorio y móviles para controlar a MLDonkey. El servidor MLDonkey estará ejecutándose siempre en la FreedomBox y (cargará o) descargará archivos y los mantendrá almacenados incluso cuando tu máquina local esté apagada o desconectada del MLDonkey de FreedomBox. Por restricciones de acceso via SSH a la FreedomBox solo los usuarios del grupo admin pueden acceder a su MLDonkey.

1. Crea un usuario nuevo en el grupo admin o usa uno que ya esté allí.

2. En tu máquina de escritorio abre una terminal y ejecuta el siguiente comando. Para este paso se recomienda que configures y uses claves SSH en vez de contraseñas.

       $ ssh -L 4001:localhost:4001 -N usuario_de_ejemplo@ejemplo.freedombox.mola

3. Arranca la aplicación gráfica y conéctala a MLDonkey como si MLDonkey se estuviera ejecutando en la máquina local de escritorio. Cuando hayas terminado mata el proceso SSH pulsando Control-C.

Para más información lee acerca de los túneles SSH en la documentación MLDonkey.

### Sincronización de Archivos (Syncthing)

Con Syncthing instalado en tu FreedomBox puedes sincronizar contenido desde otros dispositivos a tu FreedomBox y vice-versa. Por ejemplo puedes mantener sincronizadas las fotos tomadas desde tu teléfono móvil con tu FreedomBox.

Disponible desde versión: 0.14.

Syncthing es una solución de sincronización entre pares, no una de tipo cliente-servidor. Esto implica que FreedomBox no es realmente el servidor y tus otros dispositivos no son sus clientes. Desde la perspectiva de Syncthing todos son dispositivos equivalentes. Puedes emplear Syncthing para sincronizar tus archivos entre cualquiera de tus dispositivos. La ventaja que aporta FreedomBox consiste en que como es un servidor está encendida (casi) siempre. Supón que quieres sincronizar las fotos de tu teléfono con tu portátil. Si sincronizas tu teléfono con FreedomBox el portátil podrá obtenerlas desde la FreedomBox cuando vuelva a conectarse. No necesitas preocuparte de cuando se conectan los otros dispositivos. Si tu FreedomBox es uno de los dispositivos configurados con la carpeta compartida de Syncthing puedes estár tranquilo que tus otros dispositivos se sincronizarán en cuanto se conecten.

Tras instalarlo sigue estas instrucciones del proyecto Syncthing: Arrancando.

Syncthing permite compartir selectivamente carpetas individuales. Antes de compartir los dispositivos tienen que estar emparejados leyendo códigos QR o introduciendo manualmente identificadores de dispositivo. Syncthing tiene un servicio de autodescubrimiento para identicar fácilmente a los otros dispositivos de la misma subred que tengan Syncthing instalado.

Para acceder al cliente web de la instancia Syncthing que se ejecuta en tu FreedomBox, usa la ruta `/syncthing`. Actualmente este cliente web está accesible solo a los usuarios de FreedomBox que tengan privilegios de administrador aunque en alguna futura versión podría estarlo a todos los usuarios de FreedomBox.

Syncthing tiene apps Android disponibles en F-Droid y Google Play. También hay disponibles aplicaciones de escritorio multiplataforma.

Para más información acerca de Syncthing visita su sitio web oficial y su documentación.

#### Sincronizar via Tor

Syncthing debe sincronizar automáticamente con tu FreedomBox incluso cuando esta solo sea accesible como servicio Tor Onion.

Si quieres enrutar tu cliente Syncthing via Tor configura la variable de entorno `all_proxy`:

    $ all_proxy=socks5://localhost:9050 syncthing

Para más información mira la documentación de Syncthing acerca de el uso de proxies.

#### Evitar repetidores de Syncthing

Syncthing emplea por defecto conexiones dinámicas para conectar con otros pares. Esto significa que si estás sincronizando a través de Internet, los datos quizá tengan que atravesar repetidores de Syncthing públicos para alcanzar tus dispositivos. Esto desaprovecha que tu FreedomBox tenga una dirección IP pública.

Al añadir tu FreedomBox como dispositivo en otros clientes de Syncthing establece tu dirección como "tcp://<mi.dominio.freedombox>" en vez de "dinámica". Esto permite a tus pares Syncthing conectarse diréctamente a tu FreedomBox eludiendo la necesidad de repetidores. También permite sincronización rápida bajo demanda si no quieres mantener a Syncthing ejecuándose todo el tiempo en tus dispositivos móviles.

### Sincronización de Archivos (Samba)

Samba te permite tener una carpeta compartida en la red local que se puede usar desde multiples ordenadores con sistemas operativos diferentes. De ahora en adelante nos referiremos a estas carpetas como "shares". Puedes tener una carpeta personal compartida por tus propios dispositivos (share casero), una compartida con un grupo de confianza (share de grupo) o una compartida con todo dispositivo de la red (share abierto).

Samba te permite tratar un share como si fuera una carpeta local de tu ordenador. No obstante los shares solo están disponibles en la red local.

Para aprender más acerca de Samba, mira la documentación de usuario de su wiki.

Disponible desde la versión: 19.22

#### Usar Samba

Tras la instalación, puedes elegir qué discos compartir. Los shares habilitados están accesibles en el administrador de archivos de tu ordenador en la ruta \\freedombox (en Windows) o smb://freedombox.local (en Linux y Mac). Hay 3 tipos de share para elegir:

- Share abierto - accesible a cualquiera en tu red local.

- Share de grupo - accesible solo a usuarios FreedomBox que estén en el grupo freedombox-share.

- Share casero - cada usuario del grupo freedombox-share puede tener su propio espacio privado.

##### En Android

Para acceder a shares Samba desde un dispositivo Android instala el "Cliente Samba para Android" desde F-Droid o Google Play. Introduce smb://freedombox.local/<disco> como ruta del share en la app. Tus carpetas compartidas deberían estar visibles en la app de administración de archivos.

#### Integración con otras apps

La app Transmission de FreedomBox proporciona una configuración para permitir que las descargas se graben directamente en un share Samba.

#### Comparación con otras apps

##### Syncthing

Syncthing mantiene una copia de la carpeta compartida en cada dispositivo con el que se comparte. Samba mantiene solo una copy en tu dispositivo FreedomBox.

Syncthing puede sincronizar tus carpetas compartidas entre dispositivos por Internet. Los shares Samba solo están disponibles en tu red local.

Como Syncthing es primordialmente una solución de sincronización, tiene funcionalidades como resolución de conflictos y versionado. Samba solo tiene una copia del fichero, así que no necesita tales funcionalidades. Por ejemplo, si dos personas están editando una hoja de cálculo almacenada en un share Samba el último que grabe el fichero gana.

### Servidor Gobby (infinoted)

Infinoted es un servidor de edición colaborativa de textos para Gobby.

Para usarlo descarga el cliente Gobby para escritorio e instalalo. Inicialo, selecciona "Conectar a un Servidor" e introduce el nombre de dominio de tu FreedomBox.

#### Redirección de Puertos

Si tu FreedomBox está detras de un router necesitarás configurar la redirección de puertos en tu router. Redirije los siguientes puertos de infinoted:

- TCP 6523

### Cliente IRC (Quassel)

Quassel es una aplicación IRC separada en 2 partes: un "núcleo" y un "cliente". Esto permite que el núcleo permanezca conectado a los servidores IRC recibiendo mensajes aunque el cliente esté desconectado. Ejecutando el servicio nucleo de Quassel FreedomBox puede mantenerte siempre en línea. Se pueden usar uno o varios clentes Quassel para conectarse intermitentemente desde escritorios o dispositivos móviles.

#### ¿Para qué ejecutar Quassel?

Muchos debates acerca de FreedomBox tienen lugar en el canal IRC `irc://irc.debian.org/freedombox`. Si tu FreedomBox ejecuta Quassel recolectará todos ellos mientras estás ausente, capturando las respuestas a tus preguntas. Recuerda que el proyecto FreedomBox es mundial y participa gente de casi todos los husos horarios. Usarás tu cliente para conectar al núcleo de Quassel y leer y/o responder cuando tengas tiempo y disponibilidad.

#### ¿Cómo activar Quassel?

- En Plinth

  1. selecciona Aplicaciones

  2. ve a Cliente IRC (Quassel) e

  3. instala la aplicación y asegúrate de que está habilitada

  4. tu núcleo de Quassel se está ejecutando

#### Redirección de Puertos

Si tu FreedomBox está detras de un router necesitarás configurar la redirección de puertos en tu router. Redirije los siguientes puertos de Quassel:

- TCP 4242

- Ejemplo de configuración en el router:

#### Clientes

Hay disponibles clientes para escritorio y dispositivos móviles para conectar a Quassel.

##### Escritorio

En un sistema Debian puedes, p. ej. usar quassel-client. Los siguientes pasos describen cómo conectar el Cliente Quassel con el Núcleo de Quassel de tu FreedomBox. La primera vez que te conectes el Núcleo de Quassel se inicializará también.

1. Abre el Cliente Quassel. Te guiará paso a paso para `Conectar con el Núcleo`.

2. Haz clic en el botón `Añadir` para abrir el diálogo `Añadir Cuenta al Núcleo`.

3. Rellena cualquier cosa en el campo `Nombre de Cuenta`. Introduce el hostname DNS de tu FreedomBox en el campo `Hostname`. El campo `Puerto` debe tener el valor `4242`. Pon el usuario y la contraseña de la cuenta que quieres crear para conectar con el Núcleo de Quassel en los campos `Usuario` y `Contraseña`. Si no quieres que se te pida la contraseña cada vez que arranques el cliente de Quassel marca la opción `Recordarme`.

4. Tras pulsar `OK` en el diálogo `Añadir Cuenta al Núcleo` deberías ver la cuenta en el diálogo `Conectar con el Núcleo`.

5. Selecciona la cuenta del núcleo recién creada y dale a `OK` para conectar con él.

6. Si es la primera vez que te conectas a este núcleo verás un aviso de `Certificado de Seguridad Desconocido` y necesitarás aceptar el certificado del servidor.

7. Selecciona `Continuar`. Se te preguntará si quieres aceptar el certificado permanentemente. Selecciona `Para siempre`.

8. Si nadie se ha conectado nunca antes a este Núcleo Quassel antes verás un diálogo por pasos `Asistente de Configuración del Núcleo`. Selecciona `Siguiente`.

9. En la página `Crear Usuario Administrador` introduce el usuario y la contraseña que has usado antes para crear la conexión al núcleo. Selecciona `Recordar contraseña` para que recuerde la contraseña para futuras sesiones. Haz clic en `Siguiente`.

10. En la página `Seleccionar Backend de Almacenamiento` selecciona `SQLite` y haz clic en `Confirmar`.

11. La configuración del núcleo está completa y verás un asistente `Quassel IRC` para configurar tus conexiones IRC. Haz clic en `Siguiente`.

12. A continuación en la página de `Configuración de Identidad` pon un nombre y múltiples pseudónimos. Te presentarás con estos a otros usuarios de IRC. No es necesario dar tu nombre real. Los pseudónimos múltipes son útiles como suplentes cuando el primero no se pueda usar por cualquier motivo. Tras aportar la información haz clic en `Siguiente`.

13. A continuación en la página de `Configuración de Conexión de Red` pon el nombre de red que quieras y una lista de servidores a los que se deba conectar el Núcleo de Quassel para unirte a esa red IRC (por ejemplo `irc.debian.org:6667`).

14. Selecciona un servidor de la lista y dale a `Editar`. En el diálogo `Información del Servidor` pon el puerto `6697` (consulta la lista real de servidores y sus puertos seguros en la documentación de tu red) y haz clic en `Usar SSL`. Clic en `OK`. Esto es para asegurar que la comunicación entre tu FreedomBox y el servidor de la red IRC va cifrada.

15. Ya de vuelta en el diálogo `Configuración de Conexión de Red` proporciona una lista de canales IRC (como #freedombox) a los que unirte al conectarte a la red. Dale a `Grabar y Conectar`.

16. Deberías conectar con la red y ver la lista de canales a los que te has unido en el panel `Todas las conversaciones` de la izquierda de la ventana principal del Cliente Quassel.

17. Selecciona un canal y empieza a recibir mensajes de otros participantes del canal y a enviar los tuyos.

##### Android

Para dispositivos Android puedes usar p.ej. Quasseldroid obtenido desde F-Droid

- introduce el núcleo, usuario, etc.

Por cierto el verbo alemán quasseln significa hablar mucho, rajar.

### MiniDLNA

MiniDLNA es un servidor multimedia que intenta ser compatible con clientes DLNA/UPnP.

#### ¿Qué es UPnP/DLNA?

UPnP (Universal plug & play) es un conjunto de protocolos de red que permite a los dispositivos de una red, como PCs, TVs, impresoras etc, reconocerse entre sí y establecer comunicación para compartir datos. Es un protocolo con cero configuración y require solo un servidor multimedia y un reproductor multimedia compatibles con el protocolo.

DLNA se deriva de UPnP como una forma de estandarizar interoperabilidad entre medios. Conforma un estándar/certificación que cumplen muchos dispositivos electrónicos de consumo.

#### Desplegando MiniDLNA en tu FreedomBox.

Para instalar/habilitar el servidor multimedia necesitas navegar a la página MiniDLNA y habilitarlo. Se intenta que la aplicación esté disponible en la red interna y por ello requiere asignarle un interfaz de red configurado para tráfico interno.

Tras la instalación queda disponible una página web en https://<tu-freedombox>/_minidlna. Incluye información de cuántos ficheros detecta el servidor, cuántas conexiones existen etc. Esto resulta muy útil cuando conectas discos externos con contenido para para verificar que detecta los nuevos archivos como debe. Si no ocurre así, desconectar y activar el servidor lo arreglará.

#### Sistemas de archivo para discos externos.

Al usar un disco externo que se usa también desde sistemas Windows el mejor formato para el sistema de archivos es NTFS. NTFS conservará los permisos de acceso de Linux y la codificación UTF-8 para los nombres de fichero. Esto es útil si los nombres de archivos tienen tildes, eñes u otros signos raros.

#### Enlaces externos

- http://minidlna.sourceforge.net (en)

- https://es.wikipedia.org/wiki/Digital_Living_Network_Alliance

### Lector de Feeds de Noticias (Tiny Tiny RSS)

Tiny Tiny RSS es un lector y agregador de feeds de noticias (RSS/Atom) diseñado para leer noticias desde cualquier lugar con una experiencia lo más parecida posible a una aplicación de escritorio.

Cualquier usuario creado mediante el interfaz web de FreedomBox podrá ingresar y usar esta app. Cada usuario tiene sus propios feeds, estado y preferencias.

#### Usar el interfaz web

Cuando esté habilitado Tiny Tiny RSS estará disponible en la ruta /tt-rss del servidor web. Cualquier usuario creado mediante el interfaz web de FreedomBox podrá ingresar y usar esta app.

##### Añadir un nuevo feed

1. Ve a la página cuyo feed quieras y copia su enlace RSS/Atom feed.

2. Selecciona "Subscribirse al feed.." en el desplegable Acciones.

3. Pega la URL que has copiado en el diálogo que aparece y pulsa el botón Subscribirse.

Dale un minuto a la aplicación para obtener los feeds.

En algunos sitios web el botón de feeds RSS no está claramente visible. En tal caso simplemente pega la URL del sitio web en el diálogo Subscribirse y deja que TT-RSS detecte automáticamente los feeds RSS que haya en la página.

Puedes probarlo ahora con la página principal de WikiNews

Como puedes ver en la imagen seguiente TT-RSS ha detectado y añadido el feed Atom de WikiNews a nuestra lista de feeds.

Si no quieres conservar este feed haz clic con el botón derecho del ratón en el feed de la imagen anterior, selecciona Editar feed y dale a Desubscribir en el diálogo que aparece.

##### Importar tus feeds desde otro lector

Encuentra en tu lector de feeds previo una opción para Exportar tus feeds a un fichero. Si tiene que elegir entre varios formatos elige OPML. Pongamos que tu fichero de feeds exportados se llama Subscriptions.opml

Haz click en la esquina superior izquierda el menú Acciones y selecciona Preferencias. Se te llevará a otra página.

En la cabecera superior selecciona la 2ª solapa llamada Feeds. Tiene varias secciones y la 2ª se llama OPML. Selecciónala.

Para importar tu fichero Subscriptions.opml a TT-RSS,

1. Haz clic en Examinar... y selecciona el fichero en tu sistema de archivos.

2. Haz clic en Importar mi OPML

Tras importar se te llevará a la sección Feeds que está en la página encima de la de OPML. Puedes ver que los feeds del lector previo figuran ahora importados en Tiny Tiny RSS. Ahora puedes empezar a usar Tiny Tiny RSS como tu lector principal.

#### Usar la app móvil

La app oficial para Android del proyecto Tiny Tiny RSS funciona con el servidor Tiny Tiny RSS de FreedomBox. Se sabe que la aplicación anterior TTRSS-Reader no funciona.

Desafortunadamente la app oficial para Android solo está disponible en la Play Store de Google y no en F-Droid. Todavía puedes obtener el código fuente y compilar el fichero apk por tu cuenta.

Para configurarla, primero instálala y entonces en la página de configuración pon https://<tu_freedombox>/tt-rss-app/ como URL. Pon tu usuario y contraseña en los detalles del Login así como los detalles de Autenticación HTTP. Si tu FreedomBox no tiene un certificado HTTPS válido configuralo para que admita cualquier certificado SSL y cualquier servidor.

### Alojamiento Git Simple (GitWeb)

GitWeb proporciona alojamiento Git en FreedomBox. Proporciona un interfaz web simple para realizar acciones comunes como ver archivos, diferencias, descripciones de cambio, etc.

Disponible desde versión: 19.19

#### Autenticación básica HTTP

Actualmente el GitWeb de FreedomBox solo soporta remotos HTTP. Para evitar tener que introducir la contraseña cada vez que haces pull/push al repositorio puedes editar tu remoto para incluír credenciales.

Ejemplo: https://usuario:contrasena@mi.freedombox.mola/gitweb/mirepo

Tu nombre de usuario y contraseña se cifrarán. Quien monitorize el tráfico de la red solo apreciará el nombre de dominio.

Nota: Al usar este método tu contraseña se almacenará en claro en el fichero `.git/config` del repositorio local. Por este motivo debes crear un usuario FreedomBox que solo tenga acceso a gitweb y no usar nunca una cuenta de administrador.

#### Réplicas Espejo

Aunque tus repositorios se albergan principalmente en tu propia FreedomBox puedes configurar un repositorio en otro servicio de alojamiento Git como GitLab a modo de copia espejo.

### Servidor SIP (Repro)

### Caution

App eliminada

Repro ha sido eliminada de Debian 10 (Buster) y por tanto ya no está disponible en FreedomBox.

### Proxy SOCKS5 (Shadowsocks)

#### ¿Qué es Shadowsocks?

Shadowsocks es un proxy SOCKS5 ligero y seguro, diseñado para proteger tu tráfico Internet. Se puede usar para eludir la censura y los filtros de Internet. Tu FreedomBox puede ejecutar un cliente Shadowsocks que puede conectar con un servidor Shadowsocks. También ejecutará un proxy SOCKS5. Los dispositivos locales pueden conectar con este proxy y sus datos serán cifrados y retransmitidos a través del sevidor Shadowsocks.

Nota: Shadowsocks está disponible en FreedomBox a partir de la versión 0.18 de Plinth.

#### Usar el cliente Shadowsocks

La implementación actual de Shadowsocks en FreedomBox solo soporta configurar FreedomBox como cliente Shadowsocks. Este caso de uso sería así:

- El client de Shadowsocks (FreedomBox) está en una región en la que partes de Internet están bloqueadas o censuradas.

- El servidor de Shadowsocks está en una región diferente que no tiene esos bloqueos.

- FreedomBox proporciona un servicio de proxy SOCKS en la red local para que otros dispositivos hagan uso de la conexión Shadowsocks.

En el futuro será posible configurar FreedomBox como servidor Shadowsocks.

#### Configurar tu FreedomBox para el cliente Shadowsocks

Para habilitar Shadowsocks primero navega a la página Proxy Socks5 (Shadowsocks) e instalalo.

Servidor: el servidor Shadowsocks no es la IP o la URL de FreedomBox, sino que será otro servidor o VPS configurado como tal (servidor Shadowsocks). También hay algunos servidores Shadowsocks públicos listados en la web, pero sé consciente de que quienquiera que opere el servidor puede ver a dónde van las peticiones y cualquier dato no cifrado que se transmita.

Para usar Shadowsocks una vez instalado configura la URL del proxy SOCKS5 en tu dispositivo, navegador o aplicación como `http://<tu_freedombox>:1080/`.

### Red Privada Virtual (OpenVPN)

#### ¿Qué es OpenVPN?

OpenVPN proporciona un servicio de red privada virtual a tu FreedomBox. Puedes usar este software para acceso remoto, VPNs punto-a-punto y seguridad Wi-Fi. OpenVPN incluye soporte para direcciones IP dinámicas y NAT.

#### Redirección de puertos

Si tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos en tu router. Debes redirigir los siguientes puertos para OpenVPN:

- UDP 1194

#### Configurar

1. En el menú de apps de Plinth selecciona Red Privada Virtual (OpenVPN) y haz clic en Instalar.

2. Tras instalar el módulo todavía queda un paso de configuración que puede llevar largo tiempo completar. Haz clic en "Iniciar configuración" para empezar.

3. Espera a que termine la configuración. Puede tardar un rato.

4. Una vez completada la configuración del servidor OpenVPN puedes descargar tu perfil. Esto descargará un archivo llamado `<usuario>.ovpn`, siendo <usuario> un usuario de FreedomBox. Todos los usuarios de FreedomBox podrán descargar un perfil propio y diferente. Los usuarios que no sean administradores pueden descargar el perfil desde la portada después de ingresar.

5. El archivo ovpn contiene toda la información que necesita un cliente vpn para conectar con un servidor.

6. El perfil descargado contiene el nombre de dominio de FreedomBox al que debe conectarse el cliente. Este se obtiene del dominio configurado en la sección 'Configuración' de la página de 'Sistema'. En caso de que tu dominio no esté configurado adecuadamente quizá necesites cambiar este valor después de descargar el perfil. Si tu cliente OpenVPN lo permite puedes hacer esto después de importar el perfil OpenVPN. De lo contrario puedes editar el perfil .ovpn con un editor de texto y cambiar la línea 'remote' para que contenga la dirección IP WAN o el hostname de tu FreedomBox como se indica aquí.

       client
       remote tu.freedombox.org 1194
       proto udp

#### Navegar por Internet tras conectar a una VPN

Tras conectar a la VPN el dispositivo cliente podrá navegar por Internet sin más configuración adicional. No obstante una pre-condición para que esto funcione es que necesitas tener al menos 1 interfaz (tarjeta) de red conectado a Internet en la zona Externa del cortafuegos. Usa la página de configuración de redes para editar la zona del cortafuegos con los interfaces (tarjetas) de red del dispositivo.

#### Uso

##### En Android/LineageOS

1. Visita la página principal de FreedomBox. Ingresa con tu cuenta de usuario. Desde la página principal descarga el perfil OpenVPN. El archivo se llamará `<usuario>.ovpn`.

2. Descarga un cliente OpenVPN como OpenVPN for Android. Se recomienda el repositorio F-Droid. En la app, selecciona Importar perfil.

3. En el diálogo Seleccionar perfil elige el archivo `<usuario>.opvn` que acabas de descargar. Pon un nombre a la conexión y graba el perfil.

4. El perfil recién creado aparecera. Si hace falta edita el perfil y pon el nombre de dominio de tu FreedomBox como dirección de servidor.

5. Conecta haciendo clic sobre el perfil.

6. Cuando esté desconecta haciendo clic sobre el perfil.

##### En Debian

Instala un cliente OpenVPN para tu sistema

    $ sudo apt install openvpn

Abre el archivo ovpn con el cliente OpenVPN.

    $ sudo openvpn --config /ruta/a/<usuario>.ovpn

#### Comprobar si estás conectado

##### En Debian

1. Trata de hacer ping a tu FreedomBox u otros dispositivos de tu red.

2. El comando `ip addr` debe mostrar una conexión `tun0`.

3. El comando `traceroute freedombox.org` debiera mostrar la dirección IP del servidor VPN como primer salto.

Si usas `Network Manager` puedes crear una conexión nueva importando el fichero:

    $ sudo apt install network-manager-openvpn-gnome
    $ sudo nmcli connection import type openvpn file /ruta/a/<USUARIO>.ovpn

#### Enlaces Externos

https://community.openvpn.net/openvpn

### Conversaciones de Voz (Mumble)

#### ¿Qué es Mumble?

Mumble es un software de conversaciones de voz. Principalmente diseñado para uso con juegos multijugador por red, sirve para hablar con alta calidad de audio, cancelación de ruido, comunicación cifrada, autenticación de interlocutores por defecto mediante par de claves pública/privada, y "asistentes" para configurar tu micrófono, por ejemplo. Se puede marcar a un usuario dentro de un canal como "interlocutor prioritario".

#### Usar Mumble

FreedomBox incluye el servidor Mumble. Para conectar con el servidor los usuarios pueden descargar algún cliente de entre los disponibles para plataformas de escritorio y móviles.

#### Redirección de Puertos

Si tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos de tu router. Deberías redirigir los siguientes puertos para Mumble:

- TCP 64738

- UDP 64738

#### Administrar Permisos

En Mumble un supeusuario puede crear cuentas de administrador que a su vez pueden administrar permisos a grupos y canales. Esto se puede hacer tras ingresar con el usuario "SuperUser" y la contraseña de superusuario. Ver la Guía de Mumble para obtener información respecto a cómo hacer esto. Actualmente FreedomBox no ofrece una interfaz gráfica para obtener o establecer la contraseña de superusuario en Mumble. Se genera una contraseña de superusuario automáticamente durante la instalación de Mumble. Para obtenerla ingresa en el terminal como `admin` usando Cockpit , la Shell Segura o la consola. Y ejecuta el siguiente comando:

    sudo grep SuperUser /var/log/mumble-server/mumble-server.log

Deberás ver una salida como esta:

    <W>2019-11-06 02:47:41.313 1 => Password for 'SuperUser' set to 'noo8Dahwiesh'

O puedes establecer una contraseña nueva así:

    sudo su -
    echo "nuevacontraseña" | su mumble-server -s /bin/sh -c "/usr/sbin/murmurd -ini /etc/mumble-server.ini --readsupw"

### Proxy Web (Privoxy)

Un proxy web actúa como filtro para tráfico web entrante y saliente. Por tanto, puedes ofrecer a los ordenadores de tu red pasar su tráfico internet a través del proxy para eliminar anuncios y mecanismos de rastreo indeseados.

Privoxy es un software para la seguridad, privacidad, y control certero sobre la web. Proporciona una navegación web mucho más controlada (y anónima) que la que te puede ofrecer tu navegador. Privoxy "es un proxy enfocado principalmente al aumento de la privacidad, eliminación de anuncios y morralla, y a liberar al usuario de las restricciones impuestas sobre sus propias actividades" (fuente: Preguntas frecuentes acerca de Privoxy).

#### Vídeo

Mira el vídeo acerca de como configurar y usar Privoxy en FreedomBox.

#### Configurar

1. Instala Proxy Web (Privoxy) desde Plinth

2. Adapta las preferencias de proxy de tu navegador al hostname (o dirección IP) de tu FreedomBox con el puerto 8118. Observa por favor que Privoxy sólo puede tratar tráfico HTTP y HTTPS. No funciona con FTP u otros protocolos.

3. Vé a la página http://config.privoxy.org/ o http://p.p. Si Privoxy está instalado adecuadamente podrás configurarlo en detalle y si no verás un mensaje de fallo.

4. Si usas un portátil que tenga a veces que conectarse con FreedomBox y Privoxy pasando por routers de terceros quizá quieras instalar una extensión proxy switch que te permite activar y desactivar el proxy más fácilmente.

#### Usuarios Avanzados

1. La instalación de serie debería proporcionar un punto de partida razonable para la mayoría de los usuarios. Indudablemente habrá ocasiones en las que quieras ajustar la configuración. Eso se puede afrontar cuando surja la necesidad.

2. Con Privoxy activado puedes ver su documentación y los detalles de su configuración en `http://config.privoxy.org/` o en `http://p.p`.

3. Para habilitar los cambios en estas configuraciones primero tienes que cambiar el valor de habilitar-acciones-de-edición en `/etc/privoxy/config` a `1`. Antes de hacerlo lee el manual con atención, especialmente:

   - No se puede controlar por separado el accesso al editor por "ACLs" o authenticación HTTP, así que cualquiera con acceso a Privoxy puede modificar la configuración de todos los usuarios. Esta opción no se recomienda para entornos con usuarios no confiables. Nota que un código de cliente malicioso (p.ej. Java) también puede usar el editor de acciones y no deberías habilitar estas opciones a no ser que entiendas las consecuencias y estés seguro de que los navegadores están correctamente configurados.

4. Ahora encontrarás un botón `EDITAR` en la pantalla de configuración de `http://config.privoxy.org/`.

5. La Guía rápida es un buen punto de partida para leer acerca de cómo definir reglas de bloqueo y filtrado propias.

### Búsqueda Web (Searx)

#### Acerca de Searx

Searx es un metabuscador. Un metabuscador agrega los resultados de varios buscadores y los presenta en un interfaz unificado.

Lee más acerca de Searx en su sitio web oficial.

Disponible desde: versión 0.24.0

#### Captura de pantalla

#### Vídeo

Searx installation and first steps (14 MB)

#### ¿Por qué usar Searx?

##### Personalización y Burbujas por Filtrado

Los buscadores tienen la capacidad de perfilar a sus usuarios y les sirven los resultados más relevantes para ellos, encerrandoles en burbujas por filtrado y distorsionando la visión que la gente tiene del mundo. Los buscadores tienen un incentivo financiero para servir publicidad interesante a sus usuarios, ya que incrementa la probabilidad de que hagan clic en los anuncios.

Un metabuscador es una solución posible a este problema, ya que agrega resultados de multiples buscadores puenteando así los intentos de personalización de los buscadores.

Searx evita almacenar cookies de buscadores para eludir traceos y perfilados de buscadores.

##### Filtrado de publicidad

Searx filtra anuncios de los resultados de búsqueda antes de servirlos al usuario, con lo que mejora la relevancia de tus resultados y te evita distracciones.

##### Privacidad

Searx usa por defecto HTTP POST en vez de GET para enviar tus consultas de búsqueda a los buscadores, así que si alguien espía tu tráfico no podrá leerlas. Tampoco se almacenarán las consultas en el histórico de tu navegador.

Nota: Searx usado desde la barra (omnibar) del navegador Chrome hará peticiones GET en vez de POST.

#### Searx en FreedomBox

- En FreedomBox Searx usa las credenciales únicas de Single Sign On. Esto implica que tienes que haber ingresado en tu FreedomBox con el navegador en el que estás usando Searx.

- Se puede acceder fácilmente a SearX a través de Tor.

- Se puede añadir a Searx a la barra de buscadores del navegador Firefox. Mira la Ayuda de Firefox acerca de este asunto. Una vez esté Searx añadido también podrás establecerlo como tu buscador por defecto.

- Searx también ofrece resultados de búsqueda en formatos csv, json y rss, que se pueden usar desde scripts para automatizar algunas tareas.

### Wiki (MediaWiki)

#### Acerca de MediaWiki

MediaWiki es el software de base de la gama de wikis Wikimedia.

Lee más acerca de MediaWiki en Wikipedia

Disponible desde: versión 0.20.0

#### MediaWiki en FreedomBox

MediaWiki viene configurado en FreedomBox para ser públicamente legible y editable en privado. Sólo los usuarios ingresados pueden editar el wiki. Esta configuración evita publicidad indeseada (spam) y otros vandalismos en tu wiki.

##### Administración de Usuarios

Solo el administrador de MediaWiki (usuario "admin") puede crear los usuarios. El usuario "admin" puede usarse también para restablecer contraseñas de usuarios MediaWiki. Si se olvida la contraseña del administrador se puede restablecer desde la página de MediaWiki del interfaz web de FreedomBox.

##### Casos de uso

MediaWiki es muy versátil y se puede emplear para muchos usos creativos. También es áltamente adaptable y viene con un montón de extensiones (plugins) y estilos estéticos.

###### Repositorio Personal de Conocimiento

El MediaWiki de FreedomBox puede ser tu propio repositorio de conocimiento personal. Como MediaWiki tiene buen soporte multimedia puedes escribir notas, almacenar imágenes, crear listas de comprobación, guardar referencias y enlaces, etc. de manera organizada. Puedes almacenar el conocimiento de una vida en tu instancia de MediaWiki.

###### Wiki Comunitario

Una comunidad de usuarios podría usar MediaWiki como su repositorio común de conocimiento y material de referencia. Se puede emplear como un tablón de anunciós de universidad, como un servidor de documentación para una pequeña empresa, como un bloc de notas para grupos de estudio o como un wiki de fans al estilo de wikia.

###### Sitio Web Personal implementado mediante un Wiki

Varios sitios web de internet son sólo instancias de MediaWiki. El MediaWiki de FreedomBox es de solo lectura para visitantes. Se puede por tanto adaptar para servir como tu sitio web y/o blog personal. El contenido de MediaWiki es fácil de exportar y puede moverse después a otro motor de blogs.

##### Editar Contenido del Wiki

FreedomBox monta MediaWiki con un editor básico con una barra de herramientas con opciones de uso habitual como negrita, cursiva etc. Haz clic en la sección Avanzadas para acceder a más opciones como cabaceras, listas con viñetas, etc.

###### Editor Visual

Como su nombre indica, el nuevo Editor Visual de MediaWiki ofrece un interfaz de usuario visual (WYSIWYG) para crear páginas del wiki. Pero esta funcionalidad está todavía en pruebas y MediaWiki no la trae de serie. Una solución temporal posible sería escribir tu contenido con el Editor Visual del borrador de Wikipedia, cambiar el modo de edición a texto y copiarlo a tu wiki.

###### Otros Formatos

No es imprescindible que aprendas el lenguaje de formateo de MediaWiki. Puedes escribir en tu formato favorito (Markdown, Org-mode, LaTeX etc.) y convertirlo al formato de MediaWiki usando Pandoc.

###### Cargar Imágenes

Se puede habilitar la carga de imágenes desde FreedomBox versión 0.36.0. También puedes usar directamente imágenes de Wikimedia Commons mediante una funcionalidad llamada Instant Commons.

##### Personalización

###### Temas de estilo

El tema por defecto de MediaWiki suele ser Vector. El de FreedomBox es Timeless.

Vector es un tema optimizado para visualizarlo en pantallas grandes pero no se adecúa bien a los tamaños de pantalla de los móviles. Wikimedia usa otro sitio específico para móviles. Para instalaciones pequeñas como las de FreedomBox no merece la pena un segundo sitio dedicado. Usar un tema de estilo más polivalente como Timeless es una solución más eficiente al problema.

Los administradores pueden elegir el tema por defecto desde la configuración de la app. Los usuarios del sitio tienen también la opción de visualizarlo con temas diferentes.

### Wiki y Blog (Ikiwiki)

#### ¿Qué es Ikiwiki?

Ikiwiki convierte páginas wiki a páginas HTML listas para publicar en un sitio web. En particular, proporciona blogs, podcasts, calendarios y una amplia selección de extensiones (plugins).

#### Inicio rápido

Tras instalar la app en el interfaz de administración de tu FreedomBox:

- Ve a la sección Crear y crea un wiki o un blog.

- Vuelve a la sección Configurar y haz clic en el enlace /ikiwiki.

- Haz clic en el nombre de tu nuevo wiki o blog bajo Directorio Padre.

- Disfruta de tu nueva página de publicación.

#### Crear un wiki o blog

Puedes crear un wiki o blog para albergarlo en tu FreedomBox mediante la página Wiki y Blog (Ikiwiki) de Plinth. La primera vez que visites esta página te pedirá instalar paquetes requiridos por Ikiwiki.

Tras completar la instalación de paquetes selecciona la solapa Crear. Puedes elegir el tipo: Wiki o Blog. Teclea también un nombre para el wiki o blog, y el usuario y contraseña para su cuenta de administrador. Al hacer clic en Actualizar configuración verás el wiki/blog añadido a tu lista. Observa que cada wiki/blog tiene su propia cuenta de administrador.

#### Acceder a tu wiki o blog

Desde la página de Wiki y Blog (Ikiwiki) selecciona la solapa Administrar y verás una lista de tus wikis y blogs. Haz clic en un nombre para navegar a ese wiki o blog.

Desde aquí, si le das a Editar o a Preferencias se te llevará a una página de ingreso. Para ingresar con la cuenta de administrador que creaste antes selecciona la solapa Otros, introduce el usuario y la contraseña y haz clic en Ingresar.

#### Ingreso único de usuarios (SSO)

Se puede dar permiso para editar a otros usuarios de FreedomBox además de al administrador del wiki/blog. Sin embargo no tendrán todos los permisos del administrador. Podrán añadir o editar páginas pero no podrán cambiar la configuración del wiki.

Para añadir a un usuario al wiki ve a la página Usuarios y Grupos de Plinth (bajo Configuración del Sistema, el icono del engranaje de la esquina superior derecha de la página). Crea o modifica un usuario y añádele al grupo wiki. (Los usuarios del grupo admin tendrán también acceso al wiki.)

Para ingresar como usuario FreedomBox ve a la página de ingreso del wiki/blog y selecciona la solapa Otros. Luego haz clic en el botón Ingresar con autenticación HTTP. El navegador mostrá un diálogo emergente en el que podrás introducir el usuario y la contraseña del usuario de FreedomBox.

#### Añadir usuarios FreedomBox como admnistradores de wiki

1. Ingresa al wiki con su cuenta de administrador.

2. Haz clic en Preferencias y luego en Configurar.

3. Debajo de Principal, en usuarios administradores de algún wiki, añade el nombre de un usuario de FreedomBox.

4. (Opcional) Desmarca la opción habilitar autenticación mediante contraseña de extensión de autenticación: autenticación mediante contraseña. (Nota: Esto deshabilitará el ingreso con la cuenta de administrador anterior. Solo se podrá ingresar mediante ingreso único usando autenticación HTTP.)

5. Haz clic en Grabar Configuración.

6. Pulsa Preferencias y a continuación Salir.

7. Ingresa como el nuevo usuario administrador usando Ingresar con autenticación HTTP.

### Red de Anonimato (I2P)

#### Acerca de I2P

El Proyecto Internet Invisible (I2P) es una capa anonimizadora de red concebida para protejer las comunicaciones de la censura y la vigilancia. I2P proporciona anonimato enviando tráfico cifrado a través de una red distribuída alrededor del mundo gestionada por voluntarios.

Más información acerca de I2P en la página principal del proyecto.

#### Servicios Ofrecidos

Los siguientes servicios se ofrecen en FreedomBox a través de I2P de serie. Se pueden habilitar más servicios desde la consola de enrutado I2P que se puede abrir desde el interfaz web de FreedomBox.

- Navegación web anónima: I2P se puede usar para navegar por la web de forma anónima. Para ello configura tu navegador (preferíblemente un navegador Tor) para conectar al proxy I2P. Esto se puede hacer estableciendo los proxies HTTP y HTTPS a freedombox.local (o la IP local de tu FreedomBox) con sus respectivos puertos a 4444 y 4445. Este servicio está disponible sólo cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de navegación web anónima a través de I2P.

- Acceso a eepsites: La red I2P puede albergar sitios web anónimos llamados eepsites cuyo nombre de dominio acaba en `.i2p`. Por ejemplo, `http://i2p-projekt.i2p/` es el sitio web del proyecto I2P en la red I2P. Los eepsites son inaccesibles a un navegador normal a través de una conexión Internet normal. Para navegar a los eepsites tu navegador necesita configurarse para usar los proxies HTTP y HTTPS como se describió antes. Este servicio solo está disponible cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de acceso a eepsites a través de I2P.

- Descargas anónima de torrentes: I2PSnark, una aplicación para descargar y compartir archivos anónimamente mediante la red BitTorrent está disponible y habilitada por defecto en FreedomBox. Esta aplicación se controla mediante un interfaz web que se puede abrir desde la sección Torrentes Anonimos de la app I2P en el interfaz web de FreedomBox o de la consola de enrutado I2P. Solo los usuarios ingresados pertenecientes al grupo Manage I2P application pueden usar este servicio.

- Red IRC: La red I2P contiene una red IRC llamada Irc2P. Esta red alberga el canal IRC oficial del proyecto I2P, entre otros. Este servicio viene habilitdo de serie en FreedomBox. Para usarlo abre tu cliente IRC favorito y configuralo para conectar con freedombox.local (o la IP local de tu FreedomBox) en el puerto 6668. Este servicio solo está disponible cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de IRC a través de I2P.

- Consola de enrutado I2P: Este es el interfaz central de administración de I2P. Muestra el estado actual de I2P, estadísticas de ancho de banda y permite modificar varias preferencias de configuración. Puedes adecuar tu participación en la red I2P y usar/editar una lista con tus sitios I2P (eepsites) favoritos. Solo los usuarios ingresados pertenecientes al grupo Manage I2P application pueden usar este servicio.

### Simple Git Hosting (GitWeb)

Git is a distributed version-control system for tracking changes in source code during software development. GitWeb provides a web interface to Git repositories. You can browse history and content of source code, use search to find relevant commits and code. You can also clone repositories and upload code changes with a command-line Git client or with multiple available graphical clients. And you can share your code with people around the world.

To learn more on how to use Git visit Git tutorial.

Available since version: 19.19

#### Managing the repositories

After installation of GitWeb, a new repository can be created. It can be marked as private to limit access.

#### Access

GitWeb can be accessed after installation e.g. by the web client through https://<my_freedombox_name>/gitweb

#### HTTP basic auth

GitWeb on FreedomBox currently supports HTTP remotes only. To avoid having to enter the password each time you pull/push to the repository, you can edit your remote to include the credentials.

Example: https://username:password@my.freedombox.rocks/gitweb/myrepo

Your username and password will be encrypted. Someone monitoring the network traffic will notice the domain name only.

Note: If using this method, your password will be stored in plain text in the local repository's .git/config file. For this reason, you should create a FreedomBox user who has only access to the gitweb and never use an admin account.

#### Mirroring

Though your repositories are primarily hosted on your own FreedomBox, you can configure a repository on another Git hosting system like GitLab as a mirror.

## Sistema

### Copias de respaldo (backups)

FreedomBox incluye la posibilidad de copiar y restaurar datos, preferencias, configuración y secretos de la mayoría de las aplicaciones. La funcionalidad de Backups se resuelve con el software de backup Borg. Borg es un programa de backup con deduplicación y compresión. Está diseñado para hacer backups eficientes y seguros. Esta funcionalidad de backups se puede emplear para respaldar y recuperar datos aplicación por aplicación. Las copias de respaldado se pueden almacenar en la propia máquina FreedomBox o en un servidor remoto. Cualquier servidor remoto con acceso por SSH se puede emplear como almacenamiento para los backups de la FreedomBox. Las copias remotas se pueden cifrar para que el servidor remoto no pueda leer los datos que alberga.

#### Funcionalidad de Estatdos de los Backups

App/Funcionalidad | Soporte en Versión | Notas
Avahi | - | no precisa backup
Backups | - | no precisa backup
Bind | 0.41 |
Cockpit | - | no precisa backup
Coquelicot | 0.40 | incluye ficheros subidos
Datetime | 0.41 |
Deluge | 0.41 | no incluye archivos descargados ni semillas
Diagnostics | - | no precisa backup
Dynamic DNS | 0.39 |
ejabberd | 0.39 | incluye todos los datos y configuración
Firewall | - | no precisa backup
ikiwiki | 0.39 | incluye todos los wikis/blogs y sus contenidos
infinoted | 0.39 | incluye todos los datos y claves
JSXC | - | no precisa backup
Let's Encrypt | 0.42 |
Matrix Synapse | 0.39 | incluye media y cargas
MediaWiki | 0.39 | incluye páginas de wiki y archivos adjuntos
Minetest | 0.39 |
MLDonkey | 19.0 |
Monkeysphere | 0.42 |
Mumble | 0.40 |
Names | - | no precisa backup
Networks | No | sin planes para implementar backup, de momento
OpenVPN | 0.48 | incluye a todos los usuarios y claves de servidor
Pagekite | 0.40 |
Power | - | no precisa backup
Privoxy | - | no precisa backup
Quassel | 0.40 | incluye usuarios y registros de ejeución (logs)
Radicale | 0.39 | incluye calendario y datos de tarjetas de todos los usuarios
repro | 0.39 | incluye a todos los usuarios, datos y claves
Roundcube | - | no precisa backup
SearX | - | no precisa backup
Secure Shell (SSH) Server | 0.41 | incluye las claves del servidor
Security | 0.41 |
Shadowsocks | 0.40 | solo secretos
Sharing | 0.40 | no incluye datos de las carpetas compartidas
Snapshot | 0.41 | solo configuración, no incluye datos de capturas (snapshots)
Storage | - | no precisa backup
Syncthing | 0.48 | no incluye datos de las carpetas compartidas
Tahoe-LAFS | 0.42 | incluye todos los datos y configuración
Tiny Tiny RSS | 19.2 | incluye base de datos con feeds, historias, etc.
Tor | 0.42 | includes configuración y secretos como las claves de servicios Tor Onion
Transmission | 0.40 | no incluye archivos descargados ni semillas
Upgrades | 0.42 |
Users | No | sin planes para implementar backup, de momento

#### Cómo instalar y usar Backups

Paso 1

Paso 2

Paso 3

Paso 4

Paso 5

Paso 6

Paso 7

### Configurar

Configurar tiene algunas opciones generales de configuración:

#### Hostname

- Hostname es el nombre local por el que otros dispositivos pueden alcanzar tu FreedomBox desde la red local. El hostname por defecto es freedombox.

#### Nombre de Dominio

- El Nombre de Dominio es el nombre global por el que otros dispositivos pueden alcanzar tu FreedomBox desde la Internet. El valor que se asigne aquí es el que usarán Chat Server (XMPP), Matrix Synapse, Certificates (Let's Encrypt), y Monkeysphere.

#### Página Principal (home) del Servidor Web

- Esta es una opción avanzada que te permite establecer como home algo diferente al servicio FreedomBox (Plinth) para que se sirva a quien acceda con el navegador al nombre de dominio de FreedomBox. Por ejemplo, si el nombre de dominio de tu FreedomBox es https://myfreedombox.rocks y estableces a MediaWiki como home, al visitar https://myfreedombox.rocks te llevará a https://myfreedombox.rocks/mediawiki/ en vez de a https://myfreedombox.rocks/plinth/. Puedes asignar la home a cualquier aplicación web, los wikis y blogs de Ikiwiki o la página index.html por defecto de Apache.

### Caution

Una vez asignada como home otra aplicación, ya solo puedes navegar al servicio FreedomBox (Plinth) tecleando en el navegador https://myfreedombox.rocks/plinth/.

/freedombox también se puede usar como alias para /plinth

- Consejo: Guarda la URL del servicio FreedomBox (Plinth) antes de asignar la home a otra app.

### Administración de Servidor (Cockpit)

Cockpit es una aplicación que facilita administrar servidores GNU/Linux desde el navegador web. En una FreedomBox, hay disponibles controles para muchas funciones avanzadas que normalmente no se necesitan. También hay disponible un terminal web para operaciones de consola.

Cualquier usuario del grupo de administradores de to FreedomBox puede acceder a Cockpit. Cockpit solo se puede usar si tienes una configuración de nombre de dominio apropiada para tu FreedomBox y usas ese nombre de dominio para acceder a Cockpit. Para más información mira la sección de Resolución de Problemas.

### Caution

Usa cockpit sólo si eres un administrador de sistemas GNU/Linux con habilidades avanzadas. FreedomBox intenta coexistir con los cambios al sistema que efectúan los administradores y sus herramientas, como Cockpit. Sin embargo, los cambios al sistema inadecuados pueden causar fallos en las funciones de FreedomBox.

#### Usar Cockpit

Instala Cockpit como cualquier otra aplicación de FreedomBox. Y a continuación asegúrate de que Cockpit está habilitado.

Asegúrate de que la cuenta de usuario de FreedomBox que se empleará con Cockpit es parte del grupo de administradores.

Arranca el interfaz web de Cockpit. Ingresa con la cuenta de usuario configurada.

Empieza a usar cockpit.

Cockpit también funciona con interfaces mobiles.

#### Funcionalidades

Las siguientes funcionalidades de Cockpit pueden ser útiles para usuarios avanzados de FreedomBox.

##### Cuadro de Mando del Sistema

Cockpit tiene un cuadro de mando del sistema que

- Muestra información detallada del hardware.

- Muestra métricas básicas de rendimiento del sistema.

- Permite cambiar la hora y el huso del sistema.

- Permite cambiar el hostname. Por favor usa el interfaz de usuario de FreedomBox UI para hacer esto.

- Muestra las huellas del servidor SSH.

##### Visualización de los Registros de Ejecución (logs) del Sistema

Cockpit permite consultar los registros de ejecución (logs) del sistema y examinarlos a todo detalle.

##### Administración de Almacenamiento

Cockpit permite las siguientes funciones avanzadas de almacenamiento:

- Visualización de llenado de discos.

- Edición de particiones de disco.

- Administración de RAID.

##### Redes

Tanto Cockpit como FreedomBox se apoyan en NetworkManager para configurar la red. No obstante, Cockpit ofrece alguna configuración avanzada no disponible en FreedomBox:

- Configuración de rutas.

- Configuración de enlaces, puentes y VLANs.

##### Servicios

Cockpit permite agendar servicios y tareas periódicas (como cron).

##### Terminal Web

Cockpit ofrece un terminal web que se puede usar para ejecutar tareas manuales de administración del sistema.

#### Resolución de Problemas

Cockpit require un nombre de dominio adecuadamente configurado en tu FreedomBox y solo funcionará cuando accedas a él mediante una URL con ese nombre de dominio. Cockpit no funcionará con una dirección IP en la URL. Tampoco con freedombox.local como nombre de dominio. Por ejemplo, las URLs siguientes no funcionarán:

    https://192.168.0.10/_cockpit/
    https://freedombox.local/_cockpit/

A partir de la versión 19.15 funciona el dominio .local. Puedes acceder a Cockpit mediante la URL https://freedombox.local/_cockpit/. El dominio .local se basa en tu hostname. Si tu hostname es mifb tu nombre de dominio .local será mifb.local y la URL de Cockpit será https://mifb.local/_cockpit/.

Para acceder apropiadamente a Cockpit, usa el nombre de dominio configurado en tu FreedomBox. Cockpit también funcionará cuando se use un Servicio Tor Onion. Las siguientes URLs funcionarán:

    https://mybox.freedombox.rocks/cockpit/
    https://exampletorhs.onion/cockpit/

La razón para este comportamiento es que Cockpit emplea WebSockets para conectar con el servidor de backend. Por seguridad se deben evitar las peticiones a WebSockets con servidores cruzados. Para implementar esto Cockpit maintiene una lista de todos los dominios desde los que se admiten peticiones. FreedomBox configura automaticamente esta lista cuando añades o borras un dominio. Sin embargo, como no podemos fiarnos de las direcciones IP, FreedomBox no las añade a esta lista. Puedes mirar la lista actual de dominios aceptados administrada por FreedomBox en /etc/cockpit/cockpit.conf. Puedes editarla pero hazlo solo si comprendes sus consecuencias para la seguridad web.

### Fecha y hora

Este servidor de hora de red es un programa que mantiene el tiempo del sistema sincronizado con servidores de Internet.

Puedes seleccionar el huso horario

- escogiendo una capital cercana (están ordenadas por Continente/Ciudad) o

- seleccionando directamente el huso en relación a GMT (Greenwich Mean Time).

### Diagnósticos

La prueba de diagnóstico del sistema ejecutará varias verificaciones sobre tu sistema para confirmar que las aplicaciones y servicios están funcionando como se espera.

Sólo haz clic Ejecutar Diagnósticos. Esto puede llevar varios minutos.

### Cliente de DNS Dinamico

#### ¿Qué es DNS Dinamico?

Para que se pueda llegar a un servidor desde Internet este necesita tener una dirección pública permanente, también conocida como dirección IP estática o fija. Muchos proveedores de servicio de Internet no otorgan IP fija a sus usuarios normales o la cobran. En su lugar les otorgan una IP temporal diferente cada vez que el usuario se conecta a internet. O una que cambia de vez en cuando. Si es tu caso los clientes que quieran contactar con tu servidor tendrán dificultades.

Los proveedores de servicio de DNS Dinamico ayudan a solventar este problema. Primero te dan un nombre de dominio, como 'miservidor.ejemplo.org' y te permiten asociar tu dirección IP temporal a este nombre de dominio cada vez que esta cambia. De este modo quien quiera llegar a tu servidor empleará el nombre de dominio 'miservidor.ejemplo.org' que siempre apuntará a la última dirección IP de tu servidor.

Para que esto funcione cada vez que te conectes a Internet tendrás que decirle a tu proveedor de servicio de DNS Dinamico cual es tu dirección IP provisional actual. Por esto necesitas tener un software especial en tu servidor que haga esto. La funcionalidad DNS Dinamico de tu FreedomBox permite a los usuarios sin dirección IP pública fija mantener su dirección IP pública temporal actualizada en el servicio de DNS Dinamico. Esto te permite exponer servicios de tu FreedomBox, como ownCloud, a Internet.

#### GnuDIP vs. Update URL

Eisten 2 mecanismos principales para notificar al the servicio de DNS Dinamico cual es tu dirección IP provisional actual: empleando el protocolo GnuDIP o empleando el mecanismo URL de actualización.

Si un servicio expuesto usando URL de actualización no se securiza apropiadamente mediante HTTPS, tus credenciales podrían quedar expuestas. Una vez que un atacante accede a tus credenciales podrá reproducir tus comunicaciones con el servicio de DNS Dinamico y suplantar tu dominio.

Por otra parte el protocolo GnuDIP solo transportará un valor MD5 salpimentado de tu contraseña de tal forma que es seguro contra ataques de este tipo.

#### Emplear el protocolo GnuDIP

1. Registra una cuenta en cualquier proveedor de servicio de DNS Dinamico. Hay un servicio gratuito provisto por la comunidad FreedomBox disponible en https://gnudip.datasystems24.net .

2. Habilita el Servicio de DNS Dinamico en el interfaz de usuario de FreedomBox.

3. Selecciona GnuDIP como tipo de servicio, introduce la dirección de tu proveedor de servicio de DNS Dinamico (por ejemplo, gnudip.datasystems24.net) en el campo Dirección del servidor GnuDIP.

4. Completa la información que te ha dado tu proveedor en los campos correspondientes Nombre de Dominio, Usuario y Contraseña.

#### Emplear URL de actualización

Se implementa esta funcionalidad porque los proveedores de servicio de DNS Dinamico más populares están empleando el mecanismo URL de actualización.

1. Registra una cuenta en el proveedor de servicio de DNS Dinamico que emplea el mecanismo Update URL. Se listan algunos proveedores de ejemplo en la propia página de configuración.

2. Habilita el Servicio de DNS Dinamico en el interfaz de usuario de FreedomBox.

3. Selecciona URL de actualización como tipo de servicio, introduce la URL de actualización que te ha dado tu proveedor de servicio de DNS Dinamico en el campo URL de actualización.

4. Si vas a la URL de actualización con tu navegador de Internet y te muestra un aviso acerca de un certificado no confiable, activa aceptar todos los certificados SSL. AVISO: ¡Tus credenciales podrían quedar expuestas en este punto a un ataque MIM (man-in-the-middle)! Valora la posibilidad de elegir otro proveedor de servicio mejor.

5. Si vas a la URL de actualización con tu navegador de Internet y te muestra la caja de usuario/contraseña, selecciona usar autenticación HTTP basica e introduce el usuario y la contraseña.

6. Si la URL de actualización contiene tu dirección IP temporal actual reemplaza la dirección IP por la cadena de texto <Ip>.

#### Comprobar si funciona

1. Asegúrate de que los servicios externos que has habilitado como /jwchat, /roundcube o /ikiwiki están disponibles en tu dirección de dominio.

2. Ve a la página Estado y asegúrate de que el tipo de NAT se detecta correctamente. Si tu FreedomBox está detrás de un dispositivo NAT debería detectarse en este punto (Texto: Detrás de NAT). Si tu FreedomBox tiene una dirección IP pública asignada el texto debería ser "Conexión directa a Internet".

3. Comprueba que el último estado de actualización no sea fallida.

#### Recap: How to create a DNS name with GnuDIP

to delete or to replace the old text

1. Access to GnuIP login page (answer Yes to all pop ups)

2. Click on "Self Register"

3. Fill the registration form (Username and domain will form the public IP address [username.domain])

4. Take note of the username/hostname and password that will be used on the FreedomBox app.

5. Save and return to the GnuDIP login page to verify your username, domain and password (enter the datas, click login).

6. Login output should display your new domain name along with your current public IP address (this is a unique address provided by your router for all your local devices).

7. Leave the GnuDIP interface and open the Dynamic DNS Client app page in your FreedomBox.

8. Click on "Set Up" in the top menu.

9. Activate Dynamic DNS

10. Choose GnuDIP service.

11. Add server address (gnudip.datasystems24.net)

12. Add your fresh domain name (username.domain, ie [username].freedombox.rocks)

13. Add your fresh username (the one used in your new IP address) and password

14. Add your GnuDIP password

15. Fill the option with http://myip.datasystems24.de (try this url in your browser, you will figure out immediately)

### Cortafuegos

Un cortafuegos es un sistema de seguridad de red que controla el tráfico de entrada y salida desde/a la red. Mantener un cortafuegos habilitado y apropiadamente configurado reduce el riesgo de amenazas a la seguridad desde Internet.

La operación del cortafuegos desde el interfaz web Plinth de FreedomBox es automática. Cuando habilitas un servicio se le abre automáticamente el cortafuegos y cuando lo deshabilitas se le cierra también automáticamente. Para servicios habilitados por defecto en FreedomBox los puertos se abren en el cortafuegos por defecto durante el proceso de la primera ejecución.

La administración del cortafuegos en FreedomBox se hace empleando FirewallD.

#### Interfaces

Cada interfaz de red necesita asignarse a 1 (y sólo 1) zona. Las reglas que tenga activas la zona se aplicarán al interfaz. Por ejemplo, si se permite el trafico HTTP en una zona en particular las peticiones web se acceptarán en todas las direcciones configuradas para todos los interfaces asignados a esa zona.

Principalmente se emplean 2 zonas de cortafuegos. La zona `interna` está pensada para servicios ofrecidos a todas las máquinas de la red local. Esto podría incluir servicios como streaming multimedia o compartición simple de archivos. La zona `externa` está pensada para servicios públicamente expuestos a Internet. Esto podría incluir servicios como blog, sitio web, cliente web de correo electrónico etc.

Para más detalles acerca de como se configuran por defecto los interfaces de red mira la sección Networks.

#### Puertos/Servicios

La siguiente tabla trata de documentar los puertos, servicios y sus estados por defecto en FreedomBox. Si encuentras esta página desactualizada mira lib/freedombox/first-run.d/90_firewall en el código fuente de Plinth y la página de estado del cortafuegos en Plinth.

Servicio | Puerto | Externo | Habilitado por defecto | Estado mostrado en Plinth | Administrado por Plinth
Minetest | 30000/udp |  |  |  |
XMPP Client | 5222/tcp |  |  |  |
XMPP Server | 5269/tcp |  |  |  |
XMPP Bosh | 5280/tcp |  |  |  |
NTP | 123/udp |  |  |  |
Plinth | 443/tcp |  |  |  |
Quassel | 4242/tcp |  |  |  |
SIP | 5060/tcp |  |  |  |
SIP | 5060/udp |  |  |  |
SIP-TLS | 5061/tcp |  |  |  |
SIP-TLS | 5061/udp |  |  |  |
RTP | 1024-65535/udp |  |  |  |
SSH | 22/tcp |  |  |  |
mDNS | 5353/udp |  |  |  |
Tor (Socks) | 9050/tcp |  |  |  |
Obfsproxy | <random>/tcp |  |  |  |
OpenVPN | 1194/udp |  |  |  |
Mumble | 64378/tcp |  |  |  |
Mumble | 64378/udp |  |  |  |
Privoxy | 8118/tcp |  |  |  |
JSXC | 80/tcp |  |  |  |
JSXC | 443/tcp |  |  |  |
DNS | 53/tcp |  |  |  |
DNS | 53/udp |  |  |  |
DHCP | 67/udp |  |  |  |
Bootp | 67/tcp |  |  |  |
Bootp | 67/udp |  |  |  |
Bootp | 68/tcp |  |  |  |
Bootp | 68/udp |  |  |  |
LDAP | 389/tcp |  |  |  |
LDAPS | 636/tcp |  |  |  |

#### Operación Manual

Para completar información acerca de los conceptos basicos o más allá, mira la documentación de FirewallD.

##### Habilitar/deshabilitar el cortafuegos

Para deshabilitar el cortafuegos

    service firewalld stop

o con systemd

    systemctl stop firewalld

Para vover a habilitar el cortafuegos

    service firewalld start

o con systemd

    systemctl start firewalld

##### Modificar servicios/puertos

Puedes añadir o eliminar un servicio de una zona manualmente.

Para ver la lista de servicios habilitados:

    firewall-cmd --zone=<zone> --list-services

Ejemplo:

    firewall-cmd --zone=internal --list-services

Para ver la lista de puertos habilitados:

    firewall-cmd --zone=<zone> --list-ports

Ejemplo:

    firewall-cmd --zone=internal --list-ports

Para eliminar un servicio de una zona:

    firewall-cmd --zone=<zone> --remove-service=<service>
    firewall-cmd --permanent --zone=<zone> --remove-service=<interface>

Ejemplo:

    firewall-cmd --zone=internal --remove-service=xmpp-bosh
    firewall-cmd --permanent --zone=internal --remove-service=xmpp-bosh

Para eliminar un puerto de una zona:

    firewall-cmd --zone=internal --remove-port=<port>/<protocol>
    firewall-cmd --permanent --zone=internal --remove-port=<port>/<protocol>

Ejemplo:

    firewall-cmd --zone=internal --remove-port=5353/udp
    firewall-cmd --permanent --zone=internal --remove-port=5353/udp

Para añadir un servicio a una zona:

    firewall-cmd --zone=<zone> --add-service=<service>
    firewall-cmd --permanent --zone=<zone> --add-service=<interface>

Ejemplo:

    firewall-cmd --zone=internal --add-service=xmpp-bosh
    firewall-cmd --permanent --zone=internal --add-service=xmpp-bosh

Para añadir un puerto a una zona:

    firewall-cmd --zone=internal --add-port=<port>/<protocol>
    firewall-cmd --permanent --zone=internal --add-port=<port>/<protocol>

Ejemplo:

    firewall-cmd --zone=internal --add-port=5353/udp
    firewall-cmd --permanent --zone=internal --add-port=5353/udp

##### Modificar la zona de interfaces

Puedes cambiar la asignación de zona de cada interfaz de red manualmente tras la asignación automática del proceso de primer arranque.

Para ver la asignación actual de interfaces de red a las zonas.

    firewall-cmd --list-all-zones

Para eliminar un interfaz de una zona:

    firewall-cmd --zone=<zone> --remove-interface=<interface>
    firewall-cmd --permanent --zone=<zone> --remove-interface=<interface>

Ejemplo:

    firewall-cmd --zone=external --remove-interface=eth0
    firewall-cmd --permanent --zone=external --remove-interface=eth0

Para añadir un interfaz a una zona:

    firewall-cmd --zone=<zone> --add-interface=<interface>
    firewall-cmd --permanent --zone=<zone> --add-interface=<interface>

Ejemplo:

    firewall-cmd --zone=internal --add-interface=eth0
    firewall-cmd --permanent --zone=internal --add-interface=eth0

### Certificados (Let's Encrypt)

Un certificado digital permite a los usuarios de un servicio web verificar la identidad del servicio y comunicar con él de modo seguro. FreedomBox puede obtener y configurar automaticamente certificados digitales para cada dominio disponible. Lo hace probando a Let's Encrypt, una authoridad de certificación (CA) ser el dueño de un dominio.

Let's Encrypt es una autoridad de certificación abierta, automatizada, libre y gratuita administrada para beneficio público por el Internet Security Research Group (ISRG). Por favor, lee y acepta los términos del Acuerdo de Suscripción de Let's Encrypt antes de usar este servicio.

#### Por Qué Usar Certificados

La comunicación con tu FreedomBox se puede asegurar de modo que se imposibilite interceptar los contenidos que tus servicios intercambian con sus usuarios.

#### Cómo configurar

1. Si tu FreedomBox está detrás de un router, necesitarás configurar la redirección de puertos en tu router. Debes redirigir los siguientes puertos:

   - TCP 80 (http)

   - TCP 443 (https)

2. Publica tu nombre de dominio:

   - En Configurar inserta tu nombre de dominio, p.ej. `MiWeb.com`

3. Verifica que se aceptó tu nombre de dominio

   - Comprueba que está habilitado en Nombres de Servicio

4. Ve a la página de los Certificados (Let's Encrypt) y completa la instalación del modulo si hace falta. Entonces haz clic en el botón "Obtain" de tu nombre de dominio.

   - Tras algunos minutos estará disponible un certificado válido

5. Verifica en tu navegador comprobando `https://MiWeb.com`

Screencast: Let's Encrypt

#### Usar

El certificado es válido por 3 meses. Se renueva automáticamente y también se puede volcer a obtener o revocar manualmente.

Ejecutando diagnostics se puede también verificar el certificado.

### Monkeysphere

Con Monkeysphere se puede generar una clave OpenPGP para cada dominio configurado para servir SSH. La clave pública OpenPGP se puede subir entonces a los servidores de claves OpenPGP. Los usuarios que se conecten mediante SSH podrán verificar que se están conectando a la máquina correcta. Para que los usuarios puedan confiar en la clave alguien (generalmente el dueño de la máquina) tiene que firmarla siguiendo el proceso normal de firmado de claves OpenPGP. Para más detalles, ver la documentación de Monkeysphere SSH.

Monkeysphere también puede generar una clave OpenPGP para cada certificado de servidor web seguro (HTTPS) instalado en esta máquina. La clave pública OpenPGP se puede subir entonces a los servidores de claves OpenPGP. Los usuarios que se conecten mediante SSH podrán verificar que se están conectando a la máquina correcta. Para validar el certificado el usuario deberá instalar cierto software disponible en el sitio web de Monkeysphere.

### Servicios de Nombre

Los Servicios de Nombre proporcionan una vista general a las formas de acceder desde la Internet pública a tu !Freedombox: nombre de dominio, servicio Tor Onion y cometa (Pagekite). Para cada tipo de nombre se indica si los servicios HTTP, HTTPS, y SSH están habilitados o deshabilitados para conexiones entrantes.

### Redes

Esta sección describe como se configura por defecto la red en FreedomBox y como se puede adaptar. Ver también la sección Cortafuegos para más información acerca de cómo funciona éste.

#### Configuración por defecto

En una imágen fresca de FreedomBox la red no está configurada. La configuración se realiza cuando la imágen se graba en una tarjeta SD y el dispositivo arranca. Durante el primer arranque el paquete FreedomBox `setup` detecta los interfaces (tarjetas) de red e intenta configurarlos automáticamente de modo que la FreedomBox quede disponible para seguir configurandola a través del interfaz web de otra máquina, sin necesidad de conectar un monitor a la FreedomBox. La configuración automática también procura dejar la FreedomBox operativa para sus escenarios de uso más importantes.

Trata 2 escenarios:

- cuando hay 1 único interfaz (tarjeta) ethernet

- cuando hay múltiples interfaces (tarjetas) ethernet

##### interfaz (tarjeta) ethernet único

Cuando el dispositivo hardware solo tiene 1 único interfaz (tarjeta) ethernet hay poco margen para que haga de router. En tal caso se asume que el dispositivo es solo una máquina más en la red. En consecuencia el único interfaz (tarjeta) disponible se configura para ser un interfaz interno en modo de configuración automática. Esto significa que se conecta a Internet empleando la configuración provista por un router de la red y que hace todos sus servicios (internos y externos) accesibles a todos los clientes que haya en esta red.

##### Múltiples interfaces (tarjetas) ethernet

Cuando el dispositivo hardware tiene múltiples interfaces (tarjetas) ethernet el dispositivo puede actuar como router. Entonces los interfaces se configuran para ejecutar esta función.

- El primer interfaz (tarjeta) de red se configura para ser una WAN o interfaz externo en modo de configuración automático. Esto significa que se conecta a Internet empleando la configuración provista por el proveedor de servicio de internet (ISP). En este interfaz solo se expondrán los servicios concebidos para cosumo desde Internet (servicios externos). Tu conexión a Internet tiene que llegar por el puerto de este interfaz (tarjeta) ethernet. Si quieres que tu router de siempre siga administrando tu conexión por tí conecta un cable desde tu router al puerto de este interfaz.

- Los demás interfaces de red se configuran como clientes de router, como LAN o interfaces internos en modo de configuración compartido. Esto significa que todos sus servicios (internos y externos) se exponen a todos los clientes que entren desde esta red. Compartido implica además que los clientes podrán recibir detalles conexión automática a la red. En concreto, la configuración DHCP y los servidores DNS se exponen en este interfaz. La conexión a Internet disponible para el dispositivo a través del primer interfaz se compartirá con los clintes que usen este interfaz. Todo esto implica que puedes conectar tus ordenadores a esta interfaz (tarjeta) de red y se configurarán automáticamente pudiendo acceder a Internet a través de tu FreedomBox.

Aunque el proceso de asignación es determinista actualmente no está muy claro qué interfaz será WAN (los demás serán LAN). Así que averiguar cual es cual conllevará un poco de prueba y error. En el futuro esto estará bien documentado para cada dispositivo.

##### Configuración de la Wi-Fi

Todos los interfaces Wi-Fi se configuran para ser LAN o interfaces internos en modo de configuración compartido. También se configuran para ser puntos de acceso Wi-Fi con los siguientes datos:

- El nombre de cada punto de acceso será `FreedomBox` más el nombre del interfaz (para tratar el caso de que haya varios).

- La contraseña para conectar a los interfaces será `freedombox123`.

#### Compartición de la Conexión a Internet

Aunque la principal obligación de FreedomBox es proporcionar servicios descentralizados también puede ejercer como router casero. Por tanto en la mayoría de los casos FreedomBox se conecta a Internet y proporciona a otras máquinas de la red la posibilidad de usar esa conexión a Internet. FreedomBox puede hacer esto de 2 formas: usando un modo de conexión compartido o empleando una conexión interna.

Cuando se configura un interfaz en modo compartido puedes conectarle tu máquina directamente, sea por cable desde este interfaz a tu máquina o conectando a través del punto de acceso Wi-Fi. Este caso es el más facil de usar porque FreedomBox automáticamente proporciona a tu máquina la configuración de red necesaria. Tu máquina conectará automáticamente a la red proporcionada por FreedomBox y podrá conectar a Internet ya que FreedomBox puede a su vez conectarse a Internet.

En ocasiones la configuración anterior podría no ser posible porque el dispositivo hardware tenga un único interfaz de red o por otros motivos. Incluso en este caso tu máquina puede todavía conectarse a Internet a través de la FreedomBox. Para que esto funcione asegúrate de que el interfaz de red al que se está conectando tu máquina esté en modo interno. Entonces conecta tu máquina a la red en la que está la FreedomBox. Después de esto configura la red de tu máquina indicando como puerta de enlace la dirección IP de la FreedomBox. FreedomBox aceptará entonces el tráfico de red de tu maquina y lo enviará a Internet. Esto funciona porque los interfaces de red en modo interno están configurados para enmascarar hacia Internet los paquetes que lleguen desde máquinas locales, así como para recibir paquetes desde Internet y reenviarlos hacia las máquinas locales.

#### Adaptaciones

La configuración por defecto anterior podría no servir para tu caso. Puedes adecuar la configuración para ajustarla a tus necesidades desde el área Redes de la sección Configuración del interfaz web de tu FreedomBox.

##### Conexiones PPPoE

Si tu ISP no proporciona configuración de red automática via DHCP y te obliga a conectar por PPPoE, para configurarlo elimina toda conexión de red existente en el interfaz y añade una de tipo PPPoE. Aquí, si procede, indica el usuario y la contraseña que te ha dado tu ISP y activa la conexión.

##### Conectar a Internet mdiante Wi-Fi

Por defecto durante el primer arranque los dispositivos Wi-Fi se configurarán como puntos de acceso. Sin embargo se pueden reconfigurar como dispositivos Wi-Fi normales para conectar a la red local o a un router WiFi existente. Para hacer esto haz clic en la conexión Wi-Fi para editarla. Cambia el modo a Infraestructura en vez de Punto de Acceso y Método de direccionamiento IPv4 a Automático (DHCP) en vez de Modo compartido. SSID proporcionado significa el nombre de la red Wi-Fi a la que quieres conectar. Rellena la frase clave.

###### Problemas con la Funcionalidad de Privacidad

El gestor de red que emplea FreedomBox para conectar con las redes Wi-Fi tienen una funcionalidad de privacidad que usa una identidad para buscar redes diferente de la que emplea para conectar con el punto de acceso Wi-Fi. Desafortunadamente esto causa problemas con algunos routers que rechazan estas conexiones. Tu conexión no se activará con éxito y se desconectará. Si tienes control sobre el comportamiento del router puedes desactivar esta funcionalidad. Si no la solución es desactivar la funcionalidad de privacidad:

Entra a la FreedomBox por SSH o Cockpit.

Edita el fichero `/etc/NetworkManager/NetworkManager.conf`:

    $ sudo nano /etc/NetworkManager/NetworkManager.conf

Añade la linea `wifi.scan-rand-mac-address=no` en la sección `[device]`:

    [device]
    wifi.scan-rand-mac-address=no

Luego reinicia la FreedomBox.

##### Añadir un nuevo dispositivo de red

Al añadir un nuevo dispositivo de red `network manager` lo configurará automáticamente. En la mayoría de los casos esto no funcionará. Borra la configuración creada automáticamente en el interfaz y crea una conexión de red nueva. Selecciona tu interfaz recién creado en la página "añadir conexión".

- Configura la zona del cortafuegos como corresponda.

- Puedes configurar los interfaces para conectar a la red o proporcionar configuración de red a cualquier máquina que se le conecte.

- De modo similar, si es un interfaz Wi-Fi puedes configurarlo para ser un punto de acceso Wi-FI o para conectarse a puntos de acceso existentes en la red.

##### Configurar una red Mesh

FreedomBox tiene un soporte rudimentario para participar en redes mesh basadas en BATMAN-Adv. Es posible unirse a una red existe en tu zona o crear una red mesh nueva y compartir tu conexión a Internet con el resto de nodos que se unan a tu red. Tanto para unirte a una red mesh como para crear otra, actualmente hay que crear 2 conexiones y activarlas manualmente.

###### Unirse a una red Mesh

Para unirse a una red mesh existente en tu zona primero consulta a sus organizadores y obtén información acerca de la red.

1. Crea una conexión nueva y selecciona el tipo de conexión Wi-Fi. En el siguiente diálogo rellena los valores como se indica:

   Nombre del campo | Valor de ejemplo | Explicación
   Nombre de la Conexión | Mesh Join - BATMAN | El nombre tiene que acabar en `BATMAN` (con mayúsculas).
   Interfaz físico | wlan0 | El dispositivo Wi-Fi que quieres usar para conectar a la red mesh.
   Zona del cortafuegos | Externa | Ya que no quieres que los participantes en la red mesh usen dispositivos internos de tu FreedomBox.
   SSID | ch1.freifunk.net | Tal como te lo hayan dado los operadores de la red mesh. Esta red debería mostrarse en Redes Wi-Fi accesibles.
   Modo | Ad-hoc | Porque esta red es una red de pares (peer-to-peer).
   Banda de Frecuencia | 2.4Ghz | Tal como te lo hayan dado los operadores de la red mesh.
   Canal | 1 | Tal como te lo hayan dado los operadores de la red mesh.
   BSSID | 12:CA:FF:EE:BA:BE | Tal como te lo hayan dado los operadores de la red mesh.
   Autenticación | Abierta | Déjala abierta salvo que sepas que tu red mesh necesite otro valor.
   Contraseña |  | Déjala en blanco salvo que sepas el valor que necesite tu red mesh.
   Método de direccionamiento IPv4 | Deshabilitado | Todavía no queremos pedir una configuración IP.

   Graba la conexión y únete a la red mesh activándola.

2. Crea una segunda conexión nueva y selecciona el tipo Genérica. En el siguiente diálogo rellena los valores como se indica:

   Nombre del campo | Valor de ejemplo | Explicación
   Nombre de la Conexión | Mesh Connect | Cualquier nombre para identificar ésta conexión.
   Interfaz físico | bat0 | Este interfaz solo aparecerá tras activar con éxito la conexión del paso anterior.
   Zona del cortafuegos | Externa | Ya que no quieres que los participantes en la red mesh usen dispositivos internos de tu FreedomBox.
   Método de direccionamiento IPv4 | Auto | Generalmente las redes mesh tienen un servidor DHCP en algún sitio que le proporciona una configuración IP a tu máquina. Si no, consulta al operador y configura la dirección IP como te diga por el método manual.

   Graba la conexión. Configura tu maquina para participar en la red activando esta conexión. Actualmente hay que activarla manualmente cada vez que quieras unirte a la red. En el futuro FreedomBox lo hará automáticamente.

Ahora debieras poder llegar a otros nodos de la red. También podrás conectar a Internet a través de la red mesh si los operadores han instalado algúna puerta de enlace.

###### Crear una red Mesh

Para crear tu propia red mesh y compartir tu conexión a Internet con el resto de los nodos de la red:

1. Sigue las instrucciones del paso 1 de Unirse a una red Mesh empleando los valores válidos para tu red en SSID (un nombre para tu red Mesh), Banda de Frecuencia (generalmente 2.4Ghz), Canal (entre 1 y 11 para la banda de 2.4Ghz) y BSSID (una secuencia hexadecimal como 12:CA:DE:AD:BE:EF). Crea esta conexión y actívala.

2. Sigue las instrucciones del paso 2 de Unirse a una red Mesh seleccionando Compartido para Método de direccionamiento IPv4d. Esto proporcionará automáticamente una configuración IP a otros nodos de la red y compartirá la conexión a Internet de tu maquina (ya sea mediante un segudo interfaz Wi-Fi, Ethernet, etc.) con el otros nodos de la red mesh.

Corre la voz entre tus vecinos acerca de tu red mesh y pásales los parámetros que has empleado al crearla. Cuando otros nodos se conecten a esta red mesh tendrán que seguir las instrucciones del paso 1 de Unirse a una red Mesh empleando en SSID, Banda de Frecuencia y Canal los valores que has elegido para tu red mesh al crearla.

#### Operación de Red Manual

FreedomBox configura redes automáticamente por defecto y proporciona un interfaz simplificado para personalizar la configuración a necesidades específicas. En la mayoría de los casos la operación manual no es necesaria. Los siguientes pasos describen cómo operar la configuración de red a mano en caso de que el interfaz de FreedomBox le resulte insuficiente a un usuario para realizar una tarea o para diagnosticar un problema que FreedomBox no identifique.

En el interfaz de línea de comandos:

Para acceder a un interfaz de configuración de conexiones de red basado en texto:

    nmtui

Para ver la lista de dispositivos de red disponibles:

    nmcli device

Para ver la lista de conexiones configuradas:

    nmcli connection

Para ver el estado actual de una conexión:

    nmcli connection show '<nombre_de_la_conexión>'

Para ver la zona asignada actualmente en el cortafuegos a un interfaz de red:

    nmcli connection show '<nombre_de_la_conexión>' | grep zone

o

    firewall-cmd --zone=internal --list-all
    firewall-cmd --zone=external --list-all

Para crear una conexión nueva:

    nmcli con add con-name "<nombre_de_la_conexión>" ifname "<interfaz>" type ethernet
    nmcli con modify "<nombre_de_la_conexión>" connection.autoconnect TRUE
    nmcli con modify "<nombre_de_la_conexión>" connection.zone internal

Para cambiarle la zona a una conexión en el cortafuegos:

    nmcli con modify "<nombre_de_la_conexión>" connection.zone "<internal|external>"

Para más información acerca del uso del comando `nmcli` mira su página man. Para obtener una lista completa de configuraciones y tipos de conexión que acepta `Network Manager` mira:

https://developer.gnome.org/NetworkManager/stable/ref-settings.html

Para ver el estado actual del cortafuegos y operarlo manualmente lee la sección Cortafuegos.

### Apagado

Power proporciona un modo fácil de reiniciar o apagar tu FreedomBox. Después de seleccionar "Reiniciar" o "Apagar", se te pedirá confirmación. Se puede llegar también a las opciones "Reiniciar" y "Apagar" desde el menú desplegable del usuario en la esquina superior derecha.

### Visibilidad Publica (PageKite)

#### ¿Qué es PageKite?

PageKite hace inmediata y públicamente accesibles desde internet a los sitios web y servicios locales sin tener que crear tu mismo una dirección IP pública. Lo hace tunelando protocolos como HTTPS o SSH a través de cortafuegos y NAT. Usar PageKite require ana cuenta en un servicio de repetidor de PageKite. https://pagekite.net es uno de de estos servicios.

Un servicio de repetidor de PageKite te permitirá crear cometas (kites). Las cometas son similares a los nombres de dominio pero con ventajas y desventajas diferentes. Una cometa puede tener varios servicios configurados. Se sabe que PageKite funciona con HTTP, HTTPS, y SSH, y muchas funcionan con otros servicios, pero no todas.

#### Usar PageKite

1. Créate una cuenta en un servicio de repetidor de PageKite.

2. Añade una cometa a tu cuenta. Anota el nombre y el sectreo de tu cometa.

3. En Plinth, vé a la solapa "Configurar PageKite" de la página Visibilidad Publica (PageKite).

4. Marca la caja "Habilitar PageKite" e introduce el nombre y el secreto de tu cometa. Haz clic en "Grabar propiedades".

5. En la solapa "Servicios Estándar" puedes habilitar HTTP y HTTPS (recomendado) y SSH (opcional).

   - HTTP se necesita para obtener el certificado Let's Encrypt. Puedes deshabilitarlo (HTTPS) más tarde.

6. En la página Certificados (Let's Encrypt) puedes obtener un certificado Let's Encrypt para el nombre de tu cometa.

### Shell Segura

#### ¿Qué es Shell Segura?

FreedomBox ejecuta el servidor `openssh-server` por defecto permitiendo así accesos remotos desde todos los interfaces. Si tu dispositivo hardware está connectado a un monitor y un teclado, también puedes ingresar directamente. Para la operación habitual de FreedomBox no necesitas usar la shell. No obstante, algunas tareas o identificación de algún problema podrían requerirlo.

#### Configurando una Cuenta de Usuario

##### Primer ingreso a Plinth: Cuenta de Admin

Al crear una cuenta en Plinth por primera vez, el usuario tendrá automaticamente privilegios de administrador. Los usuarios `Admin` pueden ingresar mediante ssh (abajo se explica cómo) y escalar sus privilegios a superusuario mediante sudo.

##### Cuenta de Usuario por Defecto

- Nota: Si puedes acceder a Plinth es que no necesitas hacer esto. Puedes usar la cuenta de usuario de Plinth para conectar por SSH.

Las imagenes precompiladas FreedomBox tienen una cuenta de usuario llamada `fbx` pero no tiene contraseña establecida, así que no se puede ingresar con esta cuenta.

Hay un script incluído en el programa `freedom-maker` que permite establecer la contraseña de esta cuenta si fuera necesario:

1. Descomprime la imagen.

2. Obtén una copia de `freedom-maker` en https://salsa.debian.org/freedombox-team/freedom-maker/.

3. Ejecuta `sudo ./bin/passwd-in-image <archivo_de_imagen> fbx`.

4. Copia el archivo de la imagen a la tarjeta SD e inicia el dispositivo.

El usuario "fbx" también tiene privilegios de superusuario mediante sudo.

#### Ingresando

##### Local

Para ingresar mediante SSH a tu FreedomBox:

    $ ssh fbx@freedombox

Reemplaza `fbx` por el usuario con el que quieres ingresar. Hay que reemplazar `freedombox` por el hostname o dirección IP de tu dispositivo FreedomBox como se indica en el proceso de Inicio rápido.

`fbx` es el usuario de FreedomBox con privilegios de superusuario por defecto. Cualquier otro usuario creado con Plinth que pertenezca al grupo `admin` podrá ingresar. La cuenta `root` no tiene contraseña configurada y no podrá ingresar. A todos los demás usuarios se les denegará el acceso.

`fbx` y los otros usuarios del grupo `admin` podrán ingresar directamente por el terminal. A todos los demás usuarios se les denegará el acceso.

Si fallas repetidamente intentando ingresar se te bloqueará el acceso por algún tiempo. Esto se debe al paquete `libpam-abl` que FreedomBox instala por defecto. Para controlar este comportamiento consulta la documentación de `libpam-abl`.

##### SSH via Tor

Si tienes habilitados en Plinth los servicios Tor Onion puedes acceder a tu FreedomBox mediante ssh sobre Tor. Instala `netcat-openbsd`.

    $ sudo apt-get install netcat-openbsd

Edita `~/.ssh/config` para habilitar conexiones sobre Tor.

    $ nano ~/.ssh/config

Añade lo siguiente:

    Host *.onion
      user USUARIO
      port 22
      ProxyCommand nc -X 5 -x 127.0.0.1:9050 %h %p

Replace USUARIO por un usuario del grupo `admin` (ver arriba).

En algunos casos podrías necesitar reemplazar 9050 por 9150.

Ahora, para conectar a la FreedomBox abre un terminal y teclea:

    $ ssh USUARIO@DIRECCION.onion

Reemplaza USUARIO por un usuario del grupo `admin` y DIRECCION por la dirección del servicio Tor Onion para SSH de tu FreedomBox.

#### Escalar a Superusuario

Si después de ingresar quieres volverte superusuario para realizar actividades administrativas:

    $ sudo su

Habitúate a ingresar como `root` solo cuando sea estrictamente necesario. Si no ingresas como `root` no puedes romperlo todo accidentalmente.

#### Cambiar Contraseñas

Para cambiar la contraseña de un usuario administrado en Plinth usa la página Cambiar contraseña. El usuario por debecto `fbx` no se administra en Plinth y su contraseña no se puede cambiar desde la interfaz web.

Para cambiar la contraseña en el terminal ingresa a tu FreedomBox con el usuario cuya contraseña quieres cambiar y ejecuta el siguiente comando:

    $ passwd

Esto te preguntará tu contraseña actual antes de darte la oportunidad de establecer la nueva.

### Seguridad

Cuando se habilita esta opción sólo los usuarios del grupo "admin" podrán entrar a la consola o mediante SSH. Los usuarios de consola podrán acceder a algunos servicios sin más autorización.

La sección Usuarios explica cómo definir grupos de usuarios.

Cuando la opción Restringir ingresos por consola está habilitada, sólo los usuarios del grupo admin podrán ingresar via consola, shell segura (SSH) o interfaz gráfico. Al desactivar esta funcionalidad cualquier usuario con cuenta en FreedomBox podrá ingresar y quizá tener acceso a ciertos servicios sin más autorización. Esta opción solo debería desactivarse si se confía plenamente en todos los usuarios del sistema. Si quieres usar tu máquina FreedomBox también como escritorio y admitir que usuarios no-admin ingresen mediante interfáz gráfica esta opción debe estar desactivada. Puedes determinar la lista de usuarios admin en la sección Users.

### Detección de Servicios

La Detección de Servicios permite a otros dispositivos de la red detectar a tu FreedomBox y a los servicios que expone. Si un cliente de la red local soporta mDNS, puede encontrar tu FreedomBox en <hostname>.local (por ejemplo: freedombox.local).

También permite a FreedomBox detectar otros dispositivos y servicios que están funcionando en tu red local.

La Detección de Servicios no es esencial y solo funciona en redes internas. Se puede deshabilitar para mejorar la seguridad especialmente cuando la conectas a una red local hostil.

### Instantáneas

Las Instantáneas te permiten crear instantáneas del sistema de archivos y devolver al sistema a un estado anterior.

- Nota: Esta funcionalidad requier un sistema de archivos Btrfs. Todas las imágenes de disco de FreedomBox estables usan Btrfs.

### Almacenamiento

Almacenamiento te permite ver los dispositivos de almacenamiento conectados a tu FreedomBox y el uso de su espacio.

FreedomBox puede detectar y montar automáticamente medios extraíbles como unidades flash USB. Se muestran listados bajo la sección Dispositivos extraíbles junto con una opción para expulsarlos.

Si queda espacio libre detrás de la partición de root, se mostrará también la opción para expandirla. Normalmente no se muestra ya que en el primer arranque de la FreedomBox se produce automáticamente una expansión total de la partición de root.

### Actualizaciones de Software

FreedomBox puede instalar actualizaciones de seguridad automaticamente. Esta funcionalidad viene activada por defecto y no hace falta ninguna acción manual. Puedes activar las actualizaciones automaticas desde Plinth en en la página Actualizaciones de la sección Preferencias. Se recomienda encarecidamente que tengas esta opción habilitada para mantener tu FreedomBox segura.

Las actualizaciones se efectúan cada noche. Si quieres apagar tu FreedomBox cada día después de usarla, déjala ejecutando una noche a la semana más o menos para permitir que ocurran las actualizaciones automaticas. Otra posibilidad es ejecutar actualizaciones manuales como se describe más adelante.

Nota que una vez comiencen las actualizaciones podría llevarles mucho tiempo completarse. Durante el proceso de actualización (ya sea el automático nocturno o el manual), no podrás instalar aplicaciones desde el interfaz web de FreedomBox.

#### ¿Cuando obtendré las últimas funcionalidades?

Aunque las actualizaciones se efectúan a diario por razones de seguridad, las últimas funcionalidades no se propagan a todos los usuarios. A continuación se explica cómo llegan las novedades a los usuarios de las diferentes versiones de Debian:

- Usuarios de versiones estables: Esta categoria de usuarios incluye a los usuarios que compraron la FreedomBox Pioneer Edition, a los que instalaron FreedomBox sobre una distribución estable de Debian y a los que descargaron las imágenes estables desde freedombox.org. Como regla general a estos usuarios solo se les proporciona actualizaciones de seguridad de determinados paquetes. Cuando una release obtiene la confianza de los desarrolladores el propio servicio FreedomBox se actualiza, lo que supone una excepción a esta regla. Esto implica que las últimas funcionalidades de FreedomBox estarán disponibles para estos usuarios aunque no tán inmediata- o frecuentemente como para los usuarios de las versiones en pruebas (testing). Si una app sólo está disponible en la distribución en pruebas (testing) pero no en la estable la app aparecerá en el interfaz web pero no será instalable para los usuarios de la distribución estable. Algunas apps se actualizan en excepción a la regla de "solo actualizaciones de seguridad" cuando la app esté seriamente rota por algún motivo. Debian libera cada bienio una entrega (release) con las últimas versiones estables de cada paquete de software y los desarrolladores de FreedomBox intentarán actualizar a estos usuarios a la nueva entrega (release) sin necesidad de intervención manual.

- Usuarios de versiones en pruebas: Esta categoria de usuarios incluye a los usuarios que instalaron FreedomBox sobre una distribución en pruebas (testing) y a los que descargaron las imágenes en pruebas (testing) desde freedombox.org. Estos usuarios asumen la posibilidad de afrontar disrupciones ocasionales en los servicios e incluso tener que intervenir manualmente para arreglarlas. Como regla general estos usuarios reciben las últimas funcionalidades y actualizaciones de seguridad para todos los paquetes instalados. Cada quincena se libera una nueva versión de FreedomBox con todas las últimas funcionalidades y correcciones. Estas versiones llegan a los usuarios de la distribución en pruebas (testing) aproximadamente 2 o 3 días después de la liberación.

- Usuarios de versiones inestables: Esta categoria de usuarios incluye a los usuarios que instalaron FreedomBox sobre una distribución inestable y a los que descargaron las imágenes inestables desde freedombox.org. Estos usuarios asumen la probabilidad de afrontar disrupciones en los servicios y tener que intervenir manualmente para arreglarlas. Como regla general estos usuarios reciben las últimas funcionalidades y actualizaciones de seguridad para todos los paquetes instalados. Cada quincena se libera una nueva versión de FreedomBox con todas las últimas funcionalidades y correcciones. Estas versiones llegan a los usuarios de la distribución inestable el mismo día de la liberación. Solo los desarrolladores, probadores y contribuyentes al proyecto FreedomBox debieran emplear la distribution inestable. Se advierte y exhorta a los usuarios finales de que no la usen.

#### Actualizaciones Manuales desde el Terminal

Algunos paquetes de software podrían requerir intervención manual para actualizarlos, generalmente por razones de configuración. En tales casos FreedomBox se actualiza a sí mismo y solicita información nueva necesaria para la actualización del paquete. Después de autoactualizarse FreedomBox actúa en nombre del usuario y actualiza los paquetes con la información recabada. Estos paquetes no se deben actualizar manualmente hasta que FreedomBox tenga a posibilidad de actualizarlos. La actualización que se dispara manualmente desde el interfaz web ya es consciente de estos paquetes y no los actualiza.

En situaciones muy extrañas, FreedomBox podría fallar o quedar a expensas de una intervención manual desde el terminal. Para esto, entra a FreedomBox por un terminal, ya sea físico, web (empleando Cockpit) o mediante SSH (ver sección Shell Segura) y ejecuta los siguientes comandos:

    $ sudo su -
    Password: <introduce la contraseña aquí>
    # dpkg --configure -a
    # apt update
    # apt -f install
    # unattended-upgrade --debug
    # apt install freedombox
    # apt update

Si `apt-get update` te pide confirmación para algo responde que Sí. Si durante la actualización del paquete `freedombox` te pregunta acerca de los archivos de configuración responde que instale los archivos de configuración nuevos que vienen con la última versión del paquete. Este proceso solo actualizará los paquetes que no necesitan preguntar (excepto el paquete `freedombox`). Después, deja que FreedomBox se encargue de la actualización de los demás paquetes. Sé paciente mientras se crean nuevas versiones de FreedomBox para tratar los paquetes que necesitan intervención manual.

Si quieres ir más allá de la recomendación e instalar todos los paquetes en tu FreedomBox y realmente estás muy seguro de poder tratar los cambios de configuración de paquetes por tí mismo, ejecuta el siguiente comando:

    $ apt dist-upgrade

### Usuarios y Grupos

Puedes otorgar acceso a tu FreedomBox a otros usuarios. Proporciona el nombre del usuario y su contraseña y asignale un grupo. Actualmente se soportan los grupos

- admin

- wiki

El usuario podrá ingresar a los servicios que soporten ingreso único (single-sign-on) mediante LDAP si figuran en el grupo apropriado.

Los usuarios del grupo `admin` podrán ingresar en todos los servicios. También pueden ingresar al sistema por SSH y escalar a privilegios administrativos (sudo).

Estas características se pueden cambiar más tarde.

Asimismo es posible establecer una clave pública SSH que permitirá al usuario ingresar al sistema de modo seguro sin emplear su contraseña. Pueder dar de alta varias claves, una en cada línea. Las líneas en blanco o que comiencen por # se ignoran.

Se pueden desactivar temporalmente las cuentas de usuarios.

#### Reparos Conocidos

- Actualmente Plinth not distingue entre usuarios y administradores. Todo usuario añadido mediante Plinth tendrá accesso completo al interfaz de Plinth.

## Hardware

FreedomBox está diseñado para ser el software de un dispositivo electrónico de consumo que sea fácil de configurar, mantener y usar. El proyecto no pretende crear un dispositivo hardware propio, sino asociarse con fabricantes de hardware para construir dispositivos FreedomBox y también soportar hardware existente.

Además de soportar varios SBC's (single board computers) y otros dispositivos, FreedomBox también contempla ser instalado en una máquina virtual. Y cualquier máquina Debian se puede convertir en FreedomBox instalando el paquete `freedombox`. Para más detalles acerca de la instalación sobre Debian, ver el manual.

### Hardware Recomendado

El 22 de Abril de 2019, la FreedomBox Foundation anunció que los kits Pioneer Edition FreedomBox Home Server salían a la venta. Este es el hardware preinstalado recomendado para todos los usuarios que no quieran construirse su propia (máquina) FreedomBox eligiendo los componentes adecuados, descargando la imagen y preparando una tarjeta SD con (el software) FreedomBox.

El kit incluye todo el hardware necesario para arrancar un servidor casero FreedomBox sobre una placa Olimex A20-OLinuXino-LIME2. Este producto proporciona la combinación perfecta de hardware de fuentes abiertas y software libre. Al comprar este producto, soportas también los esfuerzos de la FreedomBox Foundation para crear y promover su software de servidor libre.

Kits de Servidor Casero FreedomBox Pioneer Edition

### Hardware Soportado

Usa este hardware si quieres y eres capaz de descargar imágenes FreedomBox y preparar una tarjeta SD siguiendo el manual. Si quieres un proceso más simple de configuración compra por favor los kits FreedomBox con el hardware recomendado. Si usas una placa con tarjetas SD te recomendamos que al grabar la imagen de FreedomBox en tu tarjeta, ésta tenga al menos una capacidad de 8GB.

A20 OLinuXino Lime2 | A20 OLinuXino MICRO | PC Engines APU
Cubietruck | Cubieboard2 | BeagleBone Black
pcDuino3 | Debian | VirtualBox
Pine A64+ | Banana Pro |

#### Comparativa de Hardware

Nombre | Velocidad CPU (GHz) | Arquitectura | RAM (GB) | disco (GB) | batería | SATA | Velocidad Ethernet | OSHW
APU.1D | 1x2 | amd64 | 2 | - | - |  | 1000x3 |
APU.1D4 | 1x2 | amd64 | 4 | - | - |  | 1000x3 |
BeagleBone Black C | 1 | armhf/omap | ½ | 4 | - | - | 100 |
Cubieboard2 | 1x2 | armhf/sunxi | 1 | 4 |  |  | 100 |
Cubieboard2-Dual | 1x2 | armhf/sunxi | 1 | - |  |  | 100 |
Cubieboard3/Cubietruck | 1x2 | armhf/sunxi | 2 | 8 |  |  | 1000 |
OLinuXino A20 LIME | 1x2 | armhf/sunxi | ½ | - |  |  | 100 |
OLinuXino A20 LIME2 | 1x2 | armhf/sunxi | 1 | - |  |  | 1000 |
OLinuXino A20 MICRO | 1x2 | armhf/sunxi | 1 | - |  |  | 100 |
pcDunino3 | 1x2 | armhf/sunxi | 1 | 4 |  |  | 100 |
Pine A64+ | 1.2x4 | arm64/sunxi | ½,1,2 | - | - | - | 1000 |
Banana Pro | 1.2x2 | armhf/sunxi | 1 | - | - |  | 10/100/1000 |

### Más Hardware Operativo

Freedombox funciona en este hardware. Pero no se recomienda porque (el hardware) no funciona empleando únicamante software libre:

Raspberry Pi 2 | Raspberry Pi 3 Model B | Raspberry Pi 3 Model B+

### Hardware Obsoleto

Este hardware estuvo soportado anteriormente pero ya no. Si descargaste una imagen anterior y ejecutas FreedomBox sobre algún hardware de estos, seguirás obteniendo actualizaciones de software. Sin embargo, no se publicarán imagenes nuevas. Se recomienda que migres a hardware nuevo y soportado generando una copia de seguridad y restaurándola.

DreamPlug | Raspberry Pi

Note: Como FreedomBox está actualmente en desarrollo, hardware soportado significa que las imágenes de FreedomBox se construyen para este hardware y al menos un desarrollador ha informado que las funciones básicas funcionan.

### Añadir Soporte a más Hardware

Aunque el proyecto se enfoque en soportar determinados dispositivos queremos soportar la mayor cantidad de hardware posible, mientras se adecúe a las necesidades de FreedomBox. Echa un vistazo a la lista de objetivos hardware para más información.

Si eres desarrollador, considera añadir soporte a hardware para tu dispositivo modificando Freedom Maker. Si tienes acceso a algún dispositivo de hardware objeto y quisieras trabajar con nosotros para hacer que funcione con FreedomBox ¡contactanos, por favor!

### FreedomBox Pioneer Edition

Los servidores caseros FreedomBox Pioneer Edition los fabrica y vende Olimex, una compañía epecializada en hardware de fuentes abiertas. El Kit incluye hardware de servidor tamaño bolsillo, una tarjeta SD con el sistema operativo preinstalado, y una batería de respaldo que puede alimentar el hardware durante 4-5 horas en casos de indisponibilidad de la red eléctrica. Se vende por 82 €. Al comprar este producto contribuyes a los esfuerzos de la FreedomBox Foundation's para crear y promover su software de servidor libre.

### Características del Producto

#### HW Recomendado

Éste es el hardware recomendado para los usuarios que quieran simplemente una FreedomBox llave en mano, y no quieran construirse una.

(Construir tu propia FreedomBox implica algunos tecnicismos como elegir y comprar los componentes adecuados, descargar la imágen y preparar una tarjeta SD).

#### Este Kit

Este producto proporciona la combinación perfecta de hardware de fuentes abiertas y software libre y open source. Comprando este producto, soportas también los edfuerzos de la FreedomBox Foundation para crear y promover su software libre y open source de servidor.

El Kit de Servidor Casero FreedomBox Pioneer Edition incluye todo el hardware necesario para arrancar un servidor FreedomBox casero sobre una placa Olimex A20-OLinuXino-LIME2:

- la A20-OlinuXino-LIME2,

- su carcasa de metal con el logo de FreedomBox grabado mediante laser,

- una tarjeta micro SD de alta velocidad y 32GB con el software FreedomBox preinstalado,

- una batería de respaldo,

- un transformador, y

- un cable Ethernet.

#### Disponibilidad

El servidor casero FreedomBox Pioneer Edition es la primera versión comercial disponible de FreedomBox.

- Precio: 82 EUR

- Tienda Olimex

#### Especificaciones del Hardware

- Hardware de fuentes abiertas (OSHW): Sí

- CPU: Allwinner A20, ARM Cortex-A7 dual-core a 1GHz

- RAM: 1 GiB DDR3

- Almacenamiento: tarjeta microSD de 32GB de clase 10+ precargada con FreedomBox

- Batería: Li-Po, 3.3V y 1400mAh (4-5 horas de respaldo si no hay dispositivos adicionales conectados al puerto USB)

- Ethernet: 10/100/1000, RJ45 (cable de 1 m incluído)

- Transformador: Entrada a 110-220V, salida a 5V, estilo UE (enchufes opcionales para el Reino Unido o EE.UU)

- Carcasa: Metálica con la marca FreedomBox

Los kits ejecutan sólo Software Libre. Funcionan con núcleo (kernel) y u-boot de los repositorios Debian. Incluso el firmware de arranque de la ROM, llamado BROM es software libre (GPLV2+).

#### Descarga

Los kits vienen con una tarjeta SD precargada con FreedomBox. NO hace ninguna falta descargar imágenes.

No obstante, si deseas restablecer tus dispositivos a un estado virginal puedes hacerlo con la imágen provista. Sigue las instrucciones de la página de descargas para crear una tarjeta SD de FreedomBox y arrancar tu dispositivo. Asegúrate de descargar imágenes para la Pioneer Edition. Estas imágenes de tarjeta SD se usan en la ranura SD de la propia placa y no funcionarán si se insertan en un lector SD externo conectado por USB.

Una alternativa a descargar estas imágenes es instalar Debian en el dispositivo y luego instalar FreedomBox sobre él.

#### Construcción de una Imágen

Las imágenes de FreedomBox para este hardware se pueden construir usando Freedom Maker.

#### Reparos conocidos

- La imágen distribuída con los kits usa un u-boot ligéramente modificado en vez de el de serie de Debian como el resto de FreedomBox. Así que si quieres obtener su código fuente usa por favor el repositorio de u-boot del equipo de FreedomBox.

### Obtener el Código Fuente

FreedomBox es 100% software libre y puedes obtener el código fuente para estudiarlo, modificarlo y distribuir mejoras.

#### Desde (dentro de) FreedomBox

FreedomBox se compone de diferentes programas de software y puedes obtener el código fuente de cualquiera de ellos. Estas instrucciones son similares a obtener y construír código fuente de Debian ya que FreedomBox es una variante pura de Debian. Usando este procedimiento puedes obtener el código fuente de la misma versión del paquete que estás usando actualmene en FreedomBox.

1. Para ver la lista de paquetes software instalados en tu FreedomBox, ejecuta lo siguiente en un terminal:

       dpkg -l

2. Para obtener el código fuente de cualquiera de esos programas ejecuta:

       apt source <nombre_del_paquete>

   Esto requiere que el archivo /etc/apt/sources.list contenga información acerca de los repositorios de código fuente. Esto es así por defecto en todas las imágenes FreedomBox. Pero si has instalado FreedomBox desde Debian necesitas asegurarte de que los repositorios de código fuente figuren en este archivo.

3. Para construir el paquete desde su código fuente, primero instala sus dependencias

       apt build-dep <nombre_del_paquete>

   Cambia al directorio fuente creado con el comando apt source:

       cd <directorio_fuente>

   Y construye el paquete

        dpkg-buildpackage -rfakeroot -uc

4. Instala el paquete:

        dpkg -i ../<paquete_construído>.deb

#### Otras Maneras de Obtener el Código Fuente

1. El código fuente de cualquier paquete se puede ver y buscar usando el interfaz web de sources.debian.org. Por ejemplo, mira el paquete plinth.

2. El código fuente y el binario precompilado de cualquier version de un paquete, incluyendo versiones antigüas, se pueden obtener de snapshot.debian.org. Por ejemplo, mira el paquete plinth.

3. También puedes obtener los enlaces a la web del proyecto original, al control de versiones del proyecto original, al control de versiones de Debian, registro de cambios, etc. desde la página de control Debian para el proyecto en tracker.debian.org. Por ejemplo, mira la página de control para el paquete plinth.

4. Puedes compilar e instalar un paquete desde el control de versiones de Debian. Por ejemplo,

        git clone https://salsa.debian.org/freedombox-team/plinth
        cd plinth
        apt build-dep .
        dpkg-buildpackage -rfakeroot -uc
        dpkg -i ../plinth*.deb

#### Construyendo Imágenes de disco

También puedes construír imágenes de disco FreedomBox para varias platformas de hardware usando la herramienta freedom-maker. Esta también está disponible como paquete Debian y su código fuente se puede obtener empleando los métodos anteriores. Hay disponibles Instrucciones de Construcción para generar imágenes de disco incluídas en el código fuente del paquete freedom-maker.

Las imágenes de disco de FreedomBox se construyen y suben a los servidores oficiales empleando la infraestructura de integración contínua automatizada. Esta infraestructura está disponible también como código fuente y proporciona información precisa acerca de como se contruyen las imágenes de FreedomBox.

##### Imágenes U-boot sobre Pioneer Edition

Hay una excepción menor en el paquete u-boot que viene con el hardware que se vende como Kits de Servidor Casero FreedomBox Pioneer Edition. Contiene un parche pequeño pero importante que no está en el código fuente de Debian. Tanto el repositorio fuente de Debian u-boot como el parche de FreedomBox están disponibles como un repositorio aparte. Esperamos que en algún momento este parche esté integrado en u-boot de serie y este repositorio ya no sea necesario. Este paquete se puede compilar en una máquina Debian armhf como sigue (también se puede hacer compilación cruzada, simplemente sigue las instrucciones para compilación cruzada de paquetes Debian):

    apt install git git-buildpackage
    git clone https://salsa.debian.org/freedombox-team/u-boot.git
    cd u-boot
    pbuilder create --distribution=buster
    gbp buildpackage --git-pbuilder

El paquete u-boot Debian estará en u-boot-sunxi*.deb. Este paquete contendrá

    mkdir temp
    dpkg -x u-boot-suxi*.deb temp
    unxz <lime2_image_built_with_freedom_maker>
    dd if=temp/usr/lib/u-boot/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin of=<lime2.img> seek=8 bs=1k conv=notrunc

La imagen resultante tendrá el u-boot modificado.

### Cubietruck

#### FreedomBox Danube Edition

FreedomBox Danube Edition is a custom casing around Cubietruck and an SSD-hard drive.

#### Cubietruck / Cubieboard3

Cubietruck (Cubieboard3) is a single board computer with very good performance compared to many other boards. FreedomBox images are built for this device. To use this board as FreedomBox, a separate USB WiFi device that does not require non-free firmware is recommended.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Download

FreedomBox SD card images are provided for this hardware. These SD card images are meant for use with the on-board SD card slot and do not work when used with a separate SD card reader connected via USB.

An alternative to downloading these images is to install Debian on the Cubietruck and then install FreedomBox on it.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker.

#### Availability

FreedomBox Danube Edition

- A limited number of units are planned to be shipped along with the release of FreedomBox. If you wish to get one, express your interest.

Cubietruck / Cubieboard3

- Price: 89 USD

- List of suppliers

#### Hardware

- Open Hardware: No

- CPU: Allwinner A20, ARM Cortex-A7 @ 1GHz dual-core

- RAM: 2 GiB DDR3 @ 480 MHz

- Storage: 8 GB NAND flash built-in, 1x microSD slot

- Architecture: armhf

- Ethernet: 10/100/1000, RJ45

- WiFi: Broadcom BCM4329/BCM40181 (no free WiFi drivers + firmware available)

- SATA: 1x 2.0 port

#### Non-Free Status

- Non-free blobs required: ?

- WiFi: no free WiFi drivers + firmware available

- Works with stock Debian kernel: yes

#### Known Issues

- The on-board WiFi does not work with free software. A separate USB WiFi device is recommended.

### Beagle Bone Black

Beagle Bone Black (Revision C.1) is an Open Source Hardware (OSHW) single board computer. This means that the designer is actively helping people using the platform for their own designs, and supports them in adding hardware functionality and production advice. This is a part of freedom that is often overlooked, but very much aligned with the FreedomBox goals. FreedomBox images are built and tested for this device. To use this device as a FreedomBox, a separate USB WiFi device that does not require non-free firmware is recommended.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Download

FreedomBox SD card images are available for this device. Follow the instructions on the download page to create a FreedomBox SD card and boot the device.

Note: This image is for BeagleBone Black (Revision C.1) only. It will not work on the BeagleBone Green, and also not on the Revisions A&B. If you have such a device and would like to help getting FreedomBox to run on it, contact us!

An alternative to downloading these images is to install Debian on the BeagleBone and then install FreedomBox on it.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker.

#### Availability

- Price: ~ 59 USD (50 EUR)

- Mouser Electronics

- Full list of suppliers

#### Hardware

- Open Source Hardware (OSHW): Yes

- CPU: AM335x 1GHz ARM Cortex-A8

- RAM: 512MB DDR3L 800 Mhz

- Storage: Onboard 4GB, 8bit Embedded MMC and microSD

- Architecture: armhf

- Ethernet: 10/100, RJ45

- WiFi: None, use a USB WiFi device

- SATA: None

#### Non-Free Status

- Non-free blobs required: No

- WiFi: Not available

- Works with stock Debian kernel: Yes

#### Known Issues

None

### A20 OLinuXino Lime2

Olimex's A20 OLinuXino Lime2 is a fully Open Source Hardware (OSHW) single board computer. This means that the designer is actively helping people using the platform for their own designs, and supports them in adding hardware functionality and production advice. This is a part of freedom that is often overlooked, but very much aligned with the FreedomBox goals. It uses the Allwinner A20 Dual Core ARM processor. FreedomBox images are built and tested for this device starting with version 0.7. To use this device as a FreedomBox, a separate USB WiFi device that does not require non-free firmware is recommended.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Similar Hardware

The following similar hardware will also work well with FreedomBox.

- Olimex's A20 OLinuXino Lime2 4GB. This hardware merely has extra 4GB NAND storage that is not used by FreedomBox.

#### Download

FreedomBox SD card images are available for this device. Follow the instructions on the download page to create a FreedomBox SD card and boot the device. These SD card images are meant for use with the on-board SD card slot and won't work when used with a separate SD card reader connected via USB.

An alternative to downloading these images is to install Debian on the device and then install FreedomBox on it.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker.

#### Availability

- Price: 45 EUR (A20 OLinuXino Lime2)

- Price: 55 EUR (A20 OLinuXino Lime2 4GB)

- Olimex Store

#### Hardware

- Open Source Hardware (OSHW): Yes

- CPU: Allwinner A20, ARM Cortex-A7 @ 1GHz dual-core

- RAM: 1 GiB DDR3

- Storage: 4 GB NAND flash built-in (only on 4GB model), 1x microSD slot

- Architecture: armhf

- Ethernet: 10/100/1000, RJ45

- WiFi: None, use a USB WiFi device

- SATA: 1x port

#### Non-Free Status

- Non-free blobs required: No

- WiFi: Not available

- Works with stock Debian kernel: Yes

- Boot Firmware: BROM (GPLV2+)

#### Known Issues

- Revision C hardware has poor performance when receiving Ethernet data in Gigabit mode. To workaround the problem, you can switch to 100 Mbps mode instead of Gigabit mode. Login to your FreedomBox as root (or plugin the SD card into another computer) and create the file /etc/NetworkManager/dispatcher.d/20-fix-ethernet-problem with the following contents:

      set -e  # Exit with code on error

      IFACE="$1"
      ACTION="$2"

      if [[ "$IFACE" != "eth0" ]]; then
          exit 0
      fi

      case ${ACTION} in
          up)
              logger "Setting up $IFACE in 100Mbps mode"
              mii-tool eth0 -A 100BaseTx-FD
              ;;
          *)
              ;;
      esac

- Revision G2 hardware has poor performance when transmitting Ethernet data in Gigabit mode. Download and use the Pioneer Edition image to fix the issue. It contains a slightly modified u-boot. The above workaround to put the Ethernet into 100 Mbps mode also fixes this issue.

- Revision K hardware is not working properly.

### A20 OLinuXino MICRO

Olimex's A20 OLinuXino MICRO is a fully Open Source Hardware (OSHW) single board computer. This means that the designer is actively helping people using the platform for their own designs, and supports them in adding hardware functionality and production advice. This is a part of freedom that is often overlooked, but very much aligned with the FreedomBox goals. It uses the Allwinner A20 Dual Core ARM processor. FreedomBox images are built and tested for this device starting with version 0.7. To use this device as a FreedomBox, a separate USB WiFi device that does not require non-free firmware is recommended.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Similar Hardware

The following similar hardware will also work well with FreedomBox.

- Olimex's A20 OLinuXino MICRO 4GB. This hardware merely has extra 4GB NAND storage that is not used by FreedomBox.

#### Download

FreedomBox MicroSD card images are available for this device. Follow the instructions on the download page to create a FreedomBox MicroSD card and boot the device. These MicroSD card images are meant for use with the on-board MicroSD card slot and won't work on the SD card slot or when using a separate MicroSD card reader connected via USB.

An alternative to downloading these images is to install Debian on the device and then install FreedomBox on it.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker.

#### Availability

- Price: 50 EUR (A20 OLinuXino MICRO)

- Price: 63 EUR (A20 OLinuXino MICRO 4GB)

- Olimex Store

#### Hardware

- Open Source Hardware (OSHW): Yes

- CPU: Allwinner A20, ARM Cortex-A7 @ 1GHz dual-core

- RAM: 1 GiB DDR3

- Storage: 4 GB NAND flash built-in (only on 4GB model), 1x microSD slot

- Architecture: armhf

- Ethernet: 10/100, RJ45

- WiFi: None, use a USB WiFi device

- SATA: 1x port

#### Non-Free Status

- Non-free blobs required: No

- WiFi: Not available

- Works with stock Debian kernel: Yes

- Boot Firmware: BROM (GPLV2+)

#### Known Issues

- Not visible on local network

- When booting the 'stable' image (made on 2017-06-18) the board does not automatically get an IP address from the router's DHCP server over ethernet. Booting the 'testing' image (2018-06) the board does get an IP address. Tested on MICRO hardware revision J. see also: https://www.olimex.com/forum/index.php?topic=5839.msg24167#msg24167

### APU

PC Engines APU 1D is a single board computer with 3 Gigabit ethernet ports, a powerful AMD APU and Coreboot firmware. FreedomBox images built for AMD64 machines are tested to work well for it. For using this board as FreedomBox, a USB WiFi device that does not require non-free firmware is recommended.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Similar Hardware

Although untested, the following similar hardware is also likely to work well with FreedomBox.

- Using amd64 image:

  - apu1c

  - apu1c4

  - apu1d4

  - apu2b2

  - apu2b4

  - apu2c0

  - apu2c2

  - apu2c4

  - apu3a2

  - apu3a4

  - apu3b2

  - apu3b4

- Using i386 image:

  - alix1d

  - alix1e

  - alix2d2

  - alix2d3

  - alix2d13

  - alix3d2

  - alix3d3

  - alix6f2

#### Download

FreedomBox disk images for this hardware are available. Follow the instructions on the download page to create a FreedomBox SD card, USB disk, SSD or hard drive and boot into FreedomBox. Pick the image meant for all amd64 machines.

An alternative to downloading these images is to install Debian on the APU and then install FreedomBox on it.

#### Networking

The first network port, the left most one in the above picture, is configured by FreedomBox to be an upstream Internet link and the remaining 2 ports are configured for local computers to connect to.

#### Build Image

FreedomBox images for this hardware, which is for all amd64 machines, can be built using Freedom Maker.

#### Availability

- Price: 110 - 170 USD (depending on the board and supplier)

- PC Engines

- Full list of suppliers

#### Hardware

- Open Hardware: No

- CPU: AMD G series T40E

- RAM: 2 GB DDR3-1066 DRAM

- Storage: SD card, External USB

- Architecture: amd64

- Ethernet: 3 Gigabit Ethernet ports

- WiFi: None, use a USB WiFi device

- SATA: 1 m-SATA and 1 SATA

#### Non-Free Status

- Non-free blobs required: No

- WiFi: Not available

- Works with stock Debian kernel: Yes

- Boot firmware: Coreboot

#### Known Issues

None

### pcDuino3

LinkSprite pcDuino3S is a single board computer running on Allwinner A20 and sold with a good case. FreedomBox images are built and tested for this device for images built after June 2017. For using this board as FreedomBox, a USB WiFi device that does not require non-free firmware is recommended.

Note: The FreedomBox logo is simply a sticker on top of device brought from store.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Similar Hardware

Although untested, the following similar hardware is also likely to work well with FreedomBox.

- http://www.linksprite.com/linksprite-pcduino3/pcDuino3

- http://www.linksprite.com/linksprite-pcduino3/pcDuino3B

#### Download

FreedomBox disk images for this hardware are available. Follow the instructions on the download page to create a FreedomBox SD card, USB disk, SSD or hard drive and boot into FreedomBox. Pick the image meant for pcduino3.

An alternative to downloading these images is to install Debian on the APU and then install FreedomBox on it.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker.

#### Availability

- Price: 89 USD

- LinkSprite

- Full list of suppliers

#### Hardware

- Open Hardware: No

- CPU: AllWinner A20 SoC, 1GHz ARM Cortex A7 Dual Core

- RAM: 1 GB

- Storage: SD card, 4 GB onboard flash

- Architecture: armhf

- Ethernet: 10/100 Mbps

- WiFi: Built-in WiFi requires non-free firmware, use a USB WiFi device instead

- SATA: 1 SATA host socket

#### Non-Free Status

- Non-free blobs required: No

- WiFi: Requires non-free firmware

- Works with stock Debian kernel: Yes

- Boot Firmware: BROM (GPLV2+)

#### Known Issues

None

### Pine A64+

Pine A64+ is an affordable single board computer with good performance.

Recommendation: Pine A64+ series of boards do not have built-in storage. If installing to a microSD card, it is recommended to choose a microSD card of class 10 or better with at least 8 GB of storage.

#### Similar Hardware

- Both 1GB and 2GB versions of Pine A64+ are supported with the same FreedomBox image.

- Pine A64-LTS is not supported yet.

#### Download

FreedomBox SD card images for this hardware are available. Follow the instructions on the download page to create a FreedomBox SD card and boot into FreedomBox. Pick the image meant for Pine A64+.

An alternative to downloading these images is to install Debian on the device and then install FreedomBox on it.

#### Build Image

FreedomBox images for this hardware can be built using freedom-maker.

#### Availability

- Price: 29 USD (for the 2 GB variant), 21 USD (for the 1 GB variant)

- Pine A64+ with 1 GB RAM at Pine64 Store

- Pine A64+ with 2 GB RAM at Pine64 Store

#### Hardware

- Open Source Hardware (OSHW): No

- CPU: Allwinner A64, Quad-core ARM Cortex A53 64-bit processor

- RAM: 3 variants - 512 MB (not recommended), 1 GB and 2 GB (recommended)

- Storage: SD card, eMMC (module sold separately but not tested with FreedomBox)

- Architecture: arm64

- Ethernet: Gigabit Ethernet port

- Battery: Supports battery backup using a Li-Po battery

- WiFi: None, use a USB WiFi device

- SATA: None

#### Non-Free Status

- Non-free blobs required: No

- WiFi: Not available

- Works with stock Debian kernel: Yes

#### Known Issues

None

### VirtualBox

This page will help you get started with using FreedomBox on a virtual machine using VirtualBox. While VirtualBox images are primarily used for testing and development, they can also be used for regular use if you have spare resources on one of your machines. This setup is useful if:

- You don't own one of the supported hardware devices.

- You don't use Debian GNU/Linux as your operating system.

- You don't want to disturb your Debian installation to try out FreedomBox.

Prebuilt FreedomBox images for VirtualBox are routinely made available in VirtualBox's own VDI image file format. They contain a Debian GNU/Linux operating system and an installation of FreedomBox with all dependencies ready to run on any OS supported by VirtualBox (Windows, Linux, Macintosh, and Solaris).

A more adventurous alternative to downloading one of these images is to install Debian on VirtualBox and then install FreedomBox on it.

VirtualBox itself is available from https://www.virtualbox.org/ (or your distribution's package manager).

#### Download

Follow the instructions on the download page to download and verify a VirtualBox image. The latest images are available on freedombox.org.

#### Creating a Virtual Machine

1. Decompress the downloaded VDI image (tool for Windows, Mac).

2. Create a new VM in the VirtualBox UI with OS type Linux and Version Debian (32/64-bit according to the downloaded image).

1. In the Hard disk dialog choose Use an existing virtual hard disk file and select the .vdi file you extracted in step 1.

1. When created, go to the virtual machine's Settings -> [Network] -> [Adapter 1]->[Attached to:] and choose the network type your want the machine to use according to the explanation in Network Configuration below. The recommended type is the Bridged adapter option, but be aware that this exposes the FreedomBox's services to your entire local network.

Note: It is important to make sure that you have provided the correct network interface in the above step. For example, if the virtual machine is running on a laptop connected to a Wi-Fi network, then the wireless interface (starts with wlp) must be chosen as shown in the screenshot.

#### First Boot

When satisfied with the VM settings click the start button in the VirtualBox UI and your new FreedomBox will boot.

The console of the VM will show the textual screen below when finished booting, from here most interaction with FreedomBox will be through the web interface (aka. Plinth) in a browser.

If everything went well so far, you should be able to access the web interface of FreedomBox by pointing a browser on the host machine to https://freedombox.local.

In case freedombox.local cannot be resolved, you need to find out your FreedomBox's IP address as described in Finding out the IP address of the virtual machine. Then access this IP from a web browser which is on the same network as the VM (f.ex. the host). If all is well, you are now presented with a welcome message and invited to complete the first boot process.

This mainly consist of creating an administrative user for the system.

#### Using

See the FreedomBox usage page for more details.

You can log in to the Debian GNU/Linux system as the user created during Plinth first boot on the VirtualBox console or remotely via ssh.

After logging in, you can become root with the command `sudo su`.

#### Build Image

If you wish to build your own images instead of downloading available images, it can be done using Freedom Maker.

#### Tips & Troubleshooting

##### Network Configuration

VirtualBox provides many types of networking options. Each has its advantages and disadvantages. For more information about how various networking types work in VirtualBox, see VirtualBox's networking documentation. https://www.virtualbox.org/manual/ch06.html

For a simple setup, it is recommended that you use a single network interface in your guest machine. This will make the first boot script automatically configure that interface as an `internal` network with `automatic` network configuration. Inside the guest machine, the networking is configured automatically and all the services are made available on this network interface. For more information on how networks are configured by default in FreedomBox, see Networks section.

What remains is to make those services available to the host machine or to other machines in the network. You must then choose one of the following types of networking for the network interface on your guest machine. To set a particular type of network for the guest's network adapter, go to the guest VM's settings then the network options and then select the adapter you wish to configure. There, set the network type from the available list of networks.

1. First and the recommended option is to use the Bridged type of network. This option exposes the guest machine to the same network that host network is connected to. The guest obtains network configuration information from a router or DHCP server on the network. The guest will appear as just another machine in the network. A major advantage of this of setup is that the host and all other machines in the network will be able to access the services provided by guest without requiring any further setup. The only drawback of this approach is that if the host is not connected to any network, the guest's network will remain unconfigured making it inaccessible even from the host.

2. Second method is Host only type of networking. With a guest's network interface configured in this manner, it will only be accessible from the host machine. The guest will not able access any other machine but the host, so you do not have internet access on the guest. All services on the guest are available to the host machine without any configuration such as port forwarding.

3. The third option is to use the NAT type of network. This the networking type that VirtualBox assigns to a freshly created virtual machine. This option works even when host is not connected to any network. The guest is automatically configured and is able to access the internet and local networks that host is able to connect to. However, the services provided by the guest require port forwarding configuration setup to be available outside.

   To configure this go to VM settings -> [Network] -> [Adapter] -> [Port Forwarding]. Map a port such as 2222 from host to guest port 22 and you will be able to ssh into FreedomBox from host machine as follows:

        ssh -p 2222 fbx@localhost

   Map 4443 on host to 443 on the guest. This make FreedomBox HTTPS service available on host using the URL https://localhost:4443/ You will need to add a mapping for each such services from host to guest.

4. The final option is to create two network interfaces, one host only and one NAT type. This way you can access the guest without any additional configuration, and you have internet access on the guest. The guest will be invisible to any other machines on the network.

Summary of various network types:

- | Guest accessible from other machines | Guest accessible from host | Works without port forwarding | Works without host connected to network | Guest has internet access
Bridged |  |  |  |  |
Host only |  |  |  |  |
NAT |  |  |  |  |
NAT and Host |  |  |  |  |

##### Finding out the IP address of the virtual machine

This depends on the network configuration you chose. With a bridged adapter, your virtual machine gets its IP address from the DHCP server of your network, most likely of your Router. You can try the first couple of IP addresses or check your router web interface for a list of connected devices.

If you chose host-only adapter, the IP address is assigned by the DHCP server of your VirtualBox network. In the VirtualBox Manager, go to File -> Preferences -> Network -> Host-only Networks. You can see and edit the DHCP address range there, typically you get assigned addresses close to the Lower Address Bound.

Another possibility of finding the IP address is to login via the Virtualbox Manager (or similar software). The FreedomBox images do not have any default user accounts, so you need to set an initial user and password using the passwd-in-image script.

See also QuickStart for instructions on how to scan your network to discover the IP of the VM.

##### Networking Problems with macchanger

The package `macchanger` can cause network problems with VirtualBox. If you have a valid IP address on your guest's host network adapter (like 192.168.56.101) but are not able to ping or access the host (like 192.168.56.1), try uninstalling `macchanger`:

    $ dpkg --ignore-depends=freedombox-setup --remove macchanger

You might have to manually remove the script `/etc/network/if-prep-up/macchanger`. If Debian complains about unmet dependencies when you use a package manager (apt-get, aptitude, dpkg), try to remove 'macchanger' from the dependencies of 'freedombox-setup' in the file `/var/lib/dpkg/status`.

##### Mounting Images Locally

If you want to mount images locally, use the following to copy built images off the VirtualBox:

    $ mkdir /tmp/vbox-img1 /tmp/vbox-root1
    $ vdfuse -f freedombox-unstable_2013.0519_virtualbox-i386-hdd.vdi /tmp/vbox-img1/
    $ sudo mount -o loop /tmp/vbox-img1/Partition1 /tmp/vbox-root1
    $ cp /tmp/vbox-root1/home/fbx/freedom-maker/build/freedom*vdi ~/
    $ sudo umount /tmp/vbox-root1
    # $ sudo umount /tmp/vbox-img1 # corruption here.

##### Fixing the time after suspend and resume

The virtual machine loses the correct time/date after suspending and resuming. One way to fix this is to create a cron-job that restarts the time service `ntp`. You can add a crontab entry as root to restart ntp every 15 minutes by typing `'crontab -e'` and adding this line:

    */15 * *   *   *     /etc/init.d/ntp restart

Do not restart this service too often as this increases the load of publicly and freely available NTP servers.

##### UUID collision in VB

Whenever this happens VirtualBox shows following error message: Cannot register the hard disk A with UUID ... because a hard disk B with UUID ... already exists in the media registry

Creating several VMs from the same image causes collisions due to ID's (hostname, IP, UUID, etc) that are expected to be universally unique. Most can be handeled operating the running VM. But VirtualBox complains before that (at the very creation of the VM) about the hard disk's UUID. This is usual stuff when you develop/test e.g. FreedomBox.

You can change a clone's UUID in the terminal as follows:

    $ VBoxManage internalcommands sethduuid path/to/the/hd/vdi/file

### Debian

FreedomBox is a pure blend of Debian. This means that all the work on FreedomBox is available in Debian as packages. It also means that any machine running Debian can be turned into a FreedomBox.

This page describes the process of installing FreedomBox on a Debian system. Currently, FreedomBox works in Debian Stable (Buster), Testing (Bullseye), and Unstable (Sid).

### Caution

Use a fresh Debian installation

Installing FreedomBox changes your Debian system in many important ways. This includes installing a firewall and regenerating server certificates. It is hence recommended that you install FreedomBox on a fresh Debian installation instead of an existing setup.

### Caution

Console/GUI logins for non-admin users will be disabled

After FreedomBox is fully setup, your system will no longer allow users not belonging to the admin group to log in to the system via console, secure shell (SSH) or graphical login. This behaviour can be disabled from the Security page. Use the administrator account created during FreedomBox first boot for console logins and add further user accounts to admin group, if necessary.

#### Installing on Debian 10.0 (Buster) or newer

Check the Troubleshooting section below, for any tips or workarounds that might help during the install.

1. Install Debian 10.0 (Buster), or Unstable (Sid) on your hardware.

2. Update your package list.

       $ sudo apt-get update

3. Install `freedombox` package.

       $ sudo DEBIAN_FRONTEND=noninteractive apt-get install freedombox

   - The "DEBIAN_FRONTEND=noninteractive" will avoid several configuration prompts that would otherwise appear during the install.

4. During the installation, you will be provided a secret key that needs to be entered during the initial configuration process. Note this down. The secret can also be read at a later time from the file `/var/lib/plinth/firstboot-wizard-secret`.

5. You can start using FreedomBox. During initial wizard, you will need to enter the secret noted above.

#### Installing on Debian 9 (Stretch)

Check the Troubleshooting section below, for any tips or workarounds that might help during the install.

1. Install Debian 9 (Stretch) on your hardware.

2. Update your package list.

       $ sudo apt-get update

3. Install `freedombox-setup` package.

       $ sudo DEBIAN_FRONTEND=noninteractive apt-get install freedombox-setup

   - The "DEBIAN_FRONTEND=noninteractive" will avoid several configuration prompts that would otherwise appear during the install.

4. Run FreedomBox setup program. This installs further packages and sets up basic configuration.

       $ sudo /usr/lib/freedombox/setup | tee freedombox-setup.log

   You may have to clear your existing network configuration. See Troubleshooting note #2 below.

5. Reboot the system. This is necessary to trigger the first-run script.

       $ sudo reboot

6. After the system boots up, wait for it to reboot again. The first-run scripts sets up a few things and initiates a reboot.

7. After the second reboot you can start using FreedomBox.

#### Tips and Troubleshooting

1. There is a bug in policykit-1 package that causes errors and hangs during installation of freedombox-setup package. This bug is only applicable to Debian 9 (Stretch) and older. A workaround is to first install policykit-1 package and then reboot. After that, follow the above setup procedure.

       $ sudo apt-get update
       $ sudo apt-get install policykit-1
       $ sudo reboot

2. FreedomBox uses NetworkManager to manage network configuration. If you have configured your network interfaces using Debian installer or by editing `/etc/network/interfaces`, FreedomBox will not manage those interfaces. (See bug #797614.) To let FreedomBox/NetworkManager manage your network interfaces, edit the `/etc/network/interfaces` manually and ensure that it contains only the following:

       auto lo
       iface lo inet loopback

   If you have already completed the setup process without doing this step, you will need to clear out the `/etc/network/interfaces` file keeping only the above lines. Then perform a reboot. On Debian 9 (Stretch), after this network connections configured by the `setup` step above will configure your network. Network interfaces will then be in the `internal` or `external` firewall zone. This is essential for the FreedomBox's web interface to be reachable from other machines in the network. You can tweak network manager connections with the `nmtui` command if you wish.

3. FreedomBox will use an automatically configured IP address by default. You can assign a static IP address if necessary. Network configuration changes can be done using FreedomBox web interface or by using the `nmtui` or `nmcli` commands. `nmcli` can be used as follows:

         nmcli con mod "Ethernet connection 1"  \
         ipv4.addresses A.A.A.A/X  \
         ipv4.gateway G.G.G.G  \
         ipv4.dns N.N.N.N  \
         ipv4.dns-search somedomain.com  \
         ipv4.method "manual"  \
         ipv4.ignore-auto-dns yes  \
         ipv6.method ignore

4. ..with the block capitals and somedomain.com replaced with your actual address, mask description, gateway and dns server details.

### DreamPlug

### Caution

Deprecated Hardware

This hardware was supported earlier but is no longer supported. If you downloaded an earlier image and are running FreedomBox on this hardware, you will keep getting software updates. You can stay secure and up-to-date. However, no new images will be provided for this hardware. It is recommended that you migrate to newer, supported hardware using backup and restore.

DreamPlug is the hardware for which FreedomBox has been originally targeted. FreedomBox images are built and tested for it. For using this device as FreedomBox, a USB WiFi device that does not require non-free firmware is recommended.

You can find more support and discussion for DreamPlug on the official forum.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Download

FreedomBox SD card images for this hardware are available. Follow the instructions on the download page to create a FreedomBox SD card and boot into FreedomBox. See also instructions for using an internal micro-SD with DreamPlug.

An alternative to downloading these images is to install Debian on DreamPlug and then install FreedomBox on it.

#### Networking

The network port towards the middle of the box, is configured by FreedomBox to be an upstream Internet link. The remaining port is configured for a local computer to connect to.

#### Firmware

Note that the factory firmware configurations may vary between revisions of the hardware, and render some images incompatible. See the DreamPlug firmware page for information on what images are compatible and how to update your DreamPlug firmware.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker.

#### Testing

Instructions on how to test this hardware are available.

#### Availability

- Price: 159 USD

- DreamPlug manufacturer

- Reseller Spinifex in Australia

#### Hardware

- Open Hardware: No

- CPU: Marvell Kirkwood 88F6281 @ 1.2GHz

- RAM: 512MB 16bit DDR2-800 MHz

- Storage: 4 GB on board micro-SD

- Architecture: armel

- Ethernet: 2x 10/100/1000, RJ45

- WiFi: SD8787, 802.11 b/g/n

- SATA: eSATA 2.0 port

#### Non-Free Status

- Non-free blobs required: built-in WiFi

- WiFi: no free WiFi drivers + firmware available

- Works with stock Debian kernel: yes

#### Known Issues

- WiFi does not work with free software. A separate USB WiFi device is recommended.

### Raspberry Pi Model B+

### Caution

Deprecated Hardware

This hardware was supported earlier but is no longer supported. If you downloaded an earlier image and are running FreedomBox on this hardware, you will keep getting software updates. You can stay secure and up-to-date. However, no new images will be provided for this hardware. It is recommended that you migrate to newer, supported hardware using backup and restore.

Raspberry Pi (Model B+) is a popular single board computer developed with the intention of promoting teaching of basic computer science in schools. FreedomBox images are built and tested for it. For using this board as FreedomBox, a USB WiFi device that does not require non-free firmware is recommended.

Note: The Debian architecture used for this device is `armel`. This means floating point computations are done in software and most operations are slower than what Raspberry Pi is capable of.

Recommendation: When you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Download

FreedomBox SD card images for this hardware are available. Follow the instructions on the download page to create a FreedomBox SD card and boot into FreedomBox.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker.

#### Availability

- Price: 35 USD

- List of official distributors

#### Hardware

- Open Hardware: No

- CPU: ARM1176JZF-S (ARMv6k) 700 MHz

- RAM: 512 MB

- Storage: MicroSD card slot

- Architecture: armel

- Ethernet: 10/100, RJ45

- WiFi: None, use a USB WiFi device

- SATA: None

#### Non-Free Status

- Non-free blobs required: boot firmware

- WiFi: Not available

- Works with stock Debian kernel: No

#### Known Issues

- The Debian architecture used for this device is `armel`. This means floating point computations are done in software and generally most operations are slower than what Raspberry Pi is capable of.

### Raspberry Pi 2 Model B

Raspberry Pi 2 (Model B ) is a popular single board computer developed with the intention of promoting teaching of basic computer science in schools. It is a successor to Raspberry Pi Model B+ with much faster processor and more RAM. FreedomBox images are built and tested for it. For using this board as FreedomBox, a USB WiFi device that does not require non-free firmware is recommended.

Please do not expect any output on a monitor connected via HDMI to this device as it does not display anything beyond the message 'Starting kernel...'. See the Quick Start page to access and control your FreedomBox from network.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Download

FreedomBox SD card images for this hardware are available. Follow the instructions on the download page to create a FreedomBox SD card and boot into FreedomBox.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker.

#### Availability

- Price: 35 USD

- List of official distributors

#### Hardware

- Open Hardware: No

- CPU: 900 MHz quad-core ARM Cortex-A7

- RAM: 1 GB

- Storage: MicroSD card slot

- Architecture: armhf

- Ethernet: 10/100, RJ45

- WiFi: None, use a USB WiFi device

- SATA: None

#### Non-Free Status

- Non-free blobs required: boot firmware

- WiFi: Not available

- Works with stock Debian kernel: Yes

### Raspberry Pi 3 Model B

Raspberry Pi 3 Model B is a popular single board computer developed with the intention of promoting teaching of basic computer science in schools. It is a successor to Raspberry Pi 2 Model B with a 64-bit processor and on-board Wi-Fi. A FreedomBox "testing" image is available for Raspberry Pi 3 Model B. For using this board as FreedomBox, a USB WiFi device, that does not require non-free firmware, is recommended instead of the on-board Wi-Fi.

Please do not expect any output on a monitor connected via HDMI to this device as it does not display anything beyond the message 'Starting kernel...'. See the Quick Start page to access and control your FreedomBox from network.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Download

FreedomBox SD card images for this hardware are available. Download the "testing" image for Raspberry Pi 3 Model B. Follow the instructions on the download page to create a FreedomBox SD card and boot into FreedomBox.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker. Use the target 'raspberry3' with distribution 'testing' to build the image for this board.

#### Availability

- Price: 35 USD

- List of official distributors

#### Hardware

- Open Hardware: No

- CPU: 1.2GHz 64-bit quad-core ARMv8 CPU

- RAM: 1 GB

- Storage: MicroSD card slot

- Architecture: armhf

- Ethernet: 10/100, RJ45

- WiFi: 802.11n but requires non-free firmware, instead use a USB WiFi device

- SATA: None

#### Non-Free Status

- Non-free blobs required: boot firmware

- WiFi: Requires non-free firmware

- Works with stock Debian kernel: Yes

### Raspberry Pi 3 Model B+

Raspberry Pi 3 Model B+ is a popular single board computer developed with the intention of promoting teaching of basic computer science in schools. It is a successor to Raspberry Pi 3 Model B with better Ethernet and a 5Ghz Wi-Fi. A FreedomBox "testing" image is available for Raspberry Pi 3 Model B+. For using this board as FreedomBox, a USB WiFi device, that does not require non-free firmware, is recommended instead of the on-board Wi-Fi.

Please do not expect any output on a monitor connected via HDMI to this device as it does not display anything beyond the message 'Starting kernel...'. See the Quick Start page to access and control your FreedomBox from network.

Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space.

#### Download

FreedomBox SD card images for this hardware are available. Download the "testing" image for Raspberry Pi 3 Model B+. Follow the instructions on the download page to create a FreedomBox SD card and boot into FreedomBox.

#### Build Image

FreedomBox images for this hardware can be built using Freedom Maker. Use the target 'raspberry3-b-plus' with distribution 'testing' to build the image for this board.

#### Availability

- Price: 35 USD

- List of official distributors

#### Hardware

- Open Hardware: No

- CPU: 1.4GHz 64-bit quad-core ARMv8 CPU

- RAM: 1 GB

- Storage: MicroSD card slot

- Architecture: armhf

- Ethernet: 10/100/1000, RJ45

- WiFi: 802.11ac but requires non-free firmware, instead use a USB WiFi device

- SATA: None

#### Non-Free Status

- Non-free blobs required: boot firmware

- WiFi: Requires non-free firmware

- Works with stock Debian kernel: Yes

### USB Wi-Fi

FreedomBox works on many single board computers. However, many of these boards do not have built-in Wi-Fi capabilities. Even when Wi-Fi capability is available, non-free proprietary firmware is required to make them work.

A solution to the problem is to plug-in a USB Wi-Fi device into one of the available USB ports. There are many such devices available which do not require non-free firmware to work. The following is a list of such devices that work with FreedomBox devices. Some devices based on these chips have tested to work well with FreedomBox including functions such as access point mode.

- Devices with Atheros AR7010 chip

- Devices with Atheros AR9271 chip

#### Firmware Installation

The free firmware for these devices is not packaged in Debian yet. You can manually download and install the firmware as follows:

    sudo su [enter password]
    cd /lib/firmware
    wget https://www.thinkpenguin.com/files/ath9k-htc/version-1.4-beta/htc_9271.fw
    wget https://www.thinkpenguin.com/files/ath9k_firmware_free-version/htc_7010.fw

#### Resources

- Debian Wiki on WiFi drivers

- Wikipedia: Comparison of open-source Linux wireless network drivers

- WikiDevi: database of computer hardware

### Release Notes

The following are the release notes for each FreedomBox version.

#### FreedomBox 20.3 (2020-02-24)

- apps: Update style for toggle button

- apps: Drop border shadow for app icon in mobile view

- apps: Show short description as secondary title

- apps: Remove css filters and glow from app icons

- cards: Remove the transition delay on hover effect

- system: Implement new style for cards

- framework: Generate secret key (existing sessions will get logged out)

- framework: Cleanup expired sessions every week

- networks: Add setting for internet connection type

- networks: Ask about internet connection type during setup

- shadowsocks: Fix shadowsocks not able to start

- jsxc: Bypass issue with stronghold to get the app working again

- monkeysphere: Fix regression with reading Apache configuration

- help: Fix attribute on download manual button

- firewall: Improve speed of some operations using DBus API

- css: Add missing license identifier on some CSS files

- deluge: Use safer method for editing configuration

- deluge: More reliable initial configuration setup

- samba: Add link to manual page

- searx: Update search engines for 0.16.0

- openvpn: Fix spelling for Tunnelblick

- bind: Show served domains

- Update translations for German, Swedish, Italian, Spanish, Norwegian Bokmål, Hungarian, Polish, and French

#### FreedomBox 20.2 (2020-02-10)

- networks: Support virtual Ethernet (veth) devices

- diagnostics: Show firewall service status

- storage: Show disks if FreedomBox is running in an unprivileged container

- service: Stop service not before but after disabling it

- users: Use more precise username validation

- sso, users: Turn off autocapitalization on the username field

- help: Fix anchor hidden under navbar

- searx: Fix installation issue for 0.16.0

- firewall: Show Run Diagnostics button in app

- glib: Introduce method to schedule an operation at regular intervals

- notification: Show a drop down from main navbar for notifications

- storage: Show low disk space warning using notifications API

- upgrades: Show notification when FreedomBox is updated

- security: Add Sandbox Coverage to report page

- matrixsynapse: Enable systemd sandboxing

- locale: Update translations for Telugu, French, Norwegian Bokmål, German, Spanish, and Swedish

#### FreedomBox 20.1 (2020-01-27)

- deluge: Allow to set a download directory

- deluge: Fix installation failure on slow machine

- storage: Make external disk mounts accessible to other users

- gitweb: Add link to the manual page

- style: Fix incorrect margins for containers in mobile view

- style: Fix responsiveness for app header

- network: Fix activating connections that don't have real devices

- wireguard: Add WireGuard VPN app

- networks: Add router configuration page

- networks: Add first boot step for router config helper

- bind: Enable sandboxing for bind service

- locale: Updated translations for Dutch, Norwegian Bokmål, German, Spanish, Swedish, French, and Greek

#### FreedomBox 20.0 (2020-01-13)

- samba: Improve speed of actions

- deluge: Manage deluged service and connect automatically from web interface

- openvpn: Enable support for communication among all clients

- storage: Ignore errors resizing partition during initial setup

- storage: Make partition resizing work with parted 3.3

- debian: Add powermgmt-base as recommended package

- openvpn: Enable IPv6 for server and client outside the tunnel

- networks: Fix crashing when accessing network manager D-Bus API

- mediawiki: Use a mobile-friendly skin by default

- mediawiki: Allow admin to set default skin

- matrixsynapse: Allow upgrade to 1.8.*

- security: Add explanation of sandboxing

- Update translations for Greek, German, Swedish, Hungarian, Norwegian Bokmål, and French

#### FreedomBox 19.24 (2019-12-30)

- app: Fix JavaScript doesn't run on first visit

- samba: Add private shares

- firewall: Support upgrading firewalld to 0.8

- deluge: Add systemd sandboxing features

- infinoted: Add systemd sandboxing features

- storage: Add systemd sandboxing features to udiskie service

- upgrades: Add systemd sandboxing features to repository setup service

- security: List whether each app is sandboxed

- mediawiki: Avoid delay in update script

- diagnostics: Use new component based API for all diagnostic tests

- minidlna: Fix showing clients information

- mediawiki: Fix problem with session cache failing logins

- locale: Update translations for French, German, Swedish, Greek, Hungarian, Norwegian Bokmål, and Dutch

#### FreedomBox 19.23 (2019-12-16)

- minidlna: New app for MiniDLNA (Simple Media Server)

- apps: Show app icons in app pages

- apps: Implement responsive layout for app pages

- samba: Recursively set open share directory permissions

- transmission: Add directory selection form

- mumble: Add option to set SuperUser password

- cockpit: Extend apps description with access info

- cockpit: Add list of valid urls to access the app

- Update translations for French, German, Spanish, Portuguese, and Swedish

#### FreedomBox 19.22 (2019-12-02)

- samba: Add new app for Samba file sharing

- pagekite: Remove tabs in the configuration page

- openvpn: Fix text with manual link

- pagekite: Show existing services only if there are any

- pagekite: Move Custom Services under Configuration

- pagekite: Use the new app toggle button

- openvpn: Add client apps

- backups: Fix title not appearing

- diagnostics: Don't run on disabled modules

- apps: Remove link to webapps in app descriptions

- interface: Fix error with app toggle input

- templates: Add toolbar for apps

- toolbar: Move diagnostics button into dropdown menu

- ssh: Fix Avahi SFTP service file

- diagnostics: Fix IPv6 failures

- matrix-synapse: Fix installation of 1.5 from buster-backports

- app: Fix javascript constant redeclaration error

- ikiwiki: Move the create button to manage section

- gitweb: Move create button into manage section

- networks: Move actions button into connection section

- users: Move create button into users section

- locale: Update translations for French, German, and Swedish

#### FreedomBox 19.21 (2019-11-18)

- gitweb: Allow to import from a remote repository

- interface: Disable turbolinks on links that don't point to /plinth/...

- backups: Show proper error when SSH server is not reachable

- tor: Rename "Hidden Service" to "Onion Service"

- ejabberd: Handle case where domain name is not set

- tahoe: Mark Tahoe-LAFS as an advanced app

- searx: Set safe_search to Moderate by default

- backups: Make verify ssh host page string translatable

- backups: Simplify SSH fingerprint verification command

- doc: Fix unavailability of manual images

- tor: Fix port diagnostics by correcting port data type

- tor: Expect obfs service to be also available on IPv6

- tor: Listen on IPv6 for OrPort

- clients: implement launch button feature

- apps: Implement toggle button in apps pages

- Update translations for German, Hungarian, Swedish, Norwegian Bokmål, French, Polish

#### FreedomBox 19.20 (2019-11-04)

- doc: Add Spanish manual

- ssh: Add option to disable password authentication

- sharing: Fix wrong links on Apache2 directory index page

- gitweb: Set correct access rights after enabling application

- gitweb: Fix links leading to blank page

- gitweb: Set proper access after restoration of a backup

- snapshot: Sort snapshot list from newest to oldest

- infinoted: Add missing manual page link

- backups: Fix typo

- Update translations for German, Spanish, Swedish, Czech, French, Norwegian Bokmål, Hungarian

#### FreedomBox 19.19 (2019-10-21)

- gitweb: New app for simple git hosting

- ikiwiki: Allow full Unicode text in wiki/blog title names

- users: reload Apache2 to flush LDAP cache after user operations

- ssh: Show server fingerprints in SSH page

- frontpage: Show public shortcuts to all users regardless of group

- ikiwiki: Remove extra create button when no wiki/blog is present

- quassel: Add Let's Encrypt component for certificates

- Update translations for Czech, French, Bulgarian, Dutch, German, and Norwegian Bokmål

#### FreedomBox 19.18 (2019-10-07)

- diagnostics: Ensure that exceptions are reported as failures

- users: Rearrange UI to match with other apps

- upgrades, ikiwiki, networks, backups: Replace page tabs with buttons

- dynamicdns, i2p, pagekite, snapshot: Cleanup page templates

- deluge: Support deluge 2 by starting it properly

- minetest: Remove mod-torches no longer available in testing/unstable

- security: Add past vulnerabilities count, move report to new page

- Update translations for Spanish, Norwegian Bokmål, German

#### FreedomBox 19.17 (2019-09-23)

- firstboot: Add new help menu to firstboot navbar

- firstboot: Hide left menu during first boot as intended

- Update translations for Chinese (Simplified) and Czech

- Fix tests for letsencrypt and tor

#### FreedomBox 19.16 (2019-09-09)

- backups: Allow adding backup repositories on multiple disks

- help: Add buttons for contribute, support, and feedback

- action_utils: Workaround problem with setting debconf answers

- views: Fix failure in redirecting from language selection page

- manual: Move PDF download link to HTML manual page

- help: Convert help icon in the navbar to dropdown

- ejabberd: Fix listen port configuration for ejabberd 19.x

- cockpit, ejabberd: Prevent restart on freedombox startup

- ejabberd: Perform host/domain name operations only when installed

- logging: Improve formatting and reduce noise

- translations: Update Hungarian, German, Italian, French, and Norwegian Bokmål

#### FreedomBox 19.15 (2019-08-26)

- security: Hide vulnerability table by default

- names: Perform better layout of domain names table on small screens

- cockpit: Apply domain name changes immediately

- ejabberd: Prevent processing empty domain name

- config: Send hostname change signal only after fully processing it

- letsencrypt: Don't try to obtain certificates for .local domains

- avahi: Expose .local domain as a proper domain

- cockpit: Make essential and install by default

- tt-rss: Force upgrade to 18.12-1.1 and beyond

- updates: Allow matrix-synapse 1.3 to be installed for buster users

- javascript: Don't resubmit when refreshing the page

- storage: Fix regression with restoring backups with storage

- matrix-synapse: Use recommended reverse proxy configuration

- Update translations for German, Hungarian, and Norwegian Bokmål

#### FreedomBox 19.14 (2019-08-12)

- storage: Handle all device paths during eject

- storage: Fix incorrect internationalization when throwing an error

- upgrades: Use collapsible-button style for logs

- firewall: Allow automatic upgrade to 0.7.x

- upgrades: Handle release info change

- frontpage: Fix regression with loading custom shortcuts

- names: Add dynamic domain name

- names: Add button to configure each type of name

- names: Update page layout for clearer presentation

- names: Introduce new API for domain name handling

- api: Fix regression with listing only enabled apps in mobile app

- Update translations for Czech, Hungarian, French, Chinese (Simplified), Turkish, Polish, and Norwegian Bokmål

#### FreedomBox 19.13 (2019-07-29)

- backups: Make UI more consistent with other apps

- backups: Make backup location tables collapsible

- Updated translations for Chinese (Simplified), German, and Norwegian Bokmål

- help: Show security notice when backports are in use

- security: Show vulnerability counts

#### FreedomBox 19.12 (2019-07-22)

- sharing: Allow directories to be publicly shared

- backups: Add option to select/deselect all apps for backup or restore

- dbus: Allow plinth user to own FreedomBox DBus service

- letsencrypt: Simplify renewal hooks implementation

- cockpit: Don't handle domains if app is not installed

- dynamicdns: Send domain added signal properly during init

- ejabberd: Backup and restore TLS certificates

- Started new Galician translation on Weblate

- Updated translations for Czech, Norwegian Bokmål, Hungarian, Spanish, Telugu, Chinese (Simplified), German, Turkish, and Russian

#### FreedomBox 19.2.2 (2019-07-17)

This release does not contain any functional changes, but fixes test failures when building the package.

#### FreedomBox 19.2.1 (2019-07-09)

This is a bugfix release for 19.2.

- dbus: Allow plinth user to own FreedomBox DBus service

#### FreedomBox 19.11 (2019-07-08)

- backups: Fixes to issues while adding SSH remotes:

  - Improve UX of adding ssh remote

  - Avoid creating duplicate SSH remotes

  - Fix issue with repository not being initialized

  - Verify SSH hostkey before mounting

  - Allow SSH directory paths with : in them

  - Require passphrase for encryption in add repository form

  - Don't send passphrase on the command line

  - Un-mount SSH repositories before deleting them

- matrixsynapse: Fix missing translation mark

- Started new Greek translation on Weblate

- Updated translations for Chinese (Simplified), Hungarian, Spanish, and Russian

#### FreedomBox 19.10 (2019-06-24)

- syncthing: Open firewall ports for listening and discovery

- radicale: Workaround issue with creating log directory

- Update translations for Turkish, German, Czech, Norwegian Bokmål, and Portuguese

- Introduce components for firewall, webserver, uwsgi, and daemons

#### FreedomBox 19.9 (2019-06-10)

- config: Add option to show advanced apps, which are hidden by default

- monkeysphere: Hide by default

- searx: Add option to allow public access to the application

- Introduce component architecture for apps, with components for menus and shortcuts

- Start new translation for Bulgarian

- Update translations for Turkish and Norwegian Bokmål

#### FreedomBox 19.8 (2019-05-27)

- Switch to using SVG icons for all apps.

- Updated translations for Czech, Norwegian Bokmål, Hungarian, German, Turkish, and Spanish.

#### FreedomBox 19.7 (2019-05-13)

- i2p: Include default favorites.

- Separate enabled and disabled apps.

- Display port forwarding info for apps.

- Added Slovenian translation.

- Updated translations for Dutch, German, Hungarian, Norwegian Bokmål, Polish, Portuguese, Telugu.

#### FreedomBox 19.6 (2019-04-29)

- i2p: Enable new application for I2P Anonymity Network.

- Updated translations for Czech, German, Norwegian Bokmål, and Turkish.

- letsencrypt: Provide link to configure domain if not configured.

- firewall: Show port numbers and types.

#### FreedomBox 19.5 (2019-04-15)

- storage: Use more reliable method to list disks and disk space usage.

- Updated translations for Russian and German.

#### FreedomBox 19.4 (2019-04-01)

- clients: Open web app in a new browser tab

- matrix-synapse: Change client diagnostics url

- minetest: Fix duplicate domain names being displayed in UI

- storage: Do not show an eject button on /boot partitions

- letsencrypt: Call letsencrypt manage_hooks with correct arguments

- dynamicdns: Install module by default

- storage: Don't check type of the disk for / and /boot

- storage: Don't log error when checking if partition is expandable

- Updated translations for Norwegian Bokmål, Czech, German, Hungarian, Spanish, German, and Russian.

#### FreedomBox 19.3 (2019-03-18)

- UI: Move tabs below descriptions.

- firewall: Style heading

- names: Add description

- pagekite: Change heading text

- ikiwiki: Consistent styling for delete warning page

- main: Show service version in logs

- setup: Organize data files into various apps

- Updated translations for Czech, Hungarian, Norwegian Bokmål, Spanish, German, French, Italian, and Turkish.

#### FreedomBox 19.2 (2019-03-02)

- config: Fix Ikiwiki entries not showing up as default apps

- config: Migrate default app configuration to new conf file

- config: Rename Default App to Webserver Home Page

- config: Add option to use Apache's default home page as home page

- config: Fix error when setting JSXC as the home page

- Disable Coquelicot for Buster release

- matrix-synapse: Fix LDAP login issue

- config: Revert changes in freedombox.conf to avoid conffile prompt

- openvpn: Migration from easy-rsa 2 to 3 for existing installations

- tor: Use fixed 9001 port for relaying

- package: Implement identifying packages that need conffile prompts

- setup: Trigger force upgrade for app that implement it

- bind: Handle conffile prompt during upgrade

- apache: Pre-enable necessary apache modules

- apache: Use cgid module instead of cgi

- openvpn: Make frontpage shortcut appear after an upgrade

- openvpn: Work around firewalld bug 919517

- firewalld: Implement upgrading from 0.4.x to 0.6.x

- ttrss: Implement upgrade from 17.4 to 18.12

- radicale: Add description of web interface

- ttrss: Add backup support

- security: Migrate access config to new file

- Updated translations for Czech, Hungarian, Norwegian Bokmål, Spanish, German, Telugu.

#### FreedomBox 19.1 (2019-02-14)

- radicale: Increment module version to trigger upgrade handling

- radicale: Remove obsolete diagnostics

- radicale: Fix server URLs in client info

- Updated translations for Czech, Norwegian Bokmål, and Spanish.

- setup: Add option to handle configuration prompts during install

- radicale: Simplify upgrading to newer packages

- matrixsynapse: Use Let's Encrypt certificates

#### FreedomBox 19.0 (2019-02-09)

- mldonkey: Add some more clients to the module page

- mldonkey: Add to the description the three available front-ends

- monkeysphere: Fix handling of multiple domains and keys

- monkeysphere: Fix regression with reading new apache domain config

- apache: Switch to mod_ssl from mod_gnutls

- mldonkey: Enable app

- upgrades: Fix priority for buster-backports version

- upgrades: Fix premature adding of buster-backports sources

- Updated translations for Czech, German, and Spanish

- Switched to a new version number scheme: YY.N

  - YY is the year of release.

  - N is the release number within that year.

#### Version 0.49.1 (2019-02-07)

- ui: Fix regression with configure button in home page.

- backups: Rename 'Abort' buttons to 'Cancel'.

- backups: Use icon for add repository button.

- backups: Move subsubmenu below description.

- backups: Add title and description to other pages.

- backups: Add link to manual page.

- backups: Fix styling for upload size warning.

- backups: Increase timeout for SSH operations to 30 seconds.

- letsencrypt: UI: Fix checkbox disabling.

- datetime: Switch from chrony to systemd-timesyncd.

- Updated translations for Czech, Norwegian Bokmål, and Spanish.

#### Version 0.49.0 (2019-02-05)

- security: Update javascript for Content Security Policy.

- help: Use correct package to determine available version.

- repro: Disable app due to issues with Debian package.

- ui: Fix regression with card icon style in front page.

- js: Support full librejs compatibility.

- js: Remove javascript license link from footer.

- backups: Remove incorrectly set buffer size during download.

- backups: Fix incomplete download archives.

- backups: Improve performance of backup download.

- radicale: Handle migration from 1.x to 2.x.

- datetime: Switch from ntp to chrony.

- backports: Add buster-backports to apt sources list.

- Updated translations for Czech, Norwegian Bokmål, and Hungarian.

#### Version 0.48.0 (2019-01-28)

- Updated translations for Czech, Hungarian, German, and Norwegian Bokmål.

- UI improvements:

  - Fix top margin for content containers.

  - Fix setting width of card-list at various page sizes.

  - Show help nav item text when navbar is collapsed.

  - Hide restart/shutdown items when navbar is collapsed.

  - Compact pages on extra small screen sizes.

- Backups improvements:

  - Add backup/restore support for syncthing and openvpn.

  - Upgrade apps before restoring them

  - Fix showing not-installed apps in create backup page

  - Automatically install required apps before restore.

  - Add a loader to the restore button to indicate progress.

- Serve default favicon for apps that don't provide one.

- radicale: Fix issue with configuration changes not applying.

- storage: Fix false error message in log when visiting home page.

- infinoted: Handle timeout issue when stopping daemon during setup.

- matrix-synapse: Fix startup error caused by bind_address setting.

- radicale: Avoid changes to conffile for radicale 2.x.

- help: Fix showing status logs when an error occurs.

- fail2ban: Enable bans for apache auth failures.

- mldonkey: Initial work on new module for the eDonkey network.

  - Not available yet, due to bug in package.

#### Version 0.47.0 (2019-01-14)

- Show Gujarati in the list of languages.

- Replace glyphicons with forkawesome icons.

- Snapshots:

  - Change configuration to avoid filling up disk.

  - Handle "Config in use" error.

  - Update descriptions and configuration options.

- Firewall: Fix issue with transition from iptables.

- Security: Switch to Argon2 password hash.

- Cockpit: Add link to manual page and update description.

- Radicale: Add initial support for radicale 2.x.

- Setup:

  - Handle showing setup page after app completes installation.

  - Optimize installation in-progress checks and refresh time.

#### Version 0.46.0 (2018-12-31)

- Updated translations for Czech, German, Spanish, Ukrainian, and Norwegian Bokmål.

- Use systemd journal for logging.

- Rename plinth binary package to "freedombox", and merge freedombox-setup package into it.

#### Version 0.45.0 (2018-12-17)

- Storage: Merge list of removable media into existing table.

- Backups: Allow remote backups to SSH servers using sshfs.

- Backups: Removed asking for backup archive name.

- Automatically handle future versions of PHP.

- Updated translations for Hungarian, Czech, Spanish, Chinese (Simplified), Italian, Norwegian Bokmål, French, and German.

#### Version 0.44.0 (2018-12-03)

- UI: Add card style and gray noise background to apps pages.

- UI: Fix distortion of the client apps buttons.

- ejabberd: Handle BOSH port change from TCP 5280 to 5443.

- Minetest: Update mods list to available Debian packages.

- Firewall: Use nftables instead of iptables.

- Snapshots: Fix default snapshot listing.

- Snapshots: Show description above either tab.

- Snapshots: Allow snapshots to be selected for deletion.

- Translations: Updated Czech, Norwegian Bokmål, Spanish, German, and Portuguese.

#### Version 0.43.0 (2018-11-19)

- Backups improvements:

  - Allow backups to be downloaded directly, without export step.

  - Restore directly from uploaded backup.

  - Avoid error for apps with no data to backup.

  - Show free disk space on upload and restore page.

  - Do not limit maximum upload size.

- openvpn: Migrate to easy-rsa 3 and fix setup issues.

- Make single sign-on tickets valid for 12 hours.

- Use consistent terminology for updates.

- Updated translations for Czech and Portuguese.

#### Version 0.42.0 (2018-11-05)

- Fix wrong color in mobile menu

- snapshot: Fix broken snapshot management after snapper update

- Enable backup/restore for tor, upgrades, monkeysphere, letsencrypt, tahoe

- monkeysphere: Handle importing new OpenSSH format keys

- udiskie: unmount drive as superuser

- Updated translations for Telugu, Indonesian, and Italian

#### Version 0.41.0 (2018-10-22)

- Enable backup/restore for datetime, deluge, avahi, backups, bind, security, snapshot, ssh, firewall, diagnostics, names, power, and storage.

- snapshot: Fix issue with setting configuration.

- backups: Fix backup archives ownership issue.

- backups: Fix issue with showing exports from disks without labels.

- backups: Don't rely on disk labels during export/restore.

- backups: Fix downloading extracted archive files.

- Updated translations for Norwegian Bokmål, French, Russian, and Spanish.

#### Version 0.40.0 (2018-10-08)

- Backups

  - Enable backup/restore for mumble, privoxy, roundcube, searx, jsxc, coquelicot, transmission, quassel, shadowsocks, sharing, pagekite, and cockpit.

  - Allow backup archives to be downloaded/uploaded through browser.

  - mediawiki: Backup/restore settings as well as data.

- User Interface

  - Change card text style and position.

  - Change maximum cards per row.

  - Add tint effect on card icons under "Apps".

- mediawiki: Run update script for 1.31 upgrade.

- customization: Show custom shortcuts on frontpage.

- Updated translations for Norwegian Bokmål, Portuguese, Spanish, Czech, German, French, and Italian.

#### Version 0.39.0 (2018-09-24)

- Updated translations for Hungarian and Norwegian Bokmål.

- Merge Removable Media (udiskie) into Storage module.

- Add Backups module for backing up apps data.

#### Version 0.38.0 (2018-09-10)

- mediawiki: Enable SVG support for MediaWiki

- upgrades: Clean up old kernel packages during automatic upgrades

- Make the progress bar at the top of the page more visible.

- Updated translations for Norwegian Bokmål, Czech, Russian, German, Hungarian, and Spanish.

#### Version 0.37.0 (2018-08-27)

- Updated translations for Czech, Norwegian Bokmål, Russian, Spanish, Hungarian, and Dutch.

- install: Use Post/Response/Get pattern for reloads.

#### Version 0.36.0 (2018-08-13)

- Updated translations for Hindi, Spanish, Russian, Telugu, German, Hungarian, Czech, and French

- ejabberd: Remove deprecated settings from already existing config files

- mediawiki: Fix issue with re-installation

- mediawiki: Enable Instant Commons

- mediawiki: Fix images throwing 403s

- turbolinks: Reload page using JavaScript

- Add Lato woff2 fonts

- Disable launch button for web client when not installed

#### Version 0.35.0 (2018-07-30)

- configuration: Add an option to set a default app for FreedomBox. The root URL path (`https://domainname/`) will redirect to the selected app.

- ejabberd: Remove deprecated `iqdisc` setting. To apply this fix, disable and then re-enable the Message Archive Management setting.

- ejabberd: Replace logo with original version.

- mediawiki: Enable short URLs, which look like `https://domainname/mediawiki/ArticleName`.

- radicale: Clarify description for shared calendar/addressbook.

- storage: Handle mount points with spaces.

- udiskie: Add button to eject drives.

- udiskie: Also show read-only filesystems.

- udiskie: Remove internal networks warning.

- udiskie: Show special message when no storage device available.

- Add turbolinks library for smoother navigation.

- Removed extra text from icons for mediawiki, radicale, and tahoe-lafs.

- Updated translations for Russian, Spanish, Dutch, Hungarian, Hindi, Italian, Telugu, German, and Norwegian Bokmål.

#### Version 0.34.0 (2018-07-16)

- Prompt for secret during firstboot welcome

  - (Does not apply to downloadable FreedomBox images, but only when installed using freedombox-setup package.)

- Updated translations for Italian, Dutch, Hindi, Hungarian

#### Version 0.33.1 (2018-07-04)

- Fix issue where editing a user would remove them from admin group

- Updated translations for Hungarian, Czech, Spanish, Russian, Hindi

#### Version 0.33.0 (2018-07-02)

- Updated translations for Hungarian, Norwegian Bokmål, Spanish, Russian, Czech, Hindi, Dutch, Italian

- firewall: Display information that a service is internal only

- users: Don't show Create User link to non-admin users

- users: Redirect to users list on successful user creation

- packages: Show button to refresh package lists when a package is not available for install

- Only show front page shortcuts that a user is allowed to access

- Restrict removal of last admin user

- Use logos instead of icons in the apps page

- udiskie: New module for automatic mounting of removable media

#### Version 0.32.0 (2018-06-18)

- Apply new card based design

- Fix client info table size and flickering

- first-setup: Automatically expand root partition

- mediawiki: Enable image uploads

- mediawiki: Make private mode and public registrations mutually exclusive

- mediawiki: Hide frontpage shortcut when private mode is enabled

- Updated translations for Norwegian Bokmål, Czech, Spanish, Russian, Hindi, Telugu, Italian, Dutch, German, and Hungarian

#### Version 0.31.0 (2018-06-04)

- Updated translations for Czech, Spanish, Russian, German, Italian, Hindi, Telugu, and Norwegian Bokmål

- mediawiki: Added private mode option

- users: Fix user permissions not being saved

- users: internationalize a string

- mediawiki: Run update script for 1.30 upgrade

- shortcuts: Fix urls for ikiwiki shortcuts

#### Version 0.30.0 (2018-05-21)

- Updated translations for Russian, Italian, Norwegian Bokmål, Hungarian, and Hindi

- setup: Remove unavailable as a state in setup_helper

#### Version 0.29.1 (2018-05-08)

- security: Fix issue with Plinth locked out from sudo

- Updated translations for Czech and Spanish

#### Version 0.29.0 (2018-05-07)

- security: Allow console login access to user plinth

- Add an option to enable/disable public registrations in mediawiki

- tt-rss: Skip the check for SELF_URL_PATH

- searx: Fix issue with uwsgi crashing

- Updated translations for Czech, Spanish, German, Norwegian Bokmål, and Italian

#### Version 0.28.0 (2018-04-23)

- setup: disable install button for currently unavailable apps

- Add locale for Lithuanian (lt)

- Translation updates for Italian, Czech, Russian, Spanish, German, Norwegian Bokmål, Telugu, and Dutch

#### Version 0.27.0 (2018-04-09)

- middleware: Skip 'installed' message for essential apps

- users: Fix admin group appearing twice in permissions

- apps: Fix app names and short descriptions not being translated

- snapshots: Move manual page link to the index page

- UI: Fix progress bar not appearing

- snapshots: Fix for permissions issue when updating configuration

- snapshots: Add option to enable/disable software installation snapshots

- Translation updates for Italian, Czech, Russian, Spanish, Dutch, German, Norwegian Bokmål, and Ukrainian

#### Version 0.26.0 (2018-03-26)

- snapshots: Update description

- searx: Rewrite url from /searx to /searx/

- manual: Link to manual from each service

- Workaround security issues in django-axes

- apache: Only regenerate snake oil cert when needed

- apache: Explicitly enable the latest version of PHP module

- apache: Increase module version number to fix php7.2

- Update translations for Chinese (Simplified), Russian, Czech, German, Norwegian Bokmål, Hungarian, Spanish, and Italian

#### Version 0.25.0 (2018-03-12)

- sharing: Add app for sharing disk folders.

- ttrss: Update list of client apps.

- infinoted: Allow setup to recover after timeout issue.

- snapshots: Add configuration tab with settings for time-based snapshots.

#### Plinth v0.24.0 (2018-02-26)

- Add file-sharing application Coquelicot.

- Add metasearch engine application Searx.

- Add locale for Hungarian (hu).

- mediawiki: Allow shortcut to be publicly visible on front page.

- clients: Add and correct Client Apps.

- locale: Preferred language can be set in each user's profile.

- locale: Anonymous users can select preferred language.

- config: Remove language selection from config page.

- matrixsynapse: Fix mail attribute for ldap login.

#### Plinth v0.23.0 (2018-02-12)

- snapshots: Modify configurations to reduce disk usage.

- snapshots: Skip currently active snapshot when deleting all snapshots.

- jsxc: Use consistent url format.

- sso: Increase timeout to 60 minutes.

- theme: Change font from Helvetica to Lato.

- Translation updates for Czech, German, Gujarati, and Telugu.

#### Plinth v0.22.0 (2018-01-30)

- matrix-synapse: Make sure configuration file does not get corrupted.

- tor: Show enabled status properly.

- first_setup: Fix not showing admin user creation step.

- Migrate from GitHub to Salsa

- Migrate from CirceCI to GitLab CI on Salsa.

- Translation updates for Czech, Dutch, Gujarati, Hindi, Russian and Telugu.

- Started new translation for Ukrainian.

#### Plinth v0.21.0 (2018-01-15)

- navigation bar: Change label from 'Configuration' to 'System'.

- storage: Removed beta warning for expanding partition.

- groups: Consistently show available user groups, even before applications are installed.

- syncthing: Restrict administration to users in "syncthing" group.

- help: Show menu on smaller screens also.

- diagnostics: Enable the "Run Diagnostics" button when applications are enabled but not running.

#### Plinth v0.20.0 (2018-01-01)

- bind: Don't use forwarders by default

- ejabberd: Remove redundant button Client Apps

- mediawiki: Add wiki application

- users: Make sure first run actually works

- bind: Add information about current utility

#### Plinth v0.19.0 (2017-12-18)

- ejabberd: Use dynamic reload instead of restart when changing configuration.

- manual: Make manual available as a PDF download.

- minetest: Show domain information for users to connect to minetest.

- snapshots: Add button to delete all snapshots.

- snapshots: Add option to enable/disable automatic timeline snapshots.

- users: Add groups for bit-torrent and feed-reader, available when these applications are installed.

#### Plinth v0.18.0 (2017-12-04)

- Add Shadowsocks client with socks5 proxy.

- Fix SSO regressions and conflict with captcha.

- transmission: Fix sso not being enabled on upgrade.

- avahi: Add service for FreedomBox discovery.

- Add client information for modules.

#### Plinth v0.17.0 (2017-11-20)

- transmission: Enable Single Sign On.

- cockpit: Add short description to frontpage shortcut.

- fail2ban: Fix spelling and sentence structure.

#### Plinth v0.16.0 (2017-11-06)

##### Added

- Add mobile, web and desktop client info for modules.

- Enable django SecurityMiddleware to improve security ratings.

- cockpit: New module for server administration and web terminal.

##### Fixed

- letsencrypt: Fix internal server error when obtaining a certificate.

- ejabberd: Fix LDAP server entry in config file during setup.

- jsxc: Fix outdated URLs for connecting to local ejabberd server.

#### Plinth v0.15.3 (2017-10-20)

##### Changed

- Rename Disks to Storage.

- Rename Snapshot to Storage Snapshots.

- tt-rss: Enable API access by default.

- Allow access to Plinth from outside the LAN.

- matrix-synapse: Disable public registration by default.

- power: Merge actions into the user dropdown.

##### Added

- Add locales for Kannada (kn) and for Bengali (bn).

- ejabberd: Use Let's Encrypt certificate, also across renewals.

- matrix-synapse: Add enable/disable public registrations.

- Add captcha validation on 3 failed attempts.

- matrix-synapse: Enable LDAP integration.

- letsencrypt: Automatically obtain and revoke SSL certificates.

##### Fixed

- Fix front page label names.

- Fix vertical alignment of shortcut icons.

- storage: Fix issue with locales that use other decimal separators.

- Make tt-rss api accessible using Apache basic auth.

- letsencrypt: Handle case where current domain is empty.

- Handle both admin and non-admin user names in update user template.

#### Plinth v0.15.2 (2017-09-24)

##### Added

- letsencrypt: Show more info on cert validity status.

- letsencrypt: Add option to delete certificates.

- letsencrypt: Add option to let Plinth manage certbot's renewal hooks.

- power: Warn if a package manager is running before shutdown/restart.

- security: Install and manage fail2ban.

- names: Include domain and services from dynamicdns.

- disks: Add low disk space warning to system and disks page.

- ssh: New application to manage SSH server.

- Add api module to get enabled services and access info.

- Add Django password validators.

- ejabberd, ikiwiki, ttrss: Add user login descriptions.

##### Removed

- diaspora: Disable for this release due to issues affecting package.

- Remove help from navbar before firstboot complete.

##### Fixed

- i18n: Don't use backslash-newline for wrapping long lines.

- radicale: Update link to documentation.

- sso: Upgrade crypto to 4096-bit RSA and SHA-512.

- Users: Allow non-admin users to log out.

##### Changed

- letsencrypt: Make Let's Encrypt an essential module.

- UI: Make apps and configure pages responsive on small screens.

- Make help accessible for logged-in non-admin users.

#### Plinth v0.15.0 (2017-07-01)

- Added Tahoe-LAFS module for distributed file storage.

- Added Diaspora* module for federated social networking.

  - Currently only available in "contrib" repository.

- New Locales for Czech (cs) and Tamil (ta).

- Added SSO using auth_pubtkt for Syncthing, TT-RSS, and the Repro admin panel.

  - If you are logged in to Plinth, you will be automatically logged in to these web apps.

- ejabberd: Added option to enable/disable Message Archive Management.

- help: Added Debian release name to about page.

- firstboot: De-bloat first welcome screen.

- Pinned footer to the bottom of the viewport.

- disks: Restrict precision of reported available space on root partition.

- diagnostics: Disable button if app/service is not running.

- help: Only show help pages if user is logged in.

- navbar: Moved logout to user drop-down and added a new power drop-down.

- disks: Show disabled partition resize option if no space is available.

- Added line break to titles to fix frontpage layout.

- syncthing: Fixed typos and clarity in description.

- firewall: Fix 500 error when firewalld is not running.

- setup: Disable install/upgrade when dpkg/apt is running.

- disks: Use information from lsblk for more accuracy.

- datetime: Show timezone properly when it not in expected list.

#### Plinth v0.14.0 (2017-04)

- tor: Added option to use upstream bridges.

- openvpn: Added shortcut to front page, shown only when logged-in.

- openvpn: Non-admin users can download their own profiles.

- Added new locales for Hindi (hi) and Gujarati (gu).

- Added Syncthing module for file synchronization.

- Added Matrix Synapse as chat server with groups, audio and video.

- Require admin access for all system configuration pages.

- Changed appearance of topbar and footer.

- openvpn: Regenerate user key or certificate if empty.

- disks: Workaround issue in parted during resize.

#### Plinth v0.13.1 (2017-01-22)

- Two new apps were added:

  - Gobby Server (infinoted) for collaborative editing of text documents

  - Domain Name Server (BIND), in system menu

- Added JavaScript license web labels to provide partial support for LibreJS.

- Added basic configuration form for Minetest server.

- Added indicator to Help->About page if new Plinth version is available.

- Show app logos on front page instead of generic icons.

- Prevent anonymous users from accessing setup pages.

- Split Chat Server (XMPP) app into Chat Server (ejabberd) and Chat Client (jsxc).

#### Plinth v0.12.0 (2016-12-08)

- Open up RTP ports in the firewall for repro (SIP server).

- Front page shortcuts for services show a Configure button in the details box for logged-in users.

- Add mods packages to be installed with Minetest server.

- Fix issue with reading Dynamic DNS status as non-root user.

- After the hostname is changed, ensure the domain name is still set correctly.

- Allow the domain name to be cleared, and properly set the configuration in this case.

- On the Certificates (Let's Encrypt) page, show a more informative message when no domains are configured.

- On the Chat Server (XMPP) page, show more clearly if domain is not set.

- Apps that require login will not be shown on the front page, unless the user is logged in.

- Show status block for News Feed Reader (Tiny Tiny RSS).

- Change appearance of front page with larger icons and repositioned text.

- Firewall page only lists services that have been setup. The port lists are collapsible under each service.

- Support configuring IPv6 networks.

- Make it less likely to accidentally delete the only Plinth user.

- Updated to work with JSXC 3.0.0 (XMPP web client).

#### Plinth v0.11.0 (2016-09-29)

- Added loading icon for additional busy operations.

- Added basic front page with shortcuts to web apps, and information about enabled services.

- networks: Add batctl as dependency, required for batman-adv mesh networking.

- users:

  - Fixed checking restricted usernames.

  - Display error message if unable to set SSH keys.

  - Flush nscd cache after user operations to avoid some types of errors.

- monkeysphere:

  - Adopted to using SHA256 fingerprints.

  - Sort items for consistent display.

  - Handle new uid format of gpg2.

  - Fixed handling of unavailable imported domains.

- minetest: Fixed showing status block and diagnostics.

- Fixed stretched favicon.

- Switched base template from container-fluid to container. This will narrow the content area for larger displays.

- Plinth is now able to run as "plinth" user instead of root user.

- xmpp: Replaced jwchat with jsxc.

- ikiwiki: Allow only alphanumerics in wiki/blog name to avoid invalid paths.

#### Plinth v0.10.0 (2016-08-21)

- Updated Plinth to support Django 1.10.

- Added a page to display recent status log from Plinth. It is accessible from the 500 error page.

- Tor: Added options to toggle relay and bridge relay modes.

- Radicale: Added access rights control.

- Ikiwiki: Updated suggested packages.

- Users and Groups: Fixed editing users without SSH keys.

- Networks: Added basic support for configuring batman-adv mesh networking.

- Networks: Fixed incorrect access for retrieving DNS entries.

- New languages:

  - Persian (50% translated)

  - Indonesian (not started, contributions needed)

- New modules added to Plinth:

  - Disks: Shows free space of mounted partitions, and allows expanding the root partition.

  - Security: Controls login restrictions.

  - Snapshots: Manages Btrfs snapshots.

#### Version 0.9.4 (2016-06-24)

- Added Polish translation.

- Fixed issue preventing access to Plinth on a non-standard port.

- Dealt with ownCloud removal from Debian. The ownCloud page in Plinth will be hidden if it has not been setup. Otherwise, a warning is shown.

- Fixed issue in Privoxy configuration. Two overlapping listen-addresses were configured, which prevented privoxy service from starting.

- Fixed issue that could allow someone to start a module setup process without being logged in to Plinth.

- Fixed issues with some diagnostic tests that would show false positive results.

- Added check to Diagnostics to skip tests for modules that have not been setup.

- Fixed some username checks that could cause errors when editing the user.

- Added sorting of menu items per locale.

- Moved Dynamic DNS and Pagekite from Applications to System Configuration.

- Allowed setting IP for shared network connections.

- Switched Dreamplug image from "non-free" to "free". This means that we no longer include the non-free firmware for the built-in wifi on Dreamplug.

- Added the "userdir" module for the Apache web server. This allows users in the "admin" group to create a folder called "public_html" under their home folder, and to publicly share files placed in this folder.

- New wiki and manual content licence: Creative Commons Attribution-ShareAlike 4.0 International (from June 13rd 2016).

- Switched to using apt-get for module setup in Plinth. This fixes several issues that were seen during package installs.

#### Version 0.9 (2016-04-24)

- Fixed Wi-Fi AP setup.

- Prevent lockout of users in 'sudo' group after setup is complete.

- Improved setup mechanism for Plinth modules. Allows users to see what a module is useful for, before doing the setup and package install. Also allows essential modules to be setup by default during FreedomBox install.

- Added HTTPS certificates to Monkeysphere page. Reorganized so that multiple domains can be added to a key.

- Added Radicale, a CalDAV and CardDAV server.

- Added Minetest Server, a multiplayer infinite-world block sandbox.

- Added Tiny Tiny RSS, a news feed reader.

#### Version 0.8 (2016-02-20)

- Added Quassel, an IRC client that stays connected to IRC networks and can synchronize multiple frontends.

- Improved first boot user interface.

- Fixed Transmission RPC whitelist issue.

- Added translations for Turkish, Chinese, and Russian. Fixed and updated translations in other languages.

- Added Monkeysphere, which uses PGP web of trust for SSH host key verification.

- Added Let's Encrypt, to obtain certificates for domains, so that browser certificate warnings can be avoided.

- Added repro, a SIP server for audio and video calls.

- Allow users to set their SSH public keys, so they can login over SSH without a password.

#### Version 0.7 (2015-12-13)

- Translations! Full translations of the interface in Danish, Dutch, French, German and Norwegian Bokmål, and partial Telugu.

- Support for OLinuXino A20 MICRO and LIME2

- New Plinth applications: OpenVPN, reStore

- Improved first-boot experience

- Many bugfixes and cleanups

#### Version 0.6 (2015-10-31)

- New supported hardware target: Raspberry Pi 2

- New modules in Plinth:

  - Shaarli: Web application to manage and share bookmarks

  - Date & Time: Configure time zone and NTP service

  - Service Discovery: Configure Avahi service

- Documentation revamp including new user manual and developer guide

- Improved diagnostic tests, available in Plinth

- Avoid unnecessary changes when installing on existing Debian system

- Network configuration supports PPPoE connections

- Debian packages can be download over Tor

#### Version 0.5 (2015-08-07)

- New targets: CubieTruck, i386, amd64

- New apps in Plinth: Transmission, Dynamic DNS, Mumble, ikiwiki, Deluge, Roundcube, Privoxy

- NetworkManager handles network configuration and can be manipulated through Plinth.

- Software Upgrades (unattended-upgrades) module can upgrade the system, and enable automatic upgrades.

- Plinth is now capable of installing ejabberd, jwchat, and privoxy, so they are not included in image but can be installed when needed.

- User authentication through LDAP for SSH, XMPP (ejabberd), and ikiwiki.

- Unit test suite is automatically run on Plinth upstream. This helps us catch at least some code errors before they are discovered by users!

- New, simpler look for Plinth.

- Performance improvements for Plinth.

#### Version 0.3 (2015-01-20)

- Tor Bridges: All boxes now act as non-exit Tor bridges, routing traffic for the Tor network.

- Firewall: firewall is on by default and is automatically managed.

- Add BeagleBone support. We now have images for BeagleBone, RaspberryPi, VirtualBox i386/amd64, and DreamPlug.

- Ability to enable and use Tor Hidden Services. Works with Ejabberd/JWChat and ownCloud services.

- Enable Tor obfsproxy with scramblesuit.

- Drop well-known root password (an account with sudo capabilities still exists for now but will be removed soon).

- Switch to unstable as suite of choice for easier development.

- Newer images are built with systemd by default (due to Debian change).

- Install and operate firewall automatically (uses firewalld).

- Major restructuring of Plinth UI using Python3, Django web development framework and Bootstrap3. Code quality is much better and UI is more polished.

- Introduced packaging framework in Plinth UI for on-demand application installation.

#### Version 0.2 (2014-03-16)

- Support for Raspberry Pi and VirtualBox (x86) in addition to the DreamPlug.

- New Services:

  - Configuration Management UI.

  - Instant Messaging.

  - OwnCloud.

  - dnsmasq.

  - Low-Level Configuration Management.

  - Service Announcement.

  - LDAP Server.

  - LXC Support.

  - Source Packages.

- The privoxy setup is now the default from Debian.

#### Version 0.1 (2013-02-26)

- First FreedomBox software release (0.1 image, developer release).

- Full hardware support in Debian

- Support for DreamPlug.

- Basic software tools selected as common working environment:

  - User interface system "plinth"

  - Cryptography tools: gpg or "monkeysphere"

  - Box-to-box communication design: Freedom-buddy (uses TOR network)

  - Web cleaning: "privoxy-freedombox".

## Contribuir

Desde la codificación, el diseño y la traducción hasta la divulgación y las donaciones he aquí varias formas de contribuir a FreedomBox.

### Enlaces Rápidos

Manual del Desarrollador de FreedomBox

Reuniones de revisión de avance

Página de trabajos pendientes

Página de Donaciones

### Bienvenida a los recién llegados

Como nuevo contribuyente, eres más que bienvenido a presentarte a otros en el foro de debate, la lista de correo o el canal de IRC de FreedomBox. Además de hacer contactos útiles, puedes empezar a informar fallos y traducir (ver abajo) el wiki y el interfaz de FreedomBox.

### Prioridades de Desarrollo

Las prioridades se discuten regularmente. Encontrarás el avance del Servicio FreedomBox (Plinth) con sus prioridades aquí: panel de tareas e hitos.

Por favor, asiste a las próximas reuniones de avance para mantenerte al día y tratar con los miembros del equipo de publicación (release). La Página de trabajos pendientes recopila la lista completa de los elementos en los que trabajar para FreedomBox.

### Se necesitan Contribuciones

#### Añadir una Aplicación

Si eres desarrollador y quieres ver disponible en FreedomBox alguna aplicación, puedes contribuir añadiéndola a FreedomBox. Mira el Manual del Desarrollador de FreedomBox.

#### Defectos

Las listas de defectos, peticiones de funcionalidad y mejoras se controlan en el gestor de tiquets de FreedomBox. Mira también la lista de defectos para ayudar al paquete Debian del que dependemos y el cuadro de mando del equipo de paquetizado de FreedomBox para ver el estado los paquetes que usamos.

#### Codificar

Si eres desarrollador puedes contribuir código a algún sub-proyecto de FreedomBox. Éste es el procedimiento paso a paso para contribuir código.

- Servicio FreedomBox (Plinth): un interfaz web para administrar las funciones de FreedomBox.

- Freedom Maker: un script para construir imágenes de disco de FreedomBox para usarlas en dispositivos de hardware variados o en máquinas virtuales.

Puedes tomar una tarea de la Página de trabajos pendientes. Las páginas de cada proyecto contienen información acerca de acceso al código, cómo construir y listas de trabajos pendientes.

#### Diseño

##### Diseño de Experiencia de Usuario (UX)

Si eres diseñador de UX, puedes ayudar a FreedomBox con esto:

- Experiencia de interacción para el interfaz web del Servicio FreedomBox (Plinth).

- Diseño web para los sitios freedombox.org, freedomboxfoundation.org y el wiki.

- Logo y marca (actualmente tenemos un manual de identidad y logos).

- Propuestas de diseño para casos de uso de FreedomBox sobre SBCs personalizados.

- Diseño de UX

##### Diseño Técnico

FreedomBox necesita tu conocimiento técnico para elaborar planes de implementación de nuevas funcionalidades. Puedes contribuir a los debates acerca de varios aspectos de diseño técnico e implementación de FreedomBox. Mira la sección de desarrollo de los foros de discusión.

#### Donar

La FreedomBox Foundation es una corporación federal 501(c)(3) reconocida por el IRS. El proyecto FreedomBox lo llevan voluntarios. Puedes ayudar a su financiación donando mediante PayPal, Bitcoin o enviando un cheque. Mira por favor la página de donación para más detalles acerca de cómo donar.

#### Documentar: Manual de Usuario, Sitio Web y Wiki

FreedomBox necesita mejor documentación para usuarios y contribuyentes. El manual de FreedomBox se prepara agregando diferentes páginas del wiki y exportando a various formatos. El manual se usa en el Servicio FreedomBox (Plinth) y en otros sitios.

Si quieres contribuir al wiki (y por extensión al manual) de FreedomBox, puedes crear una cuenta en el wiki y empezar a editar.

Para contribuir al sitio web por favor inicia un debate en la sección de desarrollo del foro de FreedomBox.

#### Asegurar la Calidad

- FreedomBox ya funciona sobre muchas plataformas y a los desarrolladores les resulta imposible probar en todas. Si tienes algún hardware soportado puedes ayudar probando FreedomBox en tu platforma.

- Cuando se integra una nueva aplicación en FreedomBox, el desarrollador que hace el trabajo no prueba toda la functionalidad en el mundo real. Desplegar la aplicación y probarla ayudará a tener aplicaciones de alta calidad en FreedomBox.

Mira en la página de aseguramiento de la calidad la lista de casos de prueba que hay que verificar y la información acerca de cómo informar defectos.

#### Localizar (l10n)

Todo texto visible por los usuarios de FreedomBox necesita ser localizado a varios idiomas. Este trabajo de traducción incluye:

- El Interfaz web de FreedomBox

- La documentación de FreedomBox

- El wiki y los sitios web de FreedomBox y la Freedombox Foundation.

- El framework Django que emplea FreedomBox.

- Cada aplicación que FreedomBox expone a sus usuarios.

Puedes contribuir al esfuerzo de localización usando la herramienta web Weblate o directamente en el repositorio de código mediante Salsa.

Si quieres ver a FreedomBox disponible en alguno de tus idiomas, por favor abre un debate en la sección de desarrollo del foro de FreedomBox para trabajar con otros traduciendo para ese idioma.

Para más información, por favor visita la página de traductores.

#### Correr la Voz

Cuenta a tu familia, amistades, comunidad local o en conferencias globales la importancia de FreedomBox. Para ser un proyecto exitoso necesitamos muchos más participantes, ya sean usuarios o contribuyentes. Comenta tus esfuerzos de divulgación en la página de charlas y en el wiki.

## Guía del Desarrollador

The FreedomBox Developer Manual provides a step by step tutorial for writing apps for FreedomBox and an API reference. It is available from docs.freedombox.org.

## Cacharreo

FreedomBox consiste de 2 sub-proyectos principales:

- El Servicio FreedomBox (Plinth), el interfaz web

- Freedom Maker, un script para generar imágenes de disco para hardware variado

### Servicio FreedomBox (Plinth)

El servicio FreedomBox (Plinth) es un interfaz web para administrar las funciones de FreedomBox.

El servicio FreedomBox (Plinth) es Software Libre bajo la versión 3 o posterior (a tu elección) de la Licencia Pública General GNU Affero.

#### Uso

- El servicio FreedomBox (Plinth) viene instalado en todas las imágenes de FreedomBox. Puedes descargar imágenes de FreedomBox y ejecutarlas en cualquier hardware soportado. El servicio FreedomBox (Plinth) estará accesible visitando la URL http://freedombox/plinth o https://freedombox.local/plinth.

- Si estás en una máquina Debian puedes instalar el servicio FreedomBox (Plinth) desde el archivo de paquetes de Debian. Actualmente solo se soportan Stretch (estable), Buster (en pruebas) y Sid (inestable). Para instalar el servicio FreedomBox (Plinth) ejecuta:

    $ sudo apt-get install plinth

- También puedes obtener el servicio FreedomBox (Plinth) en su repositorio Git o instalarlo desde el código fuente.

#### Capturas de pantalla

#### Soporte

Puedes solicitar soporte en

- El foro de debate

- La lista de correo

- El canal IRC #freedombox

- El canal Matrix FreedomBox

#### Contribuir

Buscamos ayuda para mejorar el servicio FreedomBox (Plinth). Puedes contribuir al servicio FreedomBox (Plinth) no solo codificando sino también traduciendo, documentando, diseñando, empaquetando o dando soporte.

- Hay disponibles instrucciones para contribuir código.

- El repositorio Git principal se aloja en la página de FreedomBox en Salsa.

- Hay disponibles instrucciones para instalar desde el código fuente y modificarlo.

- Las listas de defectos, tareas pendientes y solicitudes de funcionalidad están en el gestor de incidencias.

- Antes de contribuir al código fuente del servicio FreedomBox (Plinth) necesitas entender Python y Django porque se basa en ellos.

- Puedes solicitar asistencia al desarrollo en el foro de debate, la lista de correo o el canal de IRC #freedombox.

##### Paquete Debian

- El servicio FreedomBox (Plinth) está empaquetado para Debian como paquete nativo y el código fuente de empaquetado es parte del código fuente del paquete principal.

- Las incidencias relacionadas con el empaquetado se listan en el BTS de Debian.

### Freedom Maker

Freedom Maker es un script para generar imágenes de disco FreedomBox adaptadas a diferentes dispositivos hardware o máquinas virtuales.

Actualmente Freedom Maker puede generar imágenes de disco FreedomBox para el siguiente hardware:

- A20-OlinuXino-LIME

- A20-OlinuXino-LIME2

- A20-OLinuXino-MICRO

- Banana Pro

- BeagleBone

- Cubieboard2

- Cubietruck

- pcDuino3

- Raspberry Pi 2

- Raspberry Pi 3 Modelo B

- Raspberry Pi 3 Modelo B+

- VirtualBox

- QEMU

- Máquinas AMD64 (x86-64), máquinas X86 y otras máquinas virtuales (usando imágenes de disco en crudo (raw))

Si una platforma de hardware puede ejecutar Debian no debería llevar mucho esfuerzo adaptar Freedom Maker para que le genere imágenes FreedomBox.

Freedom Maker es Software Libre licenciado bajo la versión 3 o posterior (a tu elección) de la Licencia Pública General GNU.

#### Generar Imágenes FreedomBox

- Puedes obtener Freedom Maker desde su repositorio Git y seguir las instrucciones del fichero README para generar una imágen FreedomBox.

#### Soporte

Puedes solicitar soporte en

- El foro de debate

- La lista de correo

- El canal IRC #freedombox

- El canal Matrix FreedomBox

#### Contribuir

Buscamos ayuda para mejorar Freedom Maker.

- Hay instrucciones disponibles para contribuir código fuente.

- Freedom Maker se aloja en el Proyecto Salsa de FreedomBox. El repositorio Git principal está alojado allí.

- Puedes contribuir a FreedomBox añadiendo soporte para más platformas de hardware. Freedom Maker se puede adaptar fácilmente a más platformas si ya soportan ejecutar Debian.

- Puedes crear y probar imágenes con Freedom Maker regularmente para probar las funcionalidades nuevas y comprobar que no hay regresiones.

- Las listas de defectos, tareas pendientes y solicitudes de funcionalidad están en el gestor de incidencias.

- Puedes solicitar asistencia al desarrollo en el foro de debate, la lista de correo o el canal IRC #freedombox.

## Cuéntaselo a tu gente

- FreedomBox

- FreedomBox en la Prensa (en)

- Conferencias (en)

- Cahrlas y presentaciones (en)

- Material Disponible. Presentaciones y otros materiales en bruto.

- Facebook

- Twitter

- Mastodon

- Videos de la Debconf11