Mozilla Hubs
The client-side code for Mozilla Hubs, an online 3D collaboration platform that works for desktop, mobile, and VR platforms.
Getting Started
If you would like to run Hubs on your own servers, check out Hubs Cloud.
If you would like to deploy a custom client to your existing Hubs Cloud instance please refer to this guide.
If you would like to contribute to the main fork of the Hubs client please see the contributor guide.
If you just want to check out how Hubs works and make your own modifications continue on to our Quick Start Guide.
Quick Start
Install NodeJS if you haven't already. We recommend version 12 or above.
Run the following commands:
git clone https://github.com/mozilla/hubs.git
cd hubs
npm ci
npm run dev
The backend dev server is configured with CORS to only accept connections from "hubs.local:8080", so you will need to access it from that host. To do this, you likely want to add "hubs.local" and "hubs-proxy.local" to the local "hosts" file on your computer:
127.0.0.1 hubs.local
127.0.0.1 hubs-proxy.local
Then visit https://hubs.local:8080 (note: HTTPS is required, you'll need to accept the warning for the self-signed SSL certificate)
Note: When running the Hubs client locally, you will still connect to the development versions of our Janus WebRTC and reticulum servers. These servers do not allow being accessed outside of localhost. If you want to host your own Hubs servers, please check out Hubs Cloud.
Documentation
The Hubs documentation can be found here.
Community
Join us on our Discord Server or follow us on Twitter.
Contributing
Read our contributor guide to learn how you can submit bug reports, feature requests, and pull requests.
We're also looking for help with localization. The Hubs redesign has a lot of new text and we need help from people like you to translate it. Follow the localization docs to get started.
Contributors are expected to abide by the project's Code of Conduct and to be respectful of the project and people working on it.
Additional Resources
- Reticulum - Phoenix-based backend for managing state and presence.
- NAF Janus Adapter - A Networked A-Frame adapter for the Janus SFU service.
- Janus Gateway - A WebRTC proxy used for centralizing network traffic in this client.
- Janus SFU Plugin - Plugins for Janus which enables it to act as a SFU.
- Hubs-Ops - Infrastructure as code + management tools for running necessary backend services on AWS.
Privacy
Mozilla and Hubs believe that privacy is fundamental to a healthy internet. Read our privacy policy for more info.
License
Hubs is licensed with the Mozilla Public License 2.0