Skip to content

Installation

Prerequisites

  • Docker and Docker Compose (v2)
  • aws-cli or MinIO Client (mc) (optional, for S3 CLI operations)
  • Git

Clone and Build

git clone https://github.com/dxc-technology/arca.git
cd arca
bin/build

This builds the production Docker image — a minimal scratch-based container containing only the statically-linked arca binary and the default configuration file.

Development Image

For debugging, build the development image which includes a shell (debian-slim based):

bin/build --dev

Or start the development image directly:

bin/arca start -d --build --dev

Console Image

Build the web console image separately:

bin/build --console

Or build and start it directly:

bin/console start -d --build

Verify

Start the server:

bin/arca start -d --build

Tip

Drop the -d flag to run in the foreground and see logs in real time. Press Ctrl+C to stop the server.

Check that it's running:

bin/arca logs | grep "Access Key"

Arca auto-generates a root credential on first startup and prints it to the logs. Set the credentials and verify with your S3 client of choice:

export AWS_ACCESS_KEY_ID=<your-access-key>
export AWS_SECRET_ACCESS_KEY=<your-secret-key>

aws s3 ls --endpoint-url http://localhost:9000
mc alias set arca http://localhost:9000 <your-access-key> <your-secret-key>

mc ls arca

Standalone Binary

Extract the statically-linked Linux binary for deployment on servers (without Docker):

# Build for host architecture
bin/build --binary

# Cross-compile for a specific architecture
bin/build --binary --arch amd64
bin/build --binary --arch arm64

The binary is written to build/arca-<arch> (e.g., build/arca-arm64). These are Linux ELF binaries, they cannot run on macOS directly.

Docker Images

Build Target Base Use Case
production (default) scratch Production deployments — minimal attack surface
development Debian slim Debugging — includes shell, coreutils

Both are produced by an Alpine-based Rust builder stage. Every image Arca distributes — these two and the console — pins its base image to an exact version tag, so rebuilding months later yields the same toolchain and the same runtime packages. Auxiliary test and tooling images are intentionally left on floating tags. The exact tags in force are the ones in docker/Dockerfile and console/Dockerfile.

Switch between them using BUILD_TARGET:

# Production (default)
bin/arca start -d --build

# Development
bin/arca start -d --build --dev

Running Tests

# All tests (unit + integration)
bin/test

# Unit tests only
bin/test unit

# Integration tests only (server must be running)
bin/test integration

# Ceph s3-tests compatibility suite (server must be running)
bin/s3-tests

The Ceph s3-tests suite runs 829 industry-standard S3 compatibility tests. Results are saved to s3-tests/results.xml, an HTML report to s3-tests/report.html, and a machine-readable summary to s3-tests/summary.json.

Next Steps