Version: Next

Quick start

It's easy to get started with Onepanel. First, you install the CLI (opctl) and then using opctl, you generate a params.yaml file and update it to configure your deployment. Once complete, you can access your deployment from any browser.

In this quick start, we will walk you through:

  1. Deploying Onepanel to one of the major cloud providers or locally on MicroK8s.
  2. Labelling your images or video using the integrated annotation Workspace.
  3. Training your model with the newly labelled data using the integrated training Workflows.
  4. Automatically annotating new data using your newly trained model.

Before getting started, take a look at concepts to understand the different components in Onepanel.


You can also follow along with our getting started videos, but be sure to use the commands from the docs:

Step 0: Create a Kubernetes cluster

Let's get started by creating a Kubernetes cluster in one of the major cloud providers or locally with MicroK8s:


Make sure the latest version of Azure CLI (az) is installed before proceeding.

Run this az command to create a bare minimum cluster with 2 Standard_D4s_v3 nodes:

az aks create --resource-group <resource-group> --name <cluster-name> --location <region> \
--node-count 2 \
--node-vm-size Standard_D4s_v3 \
--node-osdisk-size 100 \
--min-count 2 \
--max-count 5 \
--enable-cluster-autoscaler \
--network-plugin azure \
--network-policy azure \
--enable-addons monitoring \

You can then get access credentials by running:

az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin

Once you are done with these quick start steps, see adding more nodes to add additional CPU or GPU nodes to your cluster.

Step 1: Install Onepanel

  1. Download the latest opctl for your operating system from our release page.

    # Download the binary
    curl -sLO
    # Make binary executable
    chmod +x opctl-linux-amd64
    # Move binary to path
    mv ./opctl-linux-amd64 /usr/local/bin/opctl
    # Test installation
    opctl version
  2. Run the following command to initialize a params.yaml template for your provider:

    opctl init --provider aks \
    --artifact-repository-provider abs \
    --gpu-device-plugins nvidia

    Currently, valid options for --artifact-repository-provider flag are s3, gcs and abs.

    The s3 option supports Amazon S3 and any S3 compatible object storage like Minio.

    The gcs option supports Google Cloud Storage.

    The abs option supports Azure Blob Storage.

  3. Populate params.yaml by following the instructions in the template, and referring to configuration file sections for more detailed information.

  4. Label your nodes if applicable.

    Azure AKS automatically labels nodes with<cloud-provider-instance-type>.

  5. Run the following command to deploy Onepanel to your cluster:

    opctl apply

    If the command completes but it indicates that your cluster is not ready, you can check status again by running opctl app status. If you're still seeing issues, visit our Troubleshooting page.

  6. Once the deployment completes, the CLI will display the host name and wildcard domain you need to use to setup your DNS. You can also get this information again by running:

    opctl app status
    Create the appropriate DNS record in your DNS provider based on the instructions above. Wait a few minutes and check the URL mentioned in the instructions above. Your applications should load with a screen prompting you to enter a token.
  7. Use the following command to get your auth token to log into Onepanel:

    opctl auth token

If the application is not loading, visit our Troubleshooting page for some steps that can help resolve most issues. If you are still having issues, reach out in Slack or GitHub discussions.


You will most likely need to use a GPU node pool for Step 3: Train a model on annotated data below. See adding more nodes for instructions on adding GPU node pools to your cluster.

Step 2: Annotate your data

Onepanel is fully integrated with Computer Vision Annotation Tool (CVAT), allowing you to annotate images and videos and then train models on the annotated data with a few clicks. You can then use these newly trained models to automatically pre-annotate additional data, iteratively improving your object detection or semantic segmentation models.

  1. Go to Workspaces and click Create Workspace.

    Create Workspace

  2. Select the CVAT template and enter a name for your Workspace.

  3. Select a node pool that Onepanel will use to provision a machine for running CVAT. CVAT requires at least 16GB of RAM.


    Some providers have limits on how many volumes you can attach to a node. The default CVAT template in Onepanel requires 3 volumes, so make sure to pick a machine that can support at least that many volumes.

  4. Click Create and Run to launch your CVAT Workspace.

  5. Once CVAT is running, click View.

  6. In CVAT, click Create new task.

  7. Enter a name for your task and then under Constructor, add your labels. See CVAT's user guide for additional information on more advanced label configuration.

  8. Assuming you have already uploaded your images or videos to your object storage, under "Select files", click Connected file share.

  9. Click the Onepanel icon in bottom right corner to bring up the Workspace panel.

  10. Under Workspace path, type in the path to use to sync your object storage data to, then browse to the folder containing your images or videos under Object storage location.

  11. Click Sync to Workspace to sync your files to this Workspace. Once syncing is complete, click Refresh and select your files.

  12. Click Submit and then click the Tasks menu item to go to the tasks list.

  13. Click Open to open task details.

  14. Click Job #1 to go into CVAT to start annotating your data. See CVAT's user guide for more information on the annotation tool interface.

Step 3: Train a model on annotated data

You can train object detection or semantic segmentation models directly from CVAT, which you can then use to automatically pre-annotate new data. This dramatically reduces the time it takes to train new models and iteratively improve your models. Moreover, apart from default models that we provide, you easily add custom model training Workflows and use them for pre-annotation as well.

  1. Click on Open for a task you want to train a model on.

    Open task

  2. Click on Job #X, where X could be any job number. Annotate few frames. For testing you can just annotate one frame. But ideally you want to have thousands of objects to train a deep learning model on. Alternatively, you can just run pre-annotation if your labels are common ones.

  3. Click on Actions for a task you want to train a model on. Then, click on Execute training Workflow.

    Select training workflow

  4. Select a training Workflow Template. By default, you can use TF Object Detection Training for object detection or MaskRCNN Training for semantic segmentation.

  5. Update hyperparameters depending on your model and data. These training Workflows also include data augmentation fields that you can adjust accordingly as well.

  6. Click Submit. This will execute the training Workflow for the selected model. You can view real-time logs and view TensorBoard by clicking Open Workflow details.

Step 4: Use trained model for automatic annotation

If you want to use your trained model for automatic annotation in CVAT, follow the steps outlined in Using trained models for automatic annotation.

Next steps

You can also easily add your own custom model training Workflows. See adding custom models for more information on adding custom models.