Back to all templates
SurrealDB logo

SurrealDB

Database256MB+ RAM

Multi-model database for real-time apps with SQL-style queries and graph relations

databasemulti-modelgraphrealtime

Deploy SurrealDB in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select SurrealDB

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy SurrealDB on a VPS with Server Compass

Use the SurrealDB template in Server Compass to deploy a multi-model database for real-time apps on your VPS, then verify the deployed database with SurrealDB HTTP health.

About 10 minutesBrowser verified
1
Step 1

Open the server Apps tab

Select the tutorial-vps VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Server Compass Apps tab before creating a SurrealDB app
2
Step 2

Choose an app template

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for SurrealDB

Use the template picker search to find SurrealDB in the Server Compass template catalog.

Searching for SurrealDB in the Server Compass template picker
4
Step 4

Select the SurrealDB template

Choose the SurrealDB template. Server Compass fills the SurrealDB container, persistent data volume, host port, root username, and generated root password.

SurrealDB template selected in Server Compass
5
Step 5

Review the SurrealDB settings

Confirm the app name and compose service. In this run, the app was named surrealdb-demo and used host port 8000.

Reviewing SurrealDB project settings and compose services
6
Step 6

Deploy SurrealDB

Review the generated environment values, keep the database password masked, confirm the web port is available, and click Deploy Now.

Reviewing SurrealDB environment variables and port before deployment
7
Step 7

Watch the deployment progress

Keep the deployment modal open while Server Compass uploads the compose file, pulls the SurrealDB image, starts the container, and verifies the stack.

Server Compass deploying the SurrealDB template on the VPS
8
Step 8

Confirm SurrealDB is running

After deployment finishes, return to the Apps tab and confirm the SurrealDB app is marked Running with the database port available.

SurrealDB template running in the Server Compass Apps tab
9
Step 9

Verify SurrealDB is reachable

Open the app detail view and verify the running SurrealDB container. In this tutorial run, the SurrealDB HTTP health endpoint confirmed the database service was accepting connections without exposing the generated root password.

SurrealDB app detail screen after verifying the deployed database container

After SurrealDB Opens

  • Store the generated root password in a secure password manager.
  • Create application-specific namespaces, databases, and access controls before production use.
  • Restrict external access to port 8000 unless remote clients explicitly need it.
  • Configure regular backups for the SurrealDB data volume before storing production data.
  • Use HTTPS or a trusted private network before exposing SurrealDB to application clients.

Verified Result

The SurrealDB service returned HTTP 200 from its health endpoint on the deployed VPS.

SurrealDB deployment questions

What does the SurrealDB template deploy?

It deploys the official SurrealDB container with persistent SurrealKV storage, a root username, a generated root password, and the HTTP database port exposed on the selected host port.

Which port did the tutorial use?

The tutorial used host port 8000, which maps to SurrealDB container port 8000.

Why is there no browser verification screenshot?

SurrealDB is a database service, not a conventional web application. The tutorial verifies it with the SurrealDB HTTP health endpoint instead of opening a browser page.

Should this become a blog post?

No. The deployment guide should live on the SurrealDB template detail page and be linked from the reusable template deployment docs page.

Terminal Deployment

SurrealDB CLI Deployment

Deploy SurrealDB the traditional way with SSH and Docker Compose.

1

Access Your VPS via Terminal

Open a terminal session and log into your VPS. Replace the placeholder with your actual IP.

terminal
# Connect via SSH
ssh root@your-vps-ip

# Alternative with key file
ssh -i /path/to/key root@your-vps-ip

First time? Make sure Docker is installed on your VPS. Run: curl -fsSL https://get.docker.com | sh

2

Set Up Project Folder

Create a workspace for your deployment files.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/surrealdb
cd ~/apps/surrealdb
3

Create the Compose File

Configure your containers with this Docker Compose setup:

docker-compose.yml
services:
  surrealdb:
    image: surrealdb/surrealdb:latest
    user: root
    ports:
      - "8000:8000"
    volumes:
      - surrealdb_data:/data
    command: start --username root --password <your-surreal-pass> surrealkv:/data/database.db
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "surreal", "isready", "--endpoint", "http://localhost:8000"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  surrealdb_data:
Deployment Settings
PORTHost port to expose(default: 8000)
SURREAL_USERRoot username(default: root)
SURREAL_PASSRoot password
4

Deploy Your Stack

Spin up the containers and verify the deployment.

terminal
# Start all services
docker compose up -d

# List running containers
docker compose ps

# Watch the logs
docker compose logs -f
5

Update Firewall Settings

Allow incoming traffic on the application port.

terminal
# Allow the application port through firewall
sudo ufw allow 8000/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:8000
Skip the Terminal

Skip the terminal. Use Server Compass instead.

Server Compass makes deploying SurrealDB effortless. Visual setup, one-click deploy, done.

  • Beautiful interface
  • One-click deploys
  • Let's Encrypt SSL
  • Zero downtime
  • Container monitoring
  • Easy rollbacks
Download Server Compass$29 one-time • Lifetime license

After Deployment

After deploying SurrealDB with Server Compass, complete these steps to finish setup

1

Test database connection using surreal sql CLI

2

Create namespaces and databases for your applications

3

Define schemas with DEFINE TABLE and DEFINE FIELD

4

Create scoped users with limited permissions

5

Set up monitoring and alerts

6

Configure backup schedules for the data volume

Need help? Check out our documentation for detailed guides.

SurrealDB FAQ

Common questions about self-hosting SurrealDB

How do I deploy SurrealDB with Server Compass?

Simply download Server Compass, connect to your VPS, and select SurrealDB from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.

What are the system requirements for SurrealDB?

SurrealDB requires a minimum of 256MB RAM. We recommend a VPS with at least 1024MB RAM for optimal performance. Any modern Linux server with Docker support will work.

Can I migrate my existing SurrealDB data?

Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard SurrealDB backup and restore procedures.

How do I update SurrealDB to the latest version?

Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest SurrealDB image will be pulled and deployed with zero downtime.

Is SurrealDB free to self-host?

SurrealDB is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.

Ready to Self-Host SurrealDB?

Download Server Compass and deploy SurrealDB to your VPS in under 3 minutes. No Docker expertise required.

Download Server Compass