NebCompute

We created NebCompute with developer experience in mind, simplifying server provisioning and instance management.


Create a server instance

Your main tool for using NebCompute is the Nebula Console, with a clear interface for server creation and management, status monitoring, usage metrics, and access controls.

Your organization can create, access, or manage server instances depending on the roles each user has. Learn more about Roles and permissions in the Onboarding guide.

Creating a NebCompute server takes two steps: server and network configuration.

NebCompute server instance creation flow

Server configuration lets you define the operating system and other resource capacities used in your instance:

  1. Name your instance

  2. Choose operating system image and version

    Software images are pre-configured packages of operating systems and applications. Nebula offers these images to streamline the process of setting up your servers.

    Each image has multiple OS versions available.


  3. Choose instance type

    The instance types that Nebula offers help you specify the computing power you need for your server instance.

    Instance types are differentiated by the number of virtual CPUs, the amount of GiBs of memory, and the allocated network bandwidth.

    Choose the resources you require to efficiently run your applications.

    Choosing the number of instances that are created is coming soon.


During initial configuration, the Console provides a clear monthly estimate cost for the server you set up. This estimate is based on the instance type you choose.

Next is network and security configuration.

During the initial beta period, network and security configuration is done automatically. We are working on giving you more fine-grained control over network and security settings.

Check out the Roadmap for details.

  1. Select VPC

    This feature is coming soon.


    A VPC (Virtual Private Cloud) is a logically isolated network in Nebula’s infrastructure.

    It enables you to define and control your own virtual network environment, including IP address ranges, subnets, and routing tables.


  2. Select subnet

    This feature is coming soon.


    Subnets are logical subdivisions of your VPC's IP address space. They enable segmentation of the network and provide a way to organize and control access to your resources.


  3. Set up security groups

    This feature is coming soon.


    Security groups help you control the incoming and outgoing network traffic for your instances.


    You can define separate rules for inbound and outbound traffic. Nebula provides fine-grained control over allowed or restricted connection types, protocols, port ranges, and even source and destination IP addresses.


  4. Generate key pair login

    This feature is coming soon.


    Nebula servers will accept remote access with secure shell (SSH) using public key as method of secure authentication.


    Generate a key pair and upload the public key to your server instance. The private key should remain on your local machine for authentication.


    When creating a key pair, you must choose the key type (RSA or ED25519), and a key file format (.pem for OpenSSH and .ppk for PuTTY).


The Summary section contains a brief description of the configuration you choose, and an estimated monthly cost. If everything looks OK, click on Launch server. You are done!

Nebula immediately starts the server provisioning process. You can now see the instance you created, the server’s state, status, and the IP address you can use to connect to it.


Log into your server

The easiest method to connect to your Nebula server is using SSH. You will need:

  • Your server’s IP address. Copy it from the Instances page in the Console.

  • Your SSH username. On Ubuntu, this is root by default.

    Key pair management is coming soon!

    Nebula servers will accept remote access with secure shell (SSH) using public key as method of secure authentication.

    You will be able to generate key pairs, choose key types (RSA or ED25519), and key file formats (.pem or .ppk).

    Check out the Roadmap for more details.

Once you have these details, open your terminal:

ssh root@nebula_server_ip -p 22
ssh root@nebula_server_ip echo Hello!

You’re done! You can now interact with your server, install applications, and deploy your code.


Migrate your servers to Nebula

Thinking about moving your applications or code from a different provider to Nebula? This section provides 3 common methods you can use to set up your services on Nebula’s server instances.

The process of migration depends on how you want to use your server instance.

I deploy from Github

If you used Github actions to deploy to your previous provider, simply update the secret keys and destination IP to your Nebula instance.

For this example, we will create a simple Github action that logs into your Nebula server using SSH, checks out your main branch from your Github repository into a work folder, and pulls changes. The action is triggered by pushes on your main branch.

Go to SettingsSecretsActions on Github, and create these secrets:

  • SSH_USER: your user to access the server via SSH. On Ubuntu, this is root by default.
  • SSH_HOST: the IP address of your Nebula instance. You can find the server’s IP address in the Console’s Instances page.
  • WORK_DIR: the path to the directory where you want to pull the repository.
  • MAIN_BRANCH: the name of your main branch. We use main for this example.

You can use this sample code to create the action itself:

on:
  push:
    branches:
      - main
  workflow_dispatch:
  
jobs:
  run_pull:
    name: run pull
    runs-on: ubuntu-latest
    
    steps:
    - name: connect and pull
      run: ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "cd ${{ secrets.WORK_DIR }} && git checkout ${{ secrets.MAIN_BRANCH }} && git pull && exit"
    - name: cleanup
      run: rm -rf ~/.ssh

After you save the action, every time you push modifications to your main branch, the action should trigger and push updates to your Nebula server.

You’re done!


I use container images

If you run your applications in containerized environments, you can set up similar virtualization tools like Docker on your Nebula server. Docker enables you to upload container images from your previous provider to Docker Hub, and then pull and deploy those images directly on your Nebula server.

This example utilizes standard Docker functions and assumes that you already have a published Docker image on Docker Hub. We will refer to Docker’s documentation to guide you.

  1. Use SSH to log into your NebCompute instance. You can find the server’s IP address in the Console’s Instances page. On Ubuntu, the default user name is root.

    ssh root@nebula_server_ip -p 22
  2. Once you’re in, update the package index on the instance.

    sudo apt update
  3. Install Docker on your Nebula instance. Here is Docker’s guide for installing on Ubuntu.

    # Add Docker's official GPG key:
    sudo apt-get update
    sudo apt-get install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    
    # Add the repository to Apt sources:
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    
    # Install latest version of Docker
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. Pull and deploy your Docker image on your Nebula instance.

    # Pull your image
    docker pull [my_image_name]:[tag]
    
    # Deploy your image
    docker run -d -p 80:80 --name my_awsome_deployment [my_image_name]:[tag]

You’re done!


I run my app directly on the server

If you want to migrate files or applications that you run directly on your previous server, you need to wrap your code first, and then pull it into your Nebula instance. For this, we recommend using a tool like Docker.

This example utilizes standard Docker functions on a server running Ubuntu. We will refer to Docker’s documentation to guide you.

  1. Build and publish an image of your container from your previous server.

    Check out Docker’s guide here for the whole process.

  2. Use SSH to log into the NebCompute instance. You can find the server’s IP address in the Console’s Instances page. On Ubuntu, the default user name is root.

    ssh root@nebula_server_ip -p 22
  3. Once you’re in, update the package index on the instance.

    sudo apt update
  4. Install Docker on your Nebula instance. Here is Docker’s guide for installing on Ubuntu.

    # Add Docker's official GPG key:
    sudo apt-get update
    sudo apt-get install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    
    # Add the repository to Apt sources:
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    
    # Install latest version of Docker
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  5. Pull and deploy your Docker image on your Nebula instance.

    # Pull your image
    docker pull [my_image_name]:[tag]
    
    # Deploy your image
    docker run -d -p 80:80 --name my_awsome_deployment [my_image_name]:[tag]

You’re done!


Manage your servers

Use the Console to manage your server instances. On the Instances page, you can:

  • Add new server instances
  • View and copy each server’s IP address
  • Open a detailed view of a server

Select a server in the Intances list to open it in a detailed view. On this page, you can:

  • See your server’s state and status
  • See updates about potential outages, errors, and
  • Stop, start, reboot, and terminate your server
  • See a summary of your server configuration, network settings, and security settings

The Console provides up-to-date status updates in case a server has system or instance-level issues. In case of an incident, you can respond directly within the Console by rebooting or terminating servers.


Server states and statuses

These are the available server states and statuses:

StateMeaning
No dataNo information is available. This usually happens during server initialization or failure events.
ActiveThe instance is running.
StoppedThe instance has been shut down.
DeletedThe instance is deleted.
StatusMeaning
InitializedThe instance has finished initializing but is not yet functional.
In progressServer provisioning is in progress.
SuccessfulThe instance has started and is ready to be used.
FailedServer provisioning failed. Check out the Instance status on the server’s details page for more details.

Usage and billing

NebCompute prices are calculated based on the type of instance you create and use over time, per hour.

Your usage and billing for NebCompute is grouped on a project level. You can check the billing status, costs and usage over time for all servers within a project through the Projects page.

We are working on a core Billing page in Console, which will give you even more visibility and control over your billing and usage. You will be able to see detailed costs and usage for every server instance you have across all of your projects.

Check out the Roadmap for more details.


Need help?

If you have any technical questions or bump into any problems, get in touch with our Support team! We are here to help, and will provide support if you encounter any issues with NebCompute.