Installation on Linux
Pre-Install Checklist
- Ensure you have at least 16GB of RAM
You may run int issues running the full development setup with less - Clone the repository to a location whose path contains no spaces.
- Install Node.js 18
(versions earlier than 16 are not guaranteed to work) - Install Python >=3.6, PIP, C++, and other build tools
See the Mediasoup install instructions for full details. - Install Docker
Optionally: If you're NOT using docker, install MariaDB, Redis and MinIO manually and update repo's.env.local
accordingly.
You should now be ready to follow the Quick Start instructions.
Clone the repository
A lot has changed during development, and our monorepo has gotten quite large.
To avoid cloning everything, use this command:
git clone https://github.com/etherealengine/etherealengine --depth 1
Warning:
Adding--depth=1
will significantly reduce the amount of data downloaded when cloning, but it will also create aShallow Copy
of the engine's repository.
If you need to download any branch other thandev
, or go back in git history into an older commit, you will have to unshallow the repository first, or else any branches and older commits won't be accessible. The command to undo cloning with--depth=N
is eithergit fetch --unshallow
orgit pull --unshallow
Ensure you are running Node 18
The engine to date has only been confirmed to work with Node 16.x and 18.x.
Earlier or later major versions are not guaranteed to work properly.
The best way to install and manage Node.js versions is by using a version manager:
- Install NVM
- Install Node.js 18 with
nvm install 18
- (Optional) Make Node.js 18 your default node version with
nvm alias default 18
Note: Polyglot ASDF can also be used for managing node versions.
Please check the output of node --version
before running the engine.
If you are using a node version below 16, please update or nothing will work.
You will know that you are having issues if you try to install packages at root with npm install
and you get package dependency errors.
Docker is your friend
You don't need to use Docker, but it will make your life much easier.
If you don't wish to use Docker, you will need to setup mariadb and redis on your machine. You can find credentials in /scripts/docker-compose.yml
Quick Start
If you are lucky, this will just work. However, you may encounter some issues.
Make sure you are running Node 18, and check your dependencies.
cd path/to/etherealengine
cp .env.local.default .env.local
npm install
npm run dev-docker
npm run dev-reinit
npm run dev
Now run Ethereal Engine in your browser by navigating to this link.
Accept Certificates
When loading the engine's website for the first time you'll have to tell your browser to ignore insecure connections.
- Open the
Developer Tools
of your browser by clicking the side menu with three dots, then go toMore tools > Developer tools
(or use eitherCtrl+Shift+I
orF12
) and then go to theConsole
tab. - You will see some errors in URL addresses starting with
wss
- Replace
wss
withhttps
and open that URL in a new tab - Accept the certificate
- Reload your Ethereal Engine's tab
- Replace
- You will see some errors in URL addresses starting with
https://localhost:9000
- Open the URL linked in one of those errors
- Accept the certificate
- Reload your Ethereal Engine's tab
You need to do this for the following domains:
wss://api-local.etherealengine.org
-> https://api-local.etherealengine.orgwss://instanceserver-local.etherealengine.org
-> https://instanceserver-local.etherealengine.org- https://localhost:9000
If the engine's website keeps displaying
loading routes
progress for a long time, it means that you have to allow the engine's certificates.
Web browsers will throw warnings when navigating to pages with unknown certificates (aka: insecure pages). You should be able to tell the browser to ignore these warnings by opening your browser's advanced options
, but during development it is easier to just ignore the browser's warnings and accept the default certificates.
Note: You will be able to create signed certificates to replace the default ones when you deploy your own Ethereal Engine stack.
Admin System and User Setup
You can administrate many features from the admin panel found at the /admin
route of your deployment.
eg: https://localhost:3000/admin
when working in a local deployment.
To give administration rights to a user:
- Open any page in your Ethereal Engine deployment
- Open the user menu (icon at the top-right of the screen)
- Click on
Show API key
- Copy that key to your clipboard (note: there is an icon to the right of this box for this purpose)
- Open a terminal and go to the folder where EtherealEngine was cloned.
- Run the command
npm run make-user-admin -- --id={COPIED_USER_ID}
whereCOPIED_USER_ID
is the key you just copied on the previous step.
Example:npm run make-user-admin -- --id=c06b0210-453e-11ec-afc3-c57a57eeb1ac
Alternate Method:
Open theUser
table of your deployment's database and changeuserRole
toadmin
(It helps to use a graphical database explorer, we recommend beekeeperstudio.io) The location of the database can be found in your.env.local
file.
Test user Admin privileges by going to the /admin
route of your deployment.
Advanced Installation and Troubleshooting
If you run into any trouble with the Quick Start instructions:
- Please make sure you've followed the Mediasoup installation instructions
- Check your OS-specific instructions:
- Installation Troubleshooting
- Advanced Setup
- Vite dev server is stalling