Back to Blog

Build Your Perfect ArcadeDB: Introducing the Custom Package Builder

Ship only what you need

ArcadeDB 26.2.1 adds a Custom Package Builder—a shell script that creates distributions containing only the modules you actually use.

Why bother

The full distribution is around 150MB. It includes Gremlin, Studio, PostgreSQL/MongoDB/Redis wire protocols, GraphQL, gRPC, and more. If you’re using ArcadeDB as a PostgreSQL-compatible backend, you probably don’t need Gremlin. If you’re building a graph application with Gremlin, you don’t need the wire protocol adapters. Until now, you shipped everything anyway.

The builder lets you pick modules. It assembles the rest.

Quick start

Pipe to bash if you trust the source:

curl -fsSL https://github.com/ArcadeData/arcadedb/releases/download/26.2.1/arcadedb-builder.sh \
  | bash -s -- --version=26.2.1 --modules=postgresw,studio

Or download and run interactively:

curl -fsSLO https://github.com/ArcadeData/arcadedb/releases/download/26.2.1/arcadedb-builder.sh
chmod +x arcadedb-builder.sh
./arcadedb-builder.sh

The script prompts for version and modules.

Modules

Core components (engine, server, network) are always included. Optional modules:

Module What it does
console Interactive database console
studio Web admin interface
gremlin Apache TinkerPop support
graphql GraphQL API
postgresw PostgreSQL wire protocol
mongodbw MongoDB wire protocol
redisw Redis wire protocol
grpcw gRPC wire protocol
metrics Prometheus metrics

Examples

PostgreSQL backend only:

./arcadedb-builder.sh --version=26.2.1 --modules=postgresw --output-name=arcadedb-pg

Graph development with UI and console:

./arcadedb-builder.sh --version=26.2.1 --modules=gremlin,studio,console --output-name=arcadedb-dev

Headless production with monitoring:

./arcadedb-builder.sh --version=26.2.1 --modules=postgresw,metrics --output-name=arcadedb-prod --skip-docker

CI/CD pipeline:

./arcadedb-builder.sh \
  --version=26.2.1 \
  --modules=gremlin \
  --quiet \
  --skip-docker \
  --output-dir=/tmp/builds

Docker

The builder generates a Docker image by default, tagged arcadedb-custom:{version}. Change the tag:

./arcadedb-builder.sh --version=26.2.1 --modules=gremlin,studio --docker-tag=myregistry/arcadedb:latest

Skip Docker with --skip-docker. Generate only the Dockerfile with --dockerfile-only.

Offline builds

If you’re behind a strict firewall or testing local changes, the builder works entirely offline:

# Build from source first
cd /path/to/arcadedb
mvn clean package -DskipTests

# Create distribution from local files
cd package
VERSION=$(mvn -f ../pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout)

./arcadedb-builder.sh \
  --version=$VERSION \
  --modules=gremlin,studio \
  --local-base=target/arcadedb-$VERSION-base.tar.gz \
  --local-repo

The script pulls the base from package/target/ and modules from ~/.m2/repository. No network required.

Checksum verification

The builder verifies SHA-256 for base distributions from GitHub and SHA-1 for module JARs from Maven Central. Mismatches fail the build.

Output structure

arcadedb-26.2.1-custom-20260215/
├── bin/           # Server and console scripts
├── config/        # Configuration files
├── lib/           # Only the JARs you selected
├── databases/     # Database storage
├── backups/       # Backup storage
├── log/           # Log files
└── README.md

Both .zip and .tar.gz archives are created.

Dry run

Preview without building:

./arcadedb-builder.sh --version=26.2.1 --modules=gremlin,studio --dry-run