BasekickLabs

Getting Started

Bring up a licensed Arc Enterprise node: install via Docker, Kubernetes, or a native package, set ARC_LICENSE_KEY, capture the first-run admin token, and write your first measurement.

Get Arc up and running in 5 minutes.

Prerequisites

  • 4GB RAM minimum, 8GB+ recommended
  • Docker, Kubernetes, or Linux (Debian/RHEL)

License key setup

Before enabling enterprise features, configure your license key:

A license key is required for enterprise features (clustering, RBAC, tiered storage, audit logging, query governance, query management, automated scheduling). Core features like ingestion, querying, and compaction work without a license. Need a key? See Licensing for buying online, tiers, and activation limits.

Add to arc.toml:

[license]
key = "ARC-ENT-XXXX-XXXX-XXXX-XXXX"

Or set the environment variable:

export ARC_LICENSE_KEY="ARC-ENT-XXXX-XXXX-XXXX-XXXX"

Air-gapped environment?

On 26.09.1+ you can license Arc with an offline license file instead of a key — no route to the activation server needed. Set file_path under [license] (or ARC_LICENSE_FILE_PATH). See Configuration Overview → Air-gapped: offline license file.

Quick start

docker run -d \
  --name arc \
  -p 8000:8000 \
  -v arc-data:/app/data \
  ghcr.io/basekick-labs/arc:latest

Verify it's running:

curl http://localhost:8000/health

Get your admin token

Arc generates an admin token on first startup. Copy it immediately - you won't see it again!

docker logs arc 2>&1 | grep -i "admin"

You'll see:

======================================================================
  FIRST RUN - INITIAL ADMIN TOKEN GENERATED
======================================================================
  Initial admin API token: arc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
======================================================================

Save it:

export ARC_TOKEN="arc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Write data

Arc Enterprise uses the same ingestion APIs as Arc OSS. See Writing data for complete curl, Python, Go, and Telegraf examples.

import msgpack
import requests
from datetime import datetime
import os

ARC_TOKEN = os.environ["ARC_TOKEN"]

token = os.getenv("ARC_TOKEN")

data = {
    "m": "cpu",
    "columns": {
        "time": [int(datetime.now().timestamp() * 1000)],
        "host": ["server01"],
        "usage_idle": [95.0],
        "usage_user": [3.2]
    }
}

response = requests.post(
    "http://localhost:8000/api/v1/write/msgpack",
    headers={
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/msgpack",
        "x-arc-database": "default"
    },
    data=msgpack.packb(data)
)

Query data

curl -X POST http://localhost:8000/api/v1/query \
  -H "Authorization: Bearer $ARC_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT * FROM default.cpu LIMIT 10", "format": "json"}'

Next steps

Troubleshooting

docker logs arc

Common issues

Authentication errors: Make sure ARC_TOKEN is set and included in headers.

No data returned: Data may not be flushed yet. Force flush:

curl -X POST http://localhost:8000/api/v1/write/line-protocol/flush \
  -H "Authorization: Bearer $ARC_TOKEN"

Need help?

On this page