OASIS_LINUX/README.md
SITO ddd2787b73 Oasis 0.9.5 con Karvan para escritorio
Rama de desarrollo experimental sobre el Oasis de epsylon, sin afiliacion con el
proyecto original. Base: 0.9.5.

Trae el modulo Karvan —salas efimeras en memoria con autodestruccion por TTL, chat
que funciona sin JavaScript y llamadas de audio y video sobre WebRTC— con el enlace
en el menu lateral por el mismo patron que el resto de modulos: renderKarvanLink
calcado de renderPollsLink, entrada en modules_view y en la lista de /modules.

Los estilos del modulo van en su propia hoja, styles/karvan.css, siguiendo el patron
de highlight.css: asi se ve igual con cualquier tema, sin depender del tema movil.

Sin servidores ICE de terceros: no hay STUN de fabrica, porque un STUN aprende la IP
publica y el momento de cada llamada. Solo candidatos host salvo que se configure un
TURN propio en oasis-config.json, con credenciales efimeras por el mecanismo REST de
coturn.

El codigo propio vive separado —views/fork/, backend/fork_routes.js,
models/karvan_model.js y translations/fork/— de modo que sobre los ficheros de
upstream solo hay enganches de una linea y cada version nueva se integra sin
arrastrar nada.

Respecto al arbol de Android: fuera el wrapper y main.js, que es su arranque; el
tema vuelve a Dark-SNH y se restauran los modulos que en movil se recortan por peso.

Verificado arrancando sin OASIS_MOBILE: nueve rutas OK, menu lateral de upstream con
27 grupos y el enlace de Karvan, cero rastro de la interfaz movil (ni hexagonos, ni
topbar, ni barra inferior), y una sala creada y servida.
2026-08-19 00:35:08 +02:00

78 lines
2.7 KiB
Markdown

# 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**.
## Qué añade esta rama
### Karvan — salas efímeras
Salas de chat que **viven solo en memoria** y se autodestruyen solas:
- 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.
### Llamadas de audio y vídeo
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`:
```json
"rtc": {
"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
- **Módulo de IA**: fuera. El modelo son unos 4 GB.
- **housing**: portado pero apagado por defecto.
## Instalación
Igual que el oficial:
```sh
cd src/server && npm install
cd ../.. && ./oasis.sh
```
## Relación con upstream
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.
## Licencia
AGPL-3.0, la misma que el proyecto original.