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