docker.recipes

ArangoDB Multi-Model Database

beginner

ArangoDB multi-model database supporting graph, document, and key-value.

Overview

ArangoDB is a native multi-model database that combines document, graph, and key-value data models into a single system with a unified query language called AQL (ArangoDB Query Language). Originally developed in 2011 by triAGENS, ArangoDB eliminates the need for multiple specialized databases by providing flexibility to work with different data models simultaneously, making it particularly valuable for applications that require both document storage and graph traversal capabilities. This Docker configuration deploys a standalone ArangoDB instance with persistent data storage and web interface access, enabling developers to leverage all three data models without the complexity of managing separate database systems. The setup is ideal for development teams working on applications with mixed data requirements, such as social networks that need both user profiles (documents) and relationship mapping (graphs), or e-commerce platforms combining product catalogs with recommendation engines. Organizations choosing ArangoDB benefit from reduced operational overhead, simplified data architecture, and the ability to perform complex queries that span multiple data models within a single transaction, making it particularly attractive for startups and mid-sized companies that want database flexibility without maintaining multiple specialized systems.

Key Features

  • Multi-model support for documents, graphs, and key-value pairs in a single database
  • AQL (ArangoDB Query Language) for unified querying across all data models
  • ACID transactions with multi-document and multi-collection support
  • Built-in graph traversal algorithms for complex relationship analysis
  • ArangoSearch full-text search engine with ranking and analytics
  • Foxx microservices framework for server-side JavaScript applications
  • SmartGraphs for distributed graph processing and sharding
  • Web-based interface for database administration and query execution

Common Use Cases

  • 1Social networking platforms requiring user profiles and relationship graphs
  • 2E-commerce applications with product catalogs and recommendation engines
  • 3Content management systems with hierarchical data and tagging
  • 4IoT applications tracking devices, sensors, and their interconnections
  • 5Knowledge graphs for semantic search and data discovery
  • 6Financial applications modeling transactions and account relationships
  • 7Real-time analytics combining time-series data with entity relationships

Prerequisites

  • Minimum 2GB RAM available for optimal ArangoDB performance
  • Port 8529 available for web interface and API access
  • Docker Engine 19.03+ with Docker Compose support
  • Basic understanding of NoSQL concepts and query languages
  • Familiarity with JSON document structure for data modeling

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 arangodb:
3 image: arangodb:latest
4 container_name: arangodb
5 restart: unless-stopped
6 ports:
7 - "${ARANGO_PORT:-8529}:8529"
8 environment:
9 - ARANGO_ROOT_PASSWORD=${ROOT_PASSWORD:-rootpassword}
10 volumes:
11 - arangodb_data:/var/lib/arangodb3
12 - arangodb_apps:/var/lib/arangodb3-apps
13 networks:
14 - arango-network
15
16volumes:
17 arangodb_data:
18 arangodb_apps:
19
20networks:
21 arango-network:
22 driver: bridge

.env Template

.env
1# ArangoDB
2ARANGO_PORT=8529
3ROOT_PASSWORD=rootpassword

Usage Notes

  1. 1Web UI at http://localhost:8529
  2. 2Login: root/rootpassword
  3. 3Supports AQL query language
  4. 4Multi-model: graph, document, key-value

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 arangodb:
5 image: arangodb:latest
6 container_name: arangodb
7 restart: unless-stopped
8 ports:
9 - "${ARANGO_PORT:-8529}:8529"
10 environment:
11 - ARANGO_ROOT_PASSWORD=${ROOT_PASSWORD:-rootpassword}
12 volumes:
13 - arangodb_data:/var/lib/arangodb3
14 - arangodb_apps:/var/lib/arangodb3-apps
15 networks:
16 - arango-network
17
18volumes:
19 arangodb_data:
20 arangodb_apps:
21
22networks:
23 arango-network:
24 driver: bridge
25EOF
26
27# 2. Create the .env file
28cat > .env << 'EOF'
29# ArangoDB
30ARANGO_PORT=8529
31ROOT_PASSWORD=rootpassword
32EOF
33
34# 3. Start the services
35docker compose up -d
36
37# 4. View logs
38docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/arangodb-multi-model/run | bash

Troubleshooting

  • ArangoDB fails to start with 'cannot lock data directory': Ensure no other ArangoDB instances are running and check volume permissions
  • Web interface shows 'Service Unavailable': Wait 30-60 seconds for ArangoDB initialization to complete, check container logs for startup progress
  • Authentication failed with root password: Verify ROOT_PASSWORD environment variable matches your credentials, restart container if changed
  • Out of memory errors during queries: Increase Docker container memory limits or optimize AQL queries with proper indexes
  • Connection refused on port 8529: Check if ARANGO_PORT environment variable conflicts with other services, verify firewall settings

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space