BasekickLabs

Docker Installation

Run Arc in Docker: pull the image, mount a data volume, capture the first-run admin token, point it at local, S3, MinIO, or Azure storage, and deploy with Docker Compose.

Install and run Arc using Docker for quick setup and isolated environments.

Prerequisites

  • Docker 20.10 or higher
  • 4GB RAM minimum, 8GB+ recommended

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

When Arc starts for the first time, it generates an admin token.

Save This Token

Copy this token immediately - you won't see it again!

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

You should see:

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

Save it:

export ARC_TOKEN="arc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Storage backends

Local Filesystem - Default, data stored in Docker volume.

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

Data locations:

PathDescription
/app/data/arc/Parquet files
/app/data/arc_auth.dbAuth tokens

Configuration

Environment variables

Common configuration options:

VariableDefaultDescription
ARC_SERVER_PORT8000HTTP port
ARC_STORAGE_BACKENDlocalStorage: local, s3, minio, azure
ARC_LOG_LEVELinfoLogging: debug, info, warn, error
ARC_AUTH_ENABLEDtrueEnable authentication
ARC_AUTH_BOOTSTRAP_TOKEN(unset)Pre-set admin token value on first run (v26.04.1+)
ARC_AUTH_FORCE_BOOTSTRAPfalseAdd a recovery admin token without removing existing ones (v26.04.1+)
ARC_COMPACTION_ENABLEDtrueEnable auto-compaction
ARC_WAL_ENABLEDfalseEnable WAL for durability

Custom configuration file

Mount a custom arc.toml:

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

Container management

View logs

docker logs -f arc           # Follow logs
docker logs --tail=100 arc   # Last 100 lines

Start/stop/restart

docker start arc
docker stop arc
docker restart arc

Update Arc

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

Production deployment

Pin version + resource limits

docker run -d \
  --name arc \
  -p 8000:8000 \
  -v arc-data:/app/data \
  --memory="8g" \
  --cpus="4" \
  --restart unless-stopped \
  ghcr.io/basekick-labs/arc:latest

Health check

docker ps --filter "name=arc" --filter "health=healthy"

Docker Compose

version: '3.8'

services:
  arc:
    image: ghcr.io/basekick-labs/arc:latest
    container_name: arc
    ports:
      - "8000:8000"
    environment:
      - ARC_STORAGE_BACKEND=local
      - ARC_AUTH_ENABLED=true
      - ARC_COMPACTION_ENABLED=true
    volumes:
      - arc-data:/app/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  arc-data:

Troubleshooting

Container won't start

# Check logs
docker logs arc

# Check port availability
sudo lsof -i :8000

# Check container status
docker ps -a

Permission errors

# Remove and recreate volume
docker stop arc && docker rm arc
docker volume rm arc-data
# Restart with docker run command

Out of memory

# Check memory usage
docker stats arc

# Restart with memory limit
docker run -d --name arc --memory="4g" ...

Can't find admin token

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

Next steps

On this page