ArcadeDB
Overview
This guide shows you how to deploy ArcadeDB from the SecureAnyCloud AWS Marketplace listing. ArcadeDB is an open source multi-model database. It stores graph, document, key-value, time-series and vector data in a single engine, and it queries that data with SQL, Cypher, Apache Gremlin and GraphQL, plus MongoDB and Redis protocol compatibility.
The image ships the built-in Studio web workbench for modelling schema, running queries and browsing graphs. ArcadeDB is a conceptual fork of OrientDB and is released under the Apache License 2.0.
The image installs the official ArcadeDB server distribution (version 26.7.2 at build time) to /opt/arcadedb, running under OpenJDK 21. The ArcadeDB HTTP listener (Studio plus the REST API) is bound to loopback only and fronted by nginx on port 80, so the only public surface is a single standard HTTP port. Database storage lives on a dedicated EBS data volume mounted at /var/lib/arcadedb, independent of the OS disk and independently resizable.
At first boot, arcadedb-firstboot.service generates a unique per-instance root password. There is no default login baked into the image. The service then starts the server and seeds a small Demo graph. It proves an authenticated round trip against the HTTP API, and writes the password to /root/arcadedb-credentials.txt (mode 0600, root only).
What you get:
- ArcadeDB 26.7.2 server (full distribution, all query engines and Studio) from the official GitHub release, pinned and SHA-256 verified
- OpenJDK 21 JRE headless (ArcadeDB requires Java 17 or newer)
- The
arcadedb.servicesystemd unit, which runs the server as the unprivilegedarcadedbuser - The
arcadedb-firstboot.servicesystemd oneshot, which generates the per-instance root password, starts the server, seeds the Demo graph and writes/root/arcadedb-credentials.txt - nginx on port 80, reverse-proxying to the loopback-bound ArcadeDB HTTP listener, with an unauthenticated
/healthzfor load-balancer probes - ArcadeDB Studio, the multi-model query workbench, reachable at
http://<instance-public-ip>/ - Database storage on a dedicated 30 GiB EBS data volume mounted at
/var/lib/arcadedb, captured into the AMI so every instance is provisioned with it - An Ubuntu 24.04 LTS base with the latest security patches
Connecting to your instance
Connect over SSH on port 22 with the key pair you selected at launch. On the Ubuntu 24.04 LTS variant, the login user is ubuntu:
ssh -i /path/to/your-key.pem ubuntu@<public-ip>On first boot, arcadedb-firstboot.service generates the per-instance root password. After that, arcadedb.service and nginx.service start automatically.
Prerequisites
- An AWS account and a subscription to the ArcadeDB listing on AWS Marketplace
- A VPC with a subnet, and an EC2 key pair in the target region
- A security group that allows inbound TCP 22 from your management IP and TCP 80 from your trusted client networks
Recommended instance type: m5.large (2 vCPU, 8 GB RAM) for production. t3.medium is fine for evaluation. For heavier graph and document workloads, use a larger instance and raise the JVM heap in /etc/default/arcadedb (ARCADEDB_OPTS_MEMORY=-Xms1G -Xmx8G).
Launch from the AWS Console
In AWS Marketplace, subscribe to the ArcadeDB listing, then click Continue to Launch. Choose your instance type, VPC and subnet, key pair, and a security group that allows TCP 22 from your management IP and TCP 80 from your trusted client networks.
The ArcadeDB HTTP listener is bound to loopback, so only nginx on port 80 is exposed. Do not expose port 80 to the public internet without a TLS-terminating reverse proxy in front.
Launch from the AWS CLI
aws ec2 run-instances \
--image-id <arcadedb-ami-id> \
--instance-type m5.large \
--key-name <your-key> \
--security-group-ids <your-sg> \
--subnet-id <your-subnet> \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=arcadedb-01}]'Verify the ArcadeDB service
sudo systemctl is-active arcadedb.service nginx.service
sudo test -f /var/lib/sac/data/arcadedb-firstboot.done && echo FIRSTBOOT_DONEBoth services should report active, and the first-boot sentinel should be present:
active active FIRSTBOOT_DONEInspect the listeners and version
The ArcadeDB HTTP listener is bound to 127.0.0.1:2480, and nginx serves it on port 80. There is no open JMX or management port.
sudo journalctl -u arcadedb.service --no-pager | grep -E 'ArcadeDB Server started|Available query languages' | tail -2 sudo ss -tln | grep -E ':2480|:80 'You will see ArcadeDB reporting its available query languages and the listeners on loopback 2480 and port 80:
Available query languages: [js, java, sql, sqlscript, opencypher, mongo, graphql, redis, cypher, gremlin] ArcadeDB Server started in 'development' mode (CPUs=2 MAXRAM=1024.00MB) LISTEN 0 511 0.0.0.0:80 0.0.0.0:* LISTEN 0 1000 [::ffff:127.0.0.1]:2480 *:*Retrieve the root password
The per-instance root password is generated at first boot and stored in a root-only file:
sudo cat /root/arcadedb-credentials.txtYou will see the root user, the per-instance password, and the endpoint URLs:
ARCADEDB_ROOT_USER=root ARCADEDB_ROOT_PASSWORD=<ARCADEDB_PASSWORD> ARCADEDB_STUDIO_URL=http://<instance-public-ip>/ ARCADEDB_HTTP_API_URL=http://<instance-public-ip>/api/v1/ ARCADEDB_DEMO_DATABASE=DemoQuery the HTTP REST API
ArcadeDB exposes a full REST API. Extract the password into a shell variable, then run an authenticated query against the seeded Demo database:
PW=$(sudo grep '^ARCADEDB_ROOT_PASSWORD=' /root/arcadedb-credentials.txt | cut -d= -f2-)
curl -s -u "root:$PW" http://127.0.0.1/api/v1/databases
curl -s -u "root:$PW" -H 'Content-Type: application/json' -X POST http://127.0.0.1/api/v1/command/Demo \
-d '{"language":"sql","command":"SELECT name, role FROM Person ORDER BY name"}'The first call lists the databases (Demo). The second returns the three Person records from the sample graph:
{"version":"26.7.2 ...","user":"root","result":["Demo"]} {"user":"root","result":[{"name":"Alice","role":"Engineer"},{"name":"Bob","role":"Designer"},{"name":"Carol","role":"Analyst"}]}An unauthenticated request is refused with HTTP 401, and a wrong password is refused with HTTP 403. The API is never open without valid credentials.
Open ArcadeDB Studio
ArcadeDB Studio is the built-in web workbench. Open http://<instance-public-ip>/ from your workstation. Your security group must allow TCP 80 from your address. The sign-in page shows the multi-model overview and asks for a username and password:
Sign in with user root and the per-instance password from /root/arcadedb-credentials.txt. Studio connects to the Demo database. It shows the Database Info panel with the seeded schema (Person vertices and Knows edges), plus the query editor:
Run a query in Studio
Type a query into the editor and choose a language. SQL, Open Cypher, Gremlin, GraphQL, MongoDB and Redis are available. Press Run. The Table view shows the returned records:
Browse the graph
Switch the result view to Graph to explore vertices and their relationships visually. The Demo graph shows the Person vertices connected by directed Knows edges. A toolbar offers redraw, select, crop, import and export:
Multi-model query examples
ArcadeDB runs several query languages against the same data. Try Cypher against the Demo graph:
PW=$(sudo grep '^ARCADEDB_ROOT_PASSWORD=' /root/arcadedb-credentials.txt | cut -d= -f2-)
curl -s -u "root:$PW" -H 'Content-Type: application/json' -X POST http://127.0.0.1/api/v1/command/Demo \
-d '{"language":"cypher","command":"MATCH (p:Person)-[:Knows]->(f:Person) RETURN p.name, f.name"}'The response traverses the Knows relationships:
{"user":"root","result":[{"p.name":"Alice","f.name":"Bob"},{"p.name":"Bob","f.name":"Carol"},{"p.name":"Carol","f.name":"Alice"}]}You can traverse the same graph with SQL (SELECT expand(out('Knows')) FROM Person) or with Gremlin (g.V().hasLabel('Person').out('Knows').values('name')). ArcadeDB also speaks the MongoDB and Redis wire protocols for document and key-value access.
Server components
These are the main components and where they live:
- Server home: /opt/arcadedb
- Start script: /opt/arcadedb/bin/server.sh
- Server environment: /etc/default/arcadedb
- Databases directory: /var/lib/arcadedb/databases (dedicated EBS data volume)
- Server users file: /opt/arcadedb/config/server-users.jsonl
- Systemd unit: /etc/systemd/system/arcadedb.service
- First-boot script: /usr/local/sbin/arcadedb-firstboot.sh
- Credentials file: /root/arcadedb-credentials.txt (mode 0600)
- First-boot sentinel: /var/lib/sac/data/arcadedb-firstboot.done
- nginx site: /etc/nginx/sites-available/sac-arcadedb
Managing the ArcadeDB service
sudo systemctl status arcadedb.service --no-pager | head -6 sudo journalctl -u arcadedb.service --no-pager | tail -5After a configuration change, restart the service with sudo systemctl restart arcadedb.service.
Security recommendations
- Rotate the root password in Studio (Security tab) or through the API, and store it in AWS Secrets Manager.
- Keep the HTTP listener on loopback as shipped. Expose only nginx on port 80, and put TLS in front of it (an Application Load Balancer, or nginx with a real certificate).
- Restrict the security group so port 80 reaches only trusted client networks, never the public internet without TLS.
- Create per-application users and roles in the Security tab instead of using the root account for application traffic.
- Back up the databases directory at
/var/lib/arcadedb/databases, or snapshot the EBS data volume. - Patch the OS monthly with
sudo apt-get update && sudo apt-get upgrade && sudo reboot.
Support and licensing
ArcadeDB is licensed under the Apache License 2.0. There are no per-node, per-CPU or per-GB fees for the software. This image is produced by SecureAnyCloud and is not affiliated with, endorsed by or sponsored by Arcade Data Ltd. ArcadeDB is a trademark of its respective owner and is used here only to describe the software included in the image.
SecureAnyCloud provides commercial support for this image separately from the upstream project.
Email: sales@secureanycloud.com
Website: secureanycloud.com
Support hours: 24/7 with guaranteed 24-hour response SLA
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Deploy on AWS
Launch ArcadeDB Multi-Model Database on AWS with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com