How To Install ArangoDB on Ubuntu 20.04/18.04

Posted on 178 views

Welcome to our guide on how to install ArangoDB on Ubuntu 20.04/18.04. ArangoDB is a multi-model, open-source database with flexible data models for graphs, documents, and key-values. It is designed for high-performance applications which use SQL-like query language or JavaScript extensions.

ArangoDB is ACID compliant and it is designed to scale horizontally with a few mouse clicks. On top of that, it also provides an internal API that is used to communicate with clients.

ArangoDB doesn’t support SQL as it comes with its own declarative language called AQL (ArangoDB Query Language). AQL is a single SQL-like query language for all data models of the database.

Key features of ArangoDB

  • It is fully open source and released under Apache 2.0 License.
  • Has a flexible data modeling which allows you to model your data as combination of key-value pairs, documents or graphs – perfect for social relations
  • Comes with a Powerful query language (AQL) for modifying and retrieving data.
  • You can run queries on multiple documents or collections with optional transactional consistency and isolation
  • Support for Replication and Sharding: You can set up the database in a master-slave configuration or spread bigger datasets across multiple servers
  • You can use ArangoDB as an application server and fuse your application and database together for maximal throughput.
  • Good storage for performance and data durability through its support for modern storage hardware, like SSD and large caches.
  • ArangoDB can be easily deployed as a fault-tolerant distributed state machine, which can serve as the animal brain of distributed appliances

Install ArangoDB on Ubuntu 20.04/18.04

The process of installing ArangoDB on Ubuntu 20.04/18.04 is straightforward. This guide will demonstrate a single instance installation of ArangoDB but you can also do:

  • Master/Slave installation
  • Active Failover setup
  • Cluster installation
  • Multiple Datacenters & Standalone Agency setup

The packages are readily available on an Apt repository. The only manual work required is adding the apt repository to your system using the commands below.

Step 1: Add ArangoDB Apt repository

Run the following command to add an apt repository to your system.

echo 'deb /' | sudo tee /etc/apt/sources.list.d/arangodb.list

Step 2: Import repository key

The next step is to import GPG key used for signing the packages.

wget -q -O- | sudo apt-key add - 

You should see the “OK” message as the output.

Step 3: Update system and install ArangoDB

Update your Apt package cache then install ArangoDB on Ubuntu 18.04.

sudo apt update
sudo apt -y install apt-transport-https
sudo apt -y install arangodb3

You will be required to answer a couple questions during installation.

1. Set DB root password


Enter the password and confirm it.



2. Select if to automatically upgrade database files.



3. Choose the database storage engine to use.



4. Set to backup database before doing an upgrade.



Wait for the installation to finish then proceed to step 3 where you’ll start and manage ArangoDB service with systemd.

If you had miss to set root password during installation, you can secure ArangoDB after installation by running:

sudo arango-secure-installation

Step 4: Start ArangoDB service

The service should be automaticaly started upon installation. If it is not started, you can manually start it using systemctl service management command.

sudo systemctl start arangodb3
sudo systemctl enable arangodb3

Check service with below command.

$ systemctl status arangodb3
● arangodb3.service - ArangoDB database server
     Loaded: loaded (/lib/systemd/system/arangodb3.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-02 22:39:24 UTC; 1min 14s ago
   Main PID: 29622 (arangod)
      Tasks: 18 (limit: 131072)
     Memory: 221.9M
     CGroup: /system.slice/arangodb3.service
             └─29622 /usr/sbin/arangod --uid arangodb --gid arangodb --pid-file /var/run/arangodb3/ --temp.path /var/tmp/arangodb3 --log.for>

May 02 22:39:24 ubuntu20 arangod[29622]: 2020-05-02T22:39:24Z [29622] INFO detected operating system: Linux version 5.4.0-26-generic ([email protected]>
May 02 22:39:24 ubuntu20 arangod[29622]: 2020-05-02T22:39:24Z [29622] WARNING threads --server.threads (64) is more than eight times the number of co>
May 02 22:39:25 ubuntu20 arangod[29622]: 2020-05-02T22:39:25Z [29622] INFO authentication Jwt secret not specified, generating...
May 02 22:39:25 ubuntu20 arangod[29622]: 2020-05-02T22:39:25Z [29622] INFO using storage engine rocksdb
May 02 22:39:25 ubuntu20 arangod[29622]: 2020-05-02T22:39:25Z [29622] INFO cluster Starting up with role SINGLE
May 02 22:39:25 ubuntu20 arangod[29622]: 2020-05-02T22:39:25Z [29622] INFO syscall file-descriptors (nofiles) hard limit is 131072, soft limit is 131>
May 02 22:39:25 ubuntu20 arangod[29622]: 2020-05-02T22:39:25Z [29622] INFO authentication Authentication is turned on (system only), authentication f>
May 02 22:39:25 ubuntu20 systemd[1]: /lib/systemd/system/arangodb3.service:28: PIDFile= references a path below legacy directory /var/run/, updating /v>
May 02 22:39:25 ubuntu20 arangod[29622]: 2020-05-02T22:39:25Z [29622] INFO using endpoint 'http+tcp://' for non-encrypted requests
May 02 22:39:26 ubuntu20 arangod[29622]: 2020-05-02T22:39:26Z [29622] INFO ArangoDB (version 3.4.9 [linux]) is ready for business. Have fun!

The status should return “running“.

Step 5: Launching ArangoDB shell on Ubuntu

To launch ArangoDB shell, run:

$ sudo arangosh
Please specify a password:

  __ _ _ __ __ _ _ __   __ _  ___  ___| |__
 / _` | '__/ _` | '_ \ / _` |/ _ \/ __| '_ \
| (_| | | | (_| | | | | (_| | (_) \__ \ | | |
 \__,_|_|  \__,_|_| |_|\__, |\___/|___/_| |_|

arangosh (ArangoDB 3.4.11 [linux] 64bit, using jemalloc, build tags/v3.4.11-0-gf077c18143, VPack 0.1.33, RocksDB 5.16.0, ICU 58.1, V8 5.7.492.77, OpenSSL 1.1.0l  10 Sep 2019)
Copyright (c) ArangoDB GmbH

Command-line history will be persisted when the shell is exited.
Could not connect to endpoint 'tcp://', database: '_system', username: 'root'
Error message: 'Unauthorized'

Please note that a new minor version '3.7.11' is available[email protected]_system>

Create a test database.[email protected]_system> db._createDatabase("testdb");

Create database user and grant access to the database created above.

var users = require("@arangodb/users");"[email protected]", "dbuserpassword");
users.grantDatabase("[email protected]", "testdb");

Check complete user management guide for more information.

List databases.[email protected]_system> db._databases()

You can now connect to the test database using the user [email protected].

# arangosh --server.username "[email protected]" --server.database testdb

Please specify a password: 
  __ _ _ __ __ _ _ __   __ _  ___  ___| |__  
 / _` | '__/ _` | '_ \ / _` |/ _ \/ __| '_ \ 
| (_| | | | (_| | | | | (_| | (_) \__ \ | | |
 \__,_|_|  \__,_|_| |_|\__, |\___/|___/_| |_|
arangosh (ArangoDB 3.4.2-1 [linux] 64bit, using jemalloc, build tags/v3.4.2.1-0-g91afc6501f, VPack 0.1.33, RocksDB 5.16.0, ICU 58.1, V8 5.7.492.77, OpenSSL 1.1.0j  20 Nov 2018)
 Copyright (c) ArangoDB GmbH
 Connected to ArangoDB 'http+tcp://' version: 3.4.2-1 [server], database: 'testdb', username: '[email protected]'
 Type 'tutorial' for a tutorial or 'help' to see common examples[email protected]> 

To drop the database, use:[email protected]_system> db._dropDatabase("testdb");

Step 6: Accessing ArangoDB Admin Web Interface

ArangoDB server comes with a built-in web interface for administration. It lets you manage databases, collections, documents, users, graphs, run and explain queries, see server stats and much more.

The service is set to listen on localhost address but it can be changed to listen on Local LAN IP.

Comment the line endpoint = tcp:// and add your network IP.

$ sudo vim /etc/arangodb3/arangod.conf
#endpoint = tcp://
endpoint = tcp://

Restart ArangoDB service after making this change.

sudo systemctl restart arangodb3

If you have UFW firewall enable, ensure port 8529 is allowed in the firewall.

sudo ufw allow proto tcp from any to any port 8529

Access the Admin dashboard on http://[serverip or localhost]:8529. By default, authentication is enabled.


Provide username and password to authenticate as and select database to connect to on the next screen.


The database management web interface should look similar to below.


Next Steps

Visit the ArangoDB Documentation and Tutorials to learn more about it and how you can do integrations with your Applications. This cheat sheet may also come in handy.

Our next guide will cover ArangoDB Cluster setup on Ubuntu 18.04. Until then, check other Database related guides on our website.


Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.