Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Host Vircadia Server on Ubuntu 20.04

Install Server

You need to install the libdouble-conversion1 package before installing Vircadia server (which normally only supports Ubuntu 18.04)

sudo apt update
wget http://ftp.br.debian.org/debian/pool/main/d/double-conversion/libdouble-conversion1_3.1.0-3_amd64.deb
sudo apt install ./libdouble-conversion1_3.1.0-3_amd64.deb
wget https://cdn.vircadia.com/dist/domain-server/ubuntu/vircadia-server_2022.1.0-selene-20211126-aabcdea-0ubuntu1-1_amd64.deb
sudo apt-get install ./vircadia-server_2022.1.0-selene-20211126-aabcdea-0ubuntu1-1_amd64.deb

Start the server as a service:

sudo systemctl enable vircadia-server@default.target

Got to http://server-ip:40100 (or http://localhost:40100) to get the server web browser interface and set up server. If you have problems, make sure you are using the right IP of your server and check for firewall settings (e.g. sudo ufw status)

Additional Server setup:

Set a name for your domain, this is what can be used for clients to search for your server using Explore function in the app.

Optional: I have my web interface behind a Caddy proxy an with my own domain, so I can access it via a secure URL such as https://vircadia.mydomain.com (not my actual). If you want to know more about Caddy as a reverse proxy, see my tutorial video.

Full Automatic Networking is supposed to just work but on my home server I still had to forward port 40102 on my router manually.

Set permissions for users in the server web interface. Include Rez etc if you want them to be able to create objects in the world, and edit it in a persistent way. I entered my username as a specific user and gave myself all permmissions, and gave other users lesser permissions and only friends edit ability.

Connect to the world using Interface app:

Download the Interface app Vircadia client interface and connect to your server by clicking Explore and search for your Domain. Tell others to join by giving them the name of your Domain which they can search for in the client interface.

Quickly import some content:

By default a new server is a blank void (no content).

Some really good looking free content is available.

If you want to quickly replace the whole content on your server with a pre-built world, just download one of these zips, and in your server settings, go to Content > Upload Content and upload the zip file.

Edit your world easily:

Use the CREATE button in the client interface. This allows you to search for enities within the world and modify them. Another way is to modify them programatically through the javascript interface, via scripts or the Console (see below).

Scripting and Console:

There is a Javascript API that allows you to write various scripts to create and alter the world dynamically, or enter commands in a console in the client interface app. To enable the console and other developer tools, go to Settings > Developer Menu to enable Developer menu. Under the new Developer choose Scripting > Console.... Enter commands here e.g. MyAvatar.setGravity(0); (default is usually -5).

Copying content from other domains:

You should be aware of licenses of content you copy, but it is possible to simply select and export content as json from any domain you join, by using the CREATE button.

@manojkumarjain
Copy link

manojkumarjain commented Feb 18, 2022

Thanks Vijay. This explains.

I have a working Server on 20-04 and working Client on Windows 10

Can I point windows client to Server 20-04 ?

Today Windows installation comes with Sandbox with Server + Client.

Thanks
Manoj

@vijay-prema
Copy link
Author

vijay-prema commented Feb 18, 2022

Any client on any machine can connect to your 20.04 server, as long as that server is set up correctly. Take a look at Additional Server setup in my gist above. Then you can click Explore in the client and search for your server to join it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment