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
|
||||
>
|
||||
> Esta es una **rama de desarrollo experimental** mantenida por el hacklab, no
|
||||
> afiliada al proyecto original.
|
||||
> 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**
|
||||
> ### 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.
|
||||
> 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**.
|
||||
> **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.
|
||||
- Nada se escribe en disco ni en el log SSB: al vencer el plazo, la sala y sus
|
||||
mensajes desaparecen.
|
||||
- Anillo de 250 mensajes, 100 salas simultáneas, 50 miembros por sala.
|
||||
- El identificador de sala son **72 bits** y es la única credencial: **quien tiene
|
||||
el enlace, entra**. No hay lista de miembros que valga.
|
||||
- Invitación a un contacto por mensaje privado SSB.
|
||||
- **Funciona sin JavaScript**: enviar y recibir van por formulario y recarga. Con
|
||||
JavaScript se añade un canal directo entre pares.
|
||||
| | 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 |
|
||||
|
||||
### 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
|
||||
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`:
|
||||
## Qué es Oasis, en cuatro dibujos
|
||||
|
||||
```json
|
||||
"rtc": {
|
||||
"stun": ["stun:tu.pub:3478"],
|
||||
"turn": { "urls": ["turn:tu.pub:3478"], "secret": "<static-auth-secret>", "ttlSec": 3600 },
|
||||
"relayOnly": false
|
||||
}
|
||||
```
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
## 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
|
||||
la interfaz de la rama. Sobre los ficheros de upstream solo hay enganches de una línea.
|
||||

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