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.
Server configuration lets you define the operating system and other resource capacities used in your instance:
- Name your instance
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
orED25519
), 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 Settings → Secrets → Actions on Github, and create these secrets:
SSH_USER
: your user to access the server via SSH. On Ubuntu, this isroot
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 usemain
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.
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
Once you’re in, update the package index on the instance.
sudo apt update
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
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.
Build and publish an image of your container from your previous server.
Check out Docker’s guide here for the whole process.
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
Once you’re in, update the package index on the instance.
sudo apt update
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
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:
State | Meaning |
---|---|
No data | No information is available. This usually happens during server initialization or failure events. |
Active | The instance is running. |
Stopped | The instance has been shut down. |
Deleted | The instance is deleted. |
Status | Meaning |
---|---|
Initialized | The instance has finished initializing but is not yet functional. |
In progress | Server provisioning is in progress. |
Successful | The instance has started and is ready to be used. |
Failed | Server 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.