readme: la portada del repositorio, con esquemas y capturas

Al entrar en el repositorio se veia el aviso de rama experimental y, debajo,
el README entero de upstream copiado: 350 lineas contando lo que ya cuenta el
proyecto oficial, y mejor.

Ahora la portada ensena lo que hay aqui: la tabla de que anade esta rama frente
al oficial, Oasis explicado en cuatro dibujos, Karvan, las videollamadas, las
identidades y como empezar desde cero, todo con esquemas propios y capturas
reales.

El aviso de que esto NO es Oasis oficial se mantiene arriba del todo y completo.
Y al final, los enlaces al proyecto de epsylon, que es de donde sale todo.

Las imagenes se enlazan a la wiki en vez de duplicarse en el repositorio, que
es lo que hace tambien upstream con las suyas.

El fichero se sigue leyendo al arrancar el backend (readFileSync sin try/catch),
asi que lo importante es que exista: comprobado que arranca.
This commit is contained in:
SITO 2026-08-20 08:32:13 +02:00
parent 58824032f8
commit 9af3c04a45

193
README.md
View file

@ -2,76 +2,175 @@
> ## ⚠ ESTO NO ES OASIS OFICIAL > ## ⚠ ESTO NO ES OASIS OFICIAL
> >
> Esta es una **rama de desarrollo experimental** mantenida por el hacklab, no > Esta es una **rama de desarrollo experimental** mantenida por el hacklab, **no
> afiliada al proyecto original. > afiliada** al proyecto original.
> >
> **El repositorio oficial de Oasis es el de epsylon: https://github.com/epsylon/oasis** > ### 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 > 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 > romperse, cambiar de forma incompatible o desaparecer sin aviso. No está auditado y
> y no tiene garantía de ninguna clase. > no tiene garantía de ninguna clase.
> >
> Los fallos de esta rama **se reportan aquí, nunca a epsylon**. > **Los fallos de esta rama se reportan aquí, nunca a epsylon.**
Versión base: **Oasis 0.9.5**. 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)
## Qué añade esta rama ![Las novedades](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/00-novedades.png)
### Karvan — salas efímeras ---
Salas de chat que **viven solo en memoria** y se autodestruyen solas: ## Lo que añade
- TTL de inactividad (30 min) y absoluto (2 h), configurables al crear la sala. | | Oasis oficial | Esta rama |
- Nada se escribe en disco ni en el log SSB: al vencer el plazo, la sala y sus |---|---|---|
mensajes desaparecen. | **Salas efímeras** | — | Karvan: mensajes que solo viven en memoria y se autodestruyen |
- Anillo de 250 mensajes, 100 salas simultáneas, 50 miembros por sala. | **Videollamadas** | — | Audio y vídeo por WebRTC, probado entre dos participantes |
- El identificador de sala son **72 bits** y es la única credencial: **quien tiene | **Varias identidades** | Una, en `~/.ssb` | Las que quieras, con aviso si dos comparten clave |
el enlace, entra**. No hay lista de miembros que valga. | **Respuesta citada** | — | Responder a un mensaje concreto dentro de un chat |
- Invitación a un contacto por mensaje privado SSB. | **Metadatos de las imágenes** | Se quitan solo si está `sharp` | Se quitan siempre, sin depender de nada |
- **Funciona sin JavaScript**: enviar y recibir van por formulario y recarga. Con | **Servidor STUN** | Uno de Google, por defecto | Ninguno. TURN propio si lo configuras |
JavaScript se añade un canal directo entre pares.
### Llamadas de audio y vídeo **La interfaz no se toca**: es la del Oasis oficial, con sus mismos nombres, sus mismos
módulos y su mismo menú lateral.
Sobre el mismo WebRTC del chat. En escritorio el navegador pide los permisos de ---
cámara y micrófono directamente.
**Sin servidores de terceros**: no hay ningún STUN de fábrica. Un servidor STUN ## Qué es Oasis, en cuatro dibujos
aprende la IP pública y el momento de cada llamada, así que no se pone ninguno.
Por defecto solo hay candidatos host, que funcionan en la misma red y con NAT
amable. Si tu nodo tiene TURN propio, se configura en `oasis-config.json`:
```json Una red social **sin servidor**: publicas en tu propio equipo y los demás se traen una
"rtc": { copia. No hay cuenta, no hay contraseña y nadie puede borrarte.
"stun": ["stun:tu.pub:3478"],
"turn": { "urls": ["turn:tu.pub:3478"], "secret": "<static-auth-secret>", "ttlSec": 3600 },
"relayOnly": false
}
```
Con `secret` se emiten credenciales efímeras por el mecanismo REST de coturn. Con ![Qué es Oasis](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/01-red.png)
`relayOnly` toda la media pasa por el TURN y ningún par ve la IP del otro.
## Qué NO tiene respecto al oficial 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.
- **Módulo de IA**: fuera. El modelo son unos 4 GB. ![Cómo llega un mensaje](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/02-gossip.png)
- **housing**: portado pero apagado por defecto.
## Instalación 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.
Igual que el oficial: ![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 ```sh
cd src/server && npm install git clone https://gitea.laenre.net/hacklab/OASIS_LINUX.git
cd OASIS_LINUX/src/server && npm install
cd ../.. && ./oasis.sh cd ../.. && ./oasis.sh
``` ```
## Relación con upstream Abre `http://localhost:3000`.
Esta rama sigue las versiones de epsylon de cerca. El código propio vive separado ![Qué pasa al abrir Oasis](https://gitea.laenre.net/hacklab/OASIS_LINUX/wiki/raw/img/esq/17-arquitectura-escritorio.png)
(`src/views/fork/`, `src/backend/fork_routes.js`, `src/models/karvan_model.js` y las
traducciones en `translations/fork/`) para que integrar cada versión nueva no arrastre Oasis levanta un servidor **en tu propia máquina**: el navegador es solo la ventana. Lo
la interfaz de la rama. Sobre los ficheros de upstream solo hay enganches de una línea. ú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 ## Licencia