Deploy Absolute DB anywhere — Docker, Kubernetes, Helm, Terraform, bare metal, Homebrew, cloud marketplaces, and Cloudflare Workers.
# One-line install (x86-64 or ARM64)
curl -fsSL https://downloads.absolutedb.com/install.sh | sh
# Manual install from tarball
curl -LO https://absolutedb.com/releases/latest/absdb-linux-amd64.tar.gz
tar -xzf absdb-linux-amd64.tar.gz
sudo mv absdb absdb-server absdb-lite /usr/local/bin/
sudo mkdir -p /var/lib/absdb /etc/absdb /var/log/absdb
# Initialise data directory
absdb-server --init-only --data /var/lib/absdb
# Start server
absdb-server --data /var/lib/absdb \
--config /etc/absdb/absdb.conf \
--port 5433 --rest-port 8080| Target | CPU | RAM | Disk |
|---|---|---|---|
| Development | Any x86-64 / ARM64 | 128 MB+ | 100 MB+ |
| Production (small) | 4 cores | 4 GB | NVMe SSD |
| Production (large) | 32+ cores | 64 GB+ | NVMe RAID |
| Embedded / IoT | ARM Cortex-A (Pi Zero) | 16 MB+ | Any flash |
# Install (Intel or Apple Silicon — universal binary)
brew tap absolutedb/tap
brew install absdb
# Start as a service
brew services start absolutedb/tap/absdb
# Check status
brew services list | grep absdb
# Upgrade
brew upgrade absdbThe Homebrew formula installs both absdb (CLI) and absdb-server. Data is stored at ~/Library/AbsoluteDB/ by default.
# Pull and run
docker run -d \
--name absdb \
--restart unless-stopped \
-p 5433:5433 \
-p 8080:8080 \
-p 9090:9090 \
-p 6379:6379 \
-v absdb-data:/var/lib/absdb \
-e ABSDB_PASSWORD=my_secure_password \
absolutedb/absdb:latest
# With TLS
docker run -d \
--name absdb \
-p 5433:5433 -p 8080:8080 \
-v absdb-data:/var/lib/absdb \
-v /etc/certs:/etc/absdb/certs:ro \
-e ABSDB_TLS_CERT=/etc/absdb/certs/server.crt \
-e ABSDB_TLS_KEY=/etc/absdb/certs/server.key \
absolutedb/absdb:latest| Variable | Default | Description |
|---|---|---|
ABSDB_PASSWORD | — | Admin password (required) |
ABSDB_PORT | 5433 | PostgreSQL wire port |
ABSDB_DATA_DIR | /var/lib/absdb | Data directory |
ABSDB_BUFFER_POOL_MB | 256 | LIRS buffer pool size |
ABSDB_TLS_CERT | — | TLS certificate path |
ABSDB_TLS_KEY | — | TLS private key path |
ABSDB_LOG_LEVEL | INFO | DEBUG / INFO / WARN / ERROR |
version: "3.9"
services:
absdb:
image: absolutedb/absdb:latest
restart: unless-stopped
ports:
- "5433:5433"
- "8080:8080"
- "9090:9090"
volumes:
- absdb-data:/var/lib/absdb
- ./absdb.conf:/etc/absdb/absdb.conf:ro
environment:
ABSDB_PASSWORD: ${ABSDB_PASSWORD}
healthcheck:
test: ["CMD", "absdb-admin", "ping"]
interval: 30s
timeout: 5s
retries: 3
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9000:9090"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
volumes:
absdb-data:# Add Helm repo
helm repo add absolutedb https://charts.absolutedb.com
helm repo update
# Install (single node)
helm install absdb absolutedb/absolutedb \
--namespace absdb --create-namespace \
--set auth.password=my_secure_password \
--set storage.size=100Gi \
--set resources.requests.memory=4Gi
# Install HA cluster (3 replicas, Raft consensus)
helm install absdb absolutedb/absolutedb \
--namespace absdb --create-namespace \
--set replicaCount=3 \
--set auth.password=my_secure_password \
--set storage.size=500Gi \
--set resources.requests.memory=16Gi \
--set tls.enabled=true
# Upgrade
helm upgrade absdb absolutedb/absolutedb \
--namespace absdb \
--set image.tag=latestreplicaCount: 3 # 1 = standalone, 3+ = HA cluster
image:
repository: absolutedb/absdb
tag: "latest"
auth:
password: "" # Set via --set or secret
storage:
size: 100Gi
storageClass: "gp3" # AWS GP3 recommended
resources:
requests:
cpu: "2"
memory: "4Gi"
limits:
cpu: "8"
memory: "16Gi"
tls:
enabled: false # Set true for production
certSecret: absdb-tls
service:
pg_port: 5433
rest_port: 8080
grpc_port: 9090
monitoring:
serviceMonitor:
enabled: true # Prometheus Operator# Install the operator
kubectl apply -f https://absolutedb.com/deploy/operator.yaml
# Create an AbsoluteDB cluster resource
cat <<EOF | kubectl apply -f -
apiVersion: absdb.io/v1
kind: AbsoluteDB
metadata:
name: my-cluster
namespace: production
spec:
version: "latest"
replicas: 3
storage:
size: 500Gi
storageClass: gp3
resources:
requests:
cpu: "4"
memory: "16Gi"
backup:
enabled: true
schedule: "0 2 * * *" # Daily at 2 AM
target: s3://my-bucket/absdb-backups/
EOFmodule "absdb_cluster" {
source = "absolutedb/absdb/aws"
version = "~> 8.1"
cluster_name = "prod-absdb"
node_count = 3
instance_type = "r6g.2xlarge" # ARM Graviton 3
storage_size_gb = 500
storage_type = "gp3"
multi_az = true
vpc_id = module.vpc.vpc_id
subnet_ids = module.vpc.private_subnet_ids
admin_password = var.absdb_password
backup_enabled = true
backup_target = "s3://${aws_s3_bucket.backups.bucket}/absdb/"
pitr_days = 7
tags = {
Environment = "production"
Team = "platform"
}
}
output "absdb_endpoint" {
value = module.absdb_cluster.primary_endpoint
}For shared-hosting servers running cPanel / WHMCS, Absolute DB ships a one-click MariaDB swap wizard. The wizard live-replicates the existing MariaDB datadir, verifies parity via Merkle checksums, then atomically rebinds port 3306 in under 100 ms. Every PHP, Python, Node, Ruby, and Java application reconnects transparently — no code changes.
# 1. Install the Absolute DB runtime + cPanel plugin
curl -fsSL https://absolutedb.com/install/cpanel.sh -o cpanel-install.sh
sudo bash cpanel-install.sh --preset webapp
# 2. Open WHM → Home → SQL Services → "Absolute DB Swap"
# Follow the 8-step wizard (pre-flight → replication → flip → verify)
# 3. After the 7-day safety window, finalise (or rollback):
sudo absdb admin --rollback # during 7-day window only
sudo absdb admin --finalize-swap # after window, frees parked MariaDBSee the full cPanel Swap Guide for prerequisites, step-by-step instructions, WHMCS integration, troubleshooting, and FAQ.
[Unit]
Description=Absolute DB Server
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=absdb
Group=absdb
ExecStart=/usr/local/bin/absdb-server \
--data /var/lib/absdb \
--config /etc/absdb/absdb.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
LimitNPROC=32768
OOMScoreAdjust=-500
# Security hardening
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/var/lib/absdb /var/log/absdb
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable absdb
sudo systemctl start absdb
sudo systemctl status absdb
sudo journalctl -u absdb -fAbsolute DB is available on the AWS Marketplace as a pre-configured AMI and EKS-ready container. One-click deployment with automatic security group configuration.
# Launch from AMI (us-east-1)
aws ec2 run-instances \
--image-id ami-0absdb812345 \
--instance-type r6g.xlarge \
--key-name my-keypair \
--subnet-id subnet-abc12345 \
--security-group-ids sg-absdb \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=absdb-prod}]'az group create --name absdb-rg --location eastus
az vm create \
--resource-group absdb-rg \
--name absdb-vm \
--image absolutedb:absolutedb:absdb-enterprise:latest \
--size Standard_E4s_v5 \
--admin-username absdbadmin \
--generate-ssh-keys
# Open firewall ports
az vm open-port --resource-group absdb-rg --name absdb-vm --port 5433
az vm open-port --resource-group absdb-rg --name absdb-vm --port 8080# Deploy to GKE using Helm
gcloud container clusters get-credentials my-cluster --zone us-central1-a
helm repo add absolutedb https://charts.absolutedb.com
helm install absdb absolutedb/absolutedb \
--namespace absdb --create-namespace \
--set auth.password=$ABSDB_PASSWORD \
--set storage.storageClass=standard-rwo \
--set storage.size=200Gi \
--set replicaCount=3name = "my-absdb-worker"
main = "src/index.ts"
compatibility_date = "2026-04-01"
[[kv_namespaces]]
binding = "ABSDB_KV"
id = "your-kv-namespace-id"
[build]
command = "npm run build"import { AbsDB } from '@absolutedb/wasm';
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const db = await AbsDB.open({ kv: env.ABSDB_KV });
await db.exec(`CREATE TABLE IF NOT EXISTS visits (
id INTEGER PRIMARY KEY,
url TEXT,
ts TIMESTAMP DEFAULT NOW()
)`);
await db.exec("INSERT INTO visits (url) VALUES (?)", [request.url]);
const rows = await db.query("SELECT COUNT(*) AS total FROM visits");
return Response.json({ total: rows[0].total });
}
};# ARM64 (Raspberry Pi 4/5, AWS Graviton)
curl -LO https://absolutedb.com/releases/latest/absdb-linux-arm64.tar.gz
tar -xzf absdb-linux-arm64.tar.gz
# ARM32 (Raspberry Pi Zero 2W, older Pi)
curl -LO https://absolutedb.com/releases/latest/absdb-linux-armv7.tar.gz
tar -xzf absdb-linux-armv7.tar.gz
# Run embedded lite (SQL + HNSW, no network, ~154 KB)
./absdb-lite /data/sensor.db
# Minimal memory config (idle ~4 MB RAM)
absdb-server --data /data \
--buffer-pool-mb 4 \
--max-connections 5 \
--no-rest \
--no-grpc \
--port 5433~154 KB binary · zero external dependencies · 2,737 tests passing · SQL:2023 100%