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:latestVerify it's running:
curl http://localhost:8000/healthGet 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
- Writing data - MessagePack and line protocol examples
- Python SDK - Official client with DataFrame support
- Telegraf Integration - Collect system metrics
- Apache Superset - Build dashboards
- Configuration - Tune Arc for your workload
Troubleshooting
docker logs arcCommon 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?
Arc Enterprise
Arc Enterprise adds clustering, RBAC, tiered storage, audit logging, and query governance to the Arc binary. Enable them with a license key in arc.toml; no data migration.
Licensing
Arc Enterprise tiers, buying a license online or through sales, activating the key, core and machine limits, moving to a new server, renewals, expiry, and upgrades.