Skip to main content

Configuration

Customize your runner’s behavior through the configuration file or command-line flags.

Configuration File

Runner configuration is stored at ~/.roboticks/config.yaml. This file is created automatically during registration and can be modified afterward.
# API connection
api_endpoint: https://api.roboticks.io

# Runner identity (set during registration)
runner_id: runner_abc123
runner_token: rbtk_lrnr_xxx

# Display name shown in dashboard
name: my-runner

# Maximum parallel job execution (1-10)
max_concurrent_jobs: 2

# Labels for job routing
labels:
  - gpu
  - arm64

# Polling and heartbeat intervals
poll_interval: 30s
heartbeat_interval: 30s

# Logging level (debug, info, warn, error)
log_level: info

# Directory for job execution
work_dir: /tmp/roboticks

Configuration Options

Core Settings

SettingDescriptionDefault
api_endpointRoboticks API URLhttps://api.roboticks.io
runner_idUnique runner identifierSet during registration
runner_tokenAuthentication tokenSet during registration
nameDisplay name in dashboardhostname

Execution Settings

SettingDescriptionDefault
max_concurrent_jobsMaximum parallel jobs (1-10)1
work_dirDirectory for job files/tmp/roboticks

Timing Settings

SettingDescriptionDefault
poll_intervalHow often to check for jobs30s
heartbeat_intervalHow often to send heartbeat30s

Logging Settings

SettingDescriptionDefault
log_levelVerbosity levelinfo

Labels

Labels allow you to route specific jobs to specific runners. Use labels to indicate runner capabilities like hardware features, network access, or environment type.

Setting Labels

During registration:
roboticks-runner register \
  --token <token> \
  --labels gpu,arm64,production
In config file:
labels:
  - gpu
  - arm64
  - production

Common Label Examples

LabelUse Case
gpuRunner has GPU available
arm64ARM-based processor
amd64x86-64 processor
high-memoryRunner with 32GB+ RAM
productionProduction environment access
stagingStaging environment access
internal-networkAccess to internal resources

Label Matching

Jobs can specify required labels. A runner will only receive jobs if it has all required labels:
  • Job requires: gpu, arm64
  • Runner A labels: gpu, arm64, production - matches
  • Runner B labels: gpu - does not match

Concurrency

The max_concurrent_jobs setting controls how many jobs can run simultaneously. Each job runs in its own Docker container.
Higher concurrency requires more system resources. Monitor CPU and memory usage to find the optimal setting for your machine.
Recommendations:
Machine TypeRecommended max_concurrent_jobs
2 vCPU, 4GB RAM1-2
4 vCPU, 8GB RAM2-4
8 vCPU, 16GB RAM4-6
16+ vCPU, 32GB+ RAM6-10

Work Directory

The work_dir is where job files are downloaded and executed. Ensure:
  • Sufficient disk space for artifacts
  • Fast I/O (SSD recommended)
  • Appropriate permissions
Custom work directory:
work_dir: /data/roboticks-jobs

Environment Variables

Some settings can be overridden via environment variables:
VariableDescription
ROBOTICKS_API_ENDPOINTOverride API endpoint
ROBOTICKS_LOG_LEVELOverride log level
ROBOTICKS_CONFIG_PATHCustom config file path
Example:
ROBOTICKS_LOG_LEVEL=debug roboticks-runner start

Token Rotation

Runner tokens are automatically rotated for security. The runner handles this automatically:
  1. Heartbeat response may include a new token
  2. Runner updates its local configuration
  3. Subsequent requests use the new token
If your runner config file becomes corrupted or deleted, you’ll need to re-register the runner.

Viewing Current Configuration

Check the current configuration:
roboticks-runner status
Output includes:
  • Runner ID and name
  • Current status
  • Labels
  • Concurrent job limit
  • API endpoint

Updating Configuration

To change settings:
  1. Stop the runner (if running as a service)
  2. Edit ~/.roboticks/config.yaml
  3. Restart the runner
Do not modify runner_id or runner_token manually. These are managed by the registration process.

Next Steps