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:
parent
58824032f8
commit
9af3c04a45
1 changed files with 146 additions and 47 deletions
193
README.md
193
README.md
|
|
@ -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
|

|
||||||
|
|
||||||
### 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
|

|
||||||
`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.
|

|
||||||
- **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:
|

|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> 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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Videollamadas sin terceros
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

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

|
||||||
|
|
||||||
|
> 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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| **[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
|

|
||||||
(`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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue