# OASIS_LINUX — rama de desarrollo experimental

> ## ⚠ ESTO NO ES OASIS OFICIAL
>
> Esta es una **rama de desarrollo experimental** mantenida por el hacklab, **no
> afiliada** al proyecto original.
>
> ### El repositorio oficial de Oasis es el de epsylon: https://github.com/epsylon/oasis
>
> Si quieres **usar Oasis de verdad, instala el oficial**. Lo que hay aquí puede
> romperse, cambiar de forma incompatible o desaparecer sin aviso. No está auditado y
> no tiene garantía de ninguna clase.
>
> **Los fallos de esta rama se reportan aquí, nunca a epsylon.**

Versión base: **Oasis 0.9.5** · Rama: `PRUEBAS` ·
[Documentación completa](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki) ·
[Versión de Android](https://gitea.laenre.net/hacklab/OASIS_MOBILE)

![Las novedades](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/00-novedades.png)

---

## Lo que añade

| | Oasis oficial | Esta rama |
|---|---|---|
| **Salas efímeras** | — | Karvan: mensajes que solo viven en memoria y se autodestruyen |
| **Videollamadas** | — | Audio y vídeo por WebRTC, probado entre dos participantes |
| **Varias identidades** | Una, en `~/.ssb` | Las que quieras, con aviso si dos comparten clave |
| **Respuesta citada** | — | Responder a un mensaje concreto dentro de un chat |
| **Metadatos de las imágenes** | Se quitan solo si está `sharp` | Se quitan siempre, sin depender de nada |
| **Servidor STUN** | Uno de Google, por defecto | Ninguno. TURN propio si lo configuras |

**La interfaz no se toca**: es la del Oasis oficial, con sus mismos nombres, sus mismos
módulos y su mismo menú lateral.

---

## Qué es Oasis, en cuatro dibujos

Una red social **sin servidor**: publicas en tu propio equipo y los demás se traen una
copia. No hay cuenta, no hay contraseña y nadie puede borrarte.

![Qué es Oasis](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/01-red.png)

Los mensajes viajan **de vecino en vecino**, así que llegan a gente con la que nunca te
has conectado. Por eso funciona incluso sin internet, entre dos equipos de la misma red.

![Cómo llega un mensaje](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/02-gossip.png)

Un **pub** es solo un nodo que no se apaga nunca. No es un servidor con tus datos: no
guarda tu identidad, no decide qué ves y no puede borrarte.

![Qué es un pub](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/04-pub.png)

Todo lo que publicas se encadena y va **firmado con tu clave**. Nadie puede colar un
mensaje en tu nombre ni cambiar lo que dijiste.

![Tu registro](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/14-registro.png)

> La explicación completa —los saltos, las tribus, el LARP, los módulos— está en
> **[Entender Oasis en diez minutos](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Entender)**.

---

## Karvan: salas que se borran solas

![Cómo funciona Karvan](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/11-karvan.png)

Lo que se dice dentro **no toca el disco**, no entra en tu registro y no se replica a
nadie. Dos relojes corren a la vez —inactividad y tiempo absoluto— y la sala muere con
el que llegue antes.

![Una sala con mensajes](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/02-karvan-sala.png)

---

## Videollamadas sin terceros

![Cómo funciona una llamada](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/12-llamadas.png)

El servidor solo sirve para que os encontréis: **la voz y el vídeo van directos** entre
los participantes, cifrados de extremo a extremo. Sin STUN de Google.

![Llamada entre dos participantes](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/10-llamada-dos.png)

Probado entre dos navegadores en la misma sala: se negocia el canal, el indicador pasa
a **P2P (WebRTC)** y llega el vídeo del otro.

---

## Varias identidades en el mismo equipo

![Varias identidades](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/15-identidades.png)

Cada una con su clave, su registro y sus contactos, en su propia carpeta. Se elige en
los ajustes y se aplica al reiniciar.

![Selector de identidades](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/09-identidades.png)

> Si dos identidades comparten clave, la lista lo avisa en rojo. Publicar desde las dos
> **parte el registro y no se arregla**.

---

## Empezar desde cero

![De cero a estar dentro](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/05-empezar.png)

| | |
|---|---|
| **[oasis-project.pub](https://oasis-project.pub)** | Directorio de pubs, con invitaciones y estado de cada uno |
| **[0asis.net](https://0asis.net)** | El proyecto explicado desde el principio |
| **[wiki.solarnethub.com](https://wiki.solarnethub.com/socialnet/overview)** | La documentación oficial, módulo por módulo |

---

## Instalar

```sh
git clone https://gitea.laenre.net/hacklab/OASIS_LINUX.git
cd OASIS_LINUX/src/server && npm install
cd ../.. && ./oasis.sh
```

Abre `http://localhost:3000`.

![Qué pasa al abrir Oasis](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/17-arquitectura-escritorio.png)

Oasis levanta un servidor **en tu propia máquina**: el navegador es solo la ventana. Lo
único que sale a la red es la replicación, por el puerto 8008.

### Varias identidades

```sh
OASIS_ACCOUNT=trabajo ./oasis.sh        # vive en ~/.trabajo, aislada de ~/.ssb
```

> ⚠ **No ejecutes esta rama y el Oasis oficial a la vez con la misma identidad.**
> Publicar desde dos sitios con el mismo `secret` **parte tu registro y lo deja
> inservible para siempre**. No es recuperable.

---

## Documentación

Todo lo de arriba, en detalle, está en la
**[wiki](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki)**:

| | |
|---|---|
| [Entender Oasis](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Entender) | La red, el gossip, los saltos, los pubs, las tribus y el LARP |
| [Empezar desde cero](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Empezar) | Invitación, seguir gente, abrir tu blog o tu tienda |
| [Instalar](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Instalar) | Puesta en marcha y varias identidades |
| [Karvan](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Karvan) | Salas efímeras, paso a paso |
| [Llamadas](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Llamadas) | Cómo se llama y cómo montar un TURN |
| [Chats](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Chats) | La respuesta citada |
| [Temas](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Temas) | Cómo se ve con los cuatro temas |
| [Diferencias con móvil](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Diferencias) | Qué cambia respecto al repositorio hermano |
| [Estructura del código](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Estructura) | Dónde vive cada fichero y por qué ahí |
| [Si algo va mal](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/Problemas) | Los fallos que han pasado de verdad |

---

## El proyecto original

Esta rama existe **gracias a** y **por encima de** el trabajo de epsylon. El código, la
arquitectura, los módulos y la red son suyos.

- **Código:** https://github.com/epsylon/oasis
- **Proyecto:** https://solarnethub.com
- **Wiki:** https://wiki.solarnethub.com/socialnet/overview

## Licencia

AGPL-3.0, la misma que el proyecto original.
