---
title: XRSH
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, development, metaverse, webxr, experimental]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=Development, https://xrsh.is]
---

# 💻 XRSH

> Expérimentation de **métaverse open source** dans le navigateur via WebXR — un shell 3D immersif, décentralisé, à exécuter sans installation sur n'importe quel device compatible VR/AR.

## 📋 Informations Générales

| Attribut | Valeur |
|----------|--------|
| **Nom** | XRSH |
| **Slug** | xrsh |
| **Description** | Shell de métaverse open source basé sur WebXR, expérimental |
| **Site officiel** | https://xrsh.is |
| **Repository** | https://gitlab.com/xrsh/xrsh |
| **Stars** | 1 ⭐ |
| **Licence** | MIT / AGPL (à vérifier) |
| **Langage** | JavaScript, A-Frame, WebXR |
| **Catégorie** | Development |
| **Note** | ⚠️ **Projet ultra-experimental (~1 ⭐)** — preuve de concept technique, pas un produit de production. |

## 📝 Description

**XRSH** (prononcer « eXr-S-H », pour eXtended Reality SHell) est une tentative de **shell 3D immersif** entièrement exécuté dans le **navigateur** grâce à l'API **WebXR**. Le projet vise à offrir un point d'entrée unique vers un **métaverse open source décentralisé**, à l'opposé des visions propriétaires de Meta (Horizon Worlds) ou de Microsoft (Mesh).

**Philosophie** : pas d'installation, pas d'application native, pas de store verrouillé. L'utilisateur ouvre une URL, accepte l'entrée immersive, et se retrouve dans un espace 3D partagé. Les « rooms » (salles) sont des **sites web HTML classiques** enrichis de balises 3D, hébergeables n'importe où. Cette approche « web-natif » contraste avec les plateformes classiques (VRChat, Roblox) qui imposent un client lourd et une autorité centrale.

**Stack technique** : principalement **A-Frame** (framework WebVR/WebXR au-dessus de Three.js) et du **JavaScript vanilla**, le tout orchestré par un système de **modules POSIX-like** qui rappelle un shell Unix transposé en 3D. Les utilisateurs interagissent avec des objets virtuels via des commandes textuelles ou vocales, à la manière d'un MUD moderne.

**⚠️ Confiance très faible** : avec **1 seule étoile GitHub**, XRSH est à la frontière entre **projet personnel**, **démonstration de faisabilité** et **concept en cours d'exploration**. Commits sporadiques, documentation fragmentaire, pas de communauté active structurée. À surveiller comme **signal d'innovation**, pas comme outil prêt à l'emploi.

## 🚀 Installation

### Auto-hébergement minimal (Docker)

```yaml
# docker-compose.yml
version: "3.8"
services:
  xrsh:
    image: nginx:alpine
    container_name: xrsh
    restart: unless-stopped
    volumes:
      - ./xrsh-www:/usr/share/nginx/html:ro
    ports:
      - "8080:80"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.xrsh.rule=Host(`xrsh.example.com`)"
      - "traefik.http.routers.xrsh.entrypoints=websecure"
      - "traefik.http.routers.xrsh.tls.certresolver=letsencrypt"
    networks:
      - proxy

networks:
  proxy:
    external: true
```

### Build depuis les sources

```bash
git clone https://gitlab.com/xrsh/xrsh.git
cd xrsh
python3 -m http.server 8000
# Ouvrir https://localhost:8000 dans un navigateur WebXR-capable
```

## ⚙️ Configuration

- **HTTPS obligatoire** : WebXR **refuse de fonctionner en HTTP non-sécurisé** — obligatoire derrière Traefik/Caddy avec certificat valide (Let's Encrypt).
- **Headers CORS** : pour partager des « rooms » entre domaines, configurer CORS sur le serveur statique.
- **Modules** : XRSH charge des modules à chaud depuis des URLs distantes — **whitelister strictement** les domaines autorisés.
- **Navigateur** : Chrome ≥ 90 ou Firefox ≥ 90 avec WebXR activé, ou casque Meta Quest / Vision Pro / Vive.
- **Stockage rooms** : un simple bucket S3, Pages Cloudflare, ou Nginx statique suffisent.

## 🔗 Alternatives

- **Mozilla Hubs** — Métaverse open source WebXR, archivé en 2024 mais instances toujours accessibles.
- **JanusWeb** — Client metaverse open source en JavaScript, compatible VRML/X3D.
- **A-Frame** — Framework bas niveau utilisé par XRSH, pour construire ses propres expériences WebXR.
- **Three.js** — Bibliothèque 3D sous-jacente, pour un contrôle total.

## 🔒 Sécurité

- **Surface d'attaque réduite** : XRSH étant mono-utilisateur par défaut, l'auto-hébergement se résume à servir du statique.
- **HTTPS obligatoire** : WebXR et `getUserMedia` (caméra/micro) requièrent un contexte sécurisé.
- **Modules tiers** : chargés dans le contexte de votre page — **CSP stricte recommandée**, avec whitelist explicite des origines autorisées.
- **Permissions WebXR** : les casques VR/AR requièrent des permissions explicites — informer clairement les utilisateurs.

## 📚 Ressources

- [Site officiel XRSH](https://xrsh.is)
- [Dépôt GitLab](https://gitlab.com/xrsh/xrsh) (à vérifier)
- [A-Frame — Framework WebXR](https://aframe.io)
- [WebXR Device API — MDN](https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API)
- [Selfh.st — Development](https://selfh.st/apps/?tag=Development)

## 🔗 Pages Liées

- [[cat-development]] — Catégorie Development
- [[app-traefik]] — Reverse-proxy HTTPS obligatoire pour WebXR
- [[securisation-home-lab]] — Bonnes pratiques de sécurité web
- [[recettes-docker-compose]] — Templates de déploiement statique
