Upstream no usa ni un solo subdirectorio en src/views, src/backend, src/models, src/client/assets/styles ni translations: todo plano. La rama habia creado dos (views/fork/ y translations/fork/), que es lo que mas se separaba de su forma de organizar el codigo. Se deshacen, y los ficheros pasan a llamarse como los suyos: views/fork/hive_nav.js -> views/hive_views.js (como main_views.js) views/fork/identities.js -> views/identities_view.js (como *_view.js) translations/fork/i18n_fork.js -> translations/i18n_fork.js (junto a i18n.js) backend/fork_routes.js -> backend/karvan_routes.js (familia karvan_*) Ademas se retira una ruta duplicada: /legacy/export estaba declarada dos veces, en backend.js (la del dev) y en el fichero de rutas de la rama, con el mismo cuerpo salvo un && defensivo. Nacio cuando el formulario se paso a GET; al devolverlo a POST quedo como copia exacta. Con ella se van legacyModel y onboardingModel, que ya no hacia falta inyectar. La cabecera del fichero de rutas explica ahora por que sigue existiendo, con los datos medidos y no de memoria: backend.js concentra 625 rutas y se reescribe en cada release (+833/-286 en la 0.9.2, +266/-31 en la 0.9.1), asi que una ruta anadida en medio entra en conflicto cada vez. Quedan diez ficheros propios, todos siguiendo la convencion de upstream, y +247 lineas repartidas en 21 ficheros suyos (sin contar OasisMobile.css, que es el tema de la rama). Comprobado tras mover: arranque, las siete rutas principales, el selector de identidades con sus siete entradas y su aviso, crear sala y enviar mensaje en Karvan, y la exportacion de identidad por la ruta del dev. |
||
|---|---|---|
| docs | ||
| scripts | ||
| src | ||
| test | ||
| .gitignore | ||
| install.sh | ||
| LICENSE | ||
| oasis.sh | ||
| package.json | ||
| README.md | ||
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:
"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:
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.