Skip to main content

Self-Hosted ONE AI Worker

Unlock Required

Self-hosted training must be enabled for your account before use. Contact us at support@one-ware.com or book a demo to get access.

self-hosted worker run

What is the Self-Hosted ONE AI Worker?

Run ONE AI jobs on your own machine or server instead of on ONE WARE Cloud workers.

The self-hosted worker handles training, testing, visualization, and export locally. This way you can train on your own hardware while keeping your dataset private.

What stays local

  • Datasets
  • Training artifacts
  • Test results
  • Exported models

What is sent to ONE WARE Cloud

  • Job metadata and status
  • Logs for live monitoring
  • Configuration required to create and track jobs
  • Metadata needed for model architecture prediction
info

The worker must be able to reach https://cloud.one-ware.com while a job is running. If it cannot report status for about 5 minutes, the job is cancelled.

Requirements

  • Docker or Podman
  • An NVIDIA GPU for the recommended setup
  • NVIDIA Container Toolkit configured for your container runtime
  • Network access to https://cloud.one-ware.com
  • Persistent storage if job data should survive restarts

The container already includes the required CUDA libraries. On the host, you only need a working NVIDIA driver and NVIDIA container runtime support.

Supported NVIDIA GPUs

CUDA architectures 3.5, 5.0, 6.0, 7.0, 7.5, 8.0, and newer are supported.

In practice, this includes most modern NVIDIA GPUs, for example:

  • GeForce RTX 20, 30, 40, and 50 series
  • NVIDIA T4
  • NVIDIA A2, A10, A30, and A100
  • NVIDIA L4, L40, L40S
  • NVIDIA H100 and H200

If you are unsure, check your GPU's compute capability in NVIDIA's CUDA GPU list.

Setup

warning

Make sure NVIDIA Container Toolkit is installed and your container runtime is configured to support NVIDIA GPUs.

Podman
Docker

Pull the image:

docker pull registry.one-ware.com/oneware-worker-selfhost:latest

First Start

Use this when you want to run the worker in the foreground and watch the logs directly:

docker run \
--name oneware-worker-selfhost \
--gpus all \
-p 5000:5000 \
-v oneware-selfhost-data:/app/selfhost_projects \
registry.one-ware.com/oneware-worker-selfhost:latest

If everything is working correctly, the worker will detect the GPU and print it in the logs. alt text

Docker Compose

It is recommended to use Docker Compose to keep the configuration in one place.

services:
oneware-worker-selfhost:
image: registry.one-ware.com/oneware-worker-selfhost:latest
container_name: oneware-worker-selfhost
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- oneware-selfhost-data:/app/selfhost_projects
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]

volumes:
oneware-selfhost-data:

In this configuration, the worker API is exposed on port 5000.

Configuration

  • Persistent job data: /app/selfhost_projects
  • Temporary workspace: /app/selfhost_workspace

Mount /app/selfhost_projects as a volume if uploads, models, exports, and test results should survive container restarts. The workspace directory is cleaned up automatically after jobs finish.

Runtime behavior

On startup, the worker checks whether an NVIDIA GPU is available.

If a GPU is found, the default limits are:

  • GPU_DEVICE=0
  • GPU_VRAM_PERCENTAGE=0.9
  • ONEAI_RAM_PERCENTAGE=0.5

If no GPU is available, the worker runs in CPU mode.

The worker processes one job at a time. Additional jobs wait in a queue.

Environment variables

These variables can be used to control which resources the worker uses. You can also enforce resource limits with Docker itself.

  • GPU_DEVICE: GPU index to use
  • GPU_VRAM_PERCENTAGE: maximum VRAM usage
  • ONEAI_RAM_PERCENTAGE: maximum system RAM usage

Security

Do not expose the worker directly to the public internet unless you add your own protection. Run it on a trusted network and restrict access to port 5000 with firewall rules or a reverse proxy.

Configure the ONE AI Extension

Set the self-hosted worker address to:

http://<host>:5000

Replace <host> with the machine name or IP address that the extension can reach.

setting oneai

The cloud page will now show indications that self-hosted mode is active and which jobs are running in that mode.

Self hosted job