OASIS_LINUX/oasis.sh
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

84 lines
2.7 KiB
Bash

#!/bin/sh
CURRENT_DIR=$(pwd)
MODE=$1
MODEL_PATH="$CURRENT_DIR/src/AI/oasis-42-1-chat.Q4_K_M.gguf"
CONFIG_FILE="$CURRENT_DIR/src/configs/oasis-config.json"
case " $* " in *" --debug "*) export OASIS_DEBUG=1 ;; esac
show_help() {
cat <<'EOF'
Usage: sh oasis.sh [mode] [-- <option>=<value> ...]
Modes:
gui Launch the Oasis web GUI (default).
server Launch only the Oasis backend in headless / pub mode.
help, -h Show this help message.
PUB admin commands (require the sbot to be running: sh oasis.sh server):
whoami Print this PUB id
invite [N] Create an invite code (default uses=1)
name <text> Set this PUB display name
announce <host> [port] Publish a pub address (default port=8008)
follow <feedId> Follow another PUB / feed
status Show peer / replication status
gossip List known gossip peers
GUI options (forwarded to the backend):
--host=<ip> Hostname / IP the web UI listens on (default: localhost).
Use 0.0.0.0 to expose on a VPS.
--port=<n> Port for the web UI (default: 3000).
--allow-host=<host> Extra hostname allowed when behind a reverse proxy.
--public Public-hosting mode: disables POST and redacts content
from people who haven't opted in to public hosting.
--offline Don't try to connect to Oasis peers / pubs.
--no-open Don't auto-open a browser tab on launch (useful on a VPS).
--debug Verbose logging.
Examples:
sh oasis.sh
sh oasis.sh server
sh oasis.sh invite 100
sh oasis.sh name "My PUB"
sh oasis.sh announce mypub.example.com
sh oasis.sh --host=0.0.0.0 --port=8080 --no-open
EOF
}
if [ -f "$CONFIG_FILE" ]; then
if [ -f "$MODEL_PATH" ]; then
sed -i.bak 's/"aiMod": *"off"/"aiMod": "on"/' "$CONFIG_FILE"
else
sed -i.bak 's/"aiMod": *"on"/"aiMod": "off"/' "$CONFIG_FILE"
fi
rm -f "$CONFIG_FILE.bak"
fi
case "$MODE" in
help|-h|--help)
show_help
exit 0
;;
server|pub)
if [ -f "$CONFIG_FILE" ]; then
sed -i.bak 's/"aiMod": *"on"/"aiMod": "off"/' "$CONFIG_FILE"
sed -i.bak 's/"aiNavMod": *"on"/"aiNavMod": "off"/' "$CONFIG_FILE"
rm -f "$CONFIG_FILE.bak"
fi
cd "$CURRENT_DIR/src/server" || exit 1
exec node SSB_server.js start
;;
whoami|invite|name|announce|follow|status|gossip)
exec node "$CURRENT_DIR/scripts/oasis-pub.js" "$@"
;;
gui)
shift
cd "$CURRENT_DIR/src/backend" || exit 1
exec node backend.js "$@"
;;
*)
cd "$CURRENT_DIR/src/backend" || exit 1
exec node backend.js "$@"
;;
esac