Skip to main content

Docker Installation

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:25.12.1

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:25.12.1

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_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:25.12.1

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:25.12.1
docker run -d \
--name arc \
-p 8000:8000 \
-v arc-data:/app/data \
ghcr.io/basekick-labs/arc:25.12.1

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:25.12.1

Health Check

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

Docker Compose

version: '3.8'

services:
arc:
image: ghcr.io/basekick-labs/arc:25.12.1
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