Deploying the Realm Object Server

The Realm Object Server is easy to get started on any cloud service provider. In just a few minutes, you’ll be on your way to building powerful new apps with real-time functionality.

Deploying on Amazon EC2

We provide public AMIs for Amazon EC2, based on Ubuntu 16.04. For details on the difference between Paravirtual and HVM see this guide.

  Paravirtual HVM
ap-northeast-1 (Tokyo) |  
eu-west-1 (Ireland) |  
us-east-1 (N. Virginia) |  

You can launch these AMIs just as any other Amazon EC2 AMI. Make sure you open port 22/TCP (ssh) and 9080/TCP (dashboard and client access). The default SSH user is ubuntu.

Once you have Realm Object Server installed, go on to Building RealmTasks.

Deploying on Digital Ocean

If you’re just getting started, Digital Ocean is probably the fastest way to get the Realm Object Server up and running on to your own production server. Assuming you’ve already visited Digital Ocean and created an account, here is what you’ll need to do.

Create a droplet by clicking Create droplet in the upper right corner.

Select Ubuntu as your image distribution.

Digital Ocean select your image distribution section

Select what size makes sense for your project. Even the cheapest droplet can support many concurrent users, and is great for development and testing.

Digital Ocean choose a droplet size section

Choose the datacenter region closest to you.

Digital Ocean choose a datacenter section

Add your SSH keys. If you don’t already have them on Digital Ocean, you’ll need to set them up, and can follow their guide here.

Digital Ocean add your SSH keys section

Give your droplet a descriptive hostname, or just click “Create.”

Digital Ocean finalize and create section

Wait until your droplet finishes building, then you’ll see it listed and ready to use:

Digital Ocean droplets screen

Copy the IP Address, and save it somewhere. You’ll need it to integrate your app with the Realm Object Server, and we’ll be using it to communicate with the server over SSH.

Access the server via SSH. Open up your terminal on your machine, and type in ssh [email protected]<droplet-ip-address-here>. Respond yes to the prompts, and then you’ll be logged into your new droplet.

Now that we’re logged into the droplet as root, we can follow the Ubuntu install commands for the Realm Object Server:

# Download the Realm Object Server repository from PackageCloud
curl -s | sudo bash

# Update repositories
sudo apt-get update

# Install the Realm Object Server
sudo apt-get install realm-object-server-developer

# Enable and start the service
sudo systemctl enable realm-object-server
sudo systemctl start realm-object-server

Verify the installation. Open up your web browser and type in http://<droplet-ip-address-here>:9080. You should see this Realm Object Server setup page!

Realm Object Server setup page

Setup your admin account. Now you’re ready to use the Realm Object Server in your mobile app, simply by referring to the URL you entered into your web browser.

Building RealmTasks

The macOS version of RealmTasks

RealmTasks is a simple task management app powered by the Realm Mobile Platform, inspired by Clear by Realmac Software. It’s available for iOS, macOS, and Android, with source code in Swift, Java, JavaScript (React Native), and cross-platform C# (Xamarin).

Get the source code from GitHub. If you’re building for iOS or Android, you can follow one of our tutorials:

Tutorials for React Native and Xamarin are coming soon; in the meantime, you can download and build the app on your own.

If you have a Mac, you can get a local installation of the Realm Object Server and RealmTasks for macOS precompiled with the macOS bundle.

What’s next?

From here, you can follow a tutorial to build an iOS app similar to RealmTasks from scratch, or jump right into the Realm Object Server documentation to integrate an app that already uses the Realm Mobile Database.

If you’ve never used the Realm Mobile Database before, you might want to start by picking your platform and checking the docs. There, you’ll learn about what makes our database unique, like the power of live objects, auto-updating queries, and the freedom from ever having to use an ORM again.