Relational database management systems dominate many segments of programming. However, it is increasingly common to see real alternatives to this type of database. Of those applications, it seems that MongoDB is one of the most popular but ArangoDB improves and improves every day. In this post, I will tell you about ArangoDB, some of the main features and more. Also, I will show you how to install ArangoDB on Fedora 34/33
A little bit of ArangoDB
ArangoDB is a NoSQL database manager. It is built in C++ and is open source. Its main feature is that it is multi-model. That is, it supports different data models such as (JSON), graphs and key-value.
On the other hand, ArangoDB has two versions. The first one is paid and offers support at different levels. The second is communitarian, ideal for small or educational projects.
If you want to manage a server instance easily, ArangoDB allows it through a nice and intuitive web interface. Besides this, it has connectors for many programming languages, so this should not be a limitation. Of course, it has installers for many Linux distributions.
So let us get to work.
Install ArangoDB on Fedora 34/33
First, open your terminal and update Fedora 34/33
sudo dnf update
Once the system is fully upgraded, it is possible to start the process.
ArangoDB is not present in the main Fedora 34/33 repositories but they provide an external repository where you can install it.
So, navigate to the /etc/yum.repos.d/
folder which is where the repository configuration files are stored.
cd /etc/yum.repos.d/
And inside it, download a file containing the data needed to set up the repository.
sudo curl -OL https://download.arangodb.com/arangodb37/RPM/arangodb.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 195 100 195 0 0 2378 0 --:--:-- --:--:-- --:--:-- 2378
And now proceed with the installation by executing:
sudo dnf install arangodb3-3.7.9-1.0
This will start the installation process.
When it is finished, you will have to start the ArangoDB service
sudo systemctl start arangodb3.service
And make it start with the system:
sudo systemctl enable arangodb3.service Created symlink /etc/systemd/system/multi-user.target.wants/arangodb3.service → /etc/systemd/system/arangodb3.service.
Verify that all is well on ArangoDB and that it is running
sudo systemctl status arangodb3.service ● arangodb3.service - ArangoDB database server Loaded: loaded (/etc/systemd/system/arangodb3.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2021-05-25 00:10:37 CEST; 12s ago Main PID: 9638 (arangod) Tasks: 26 (limit: 131072) Memory: 151.2M CPU: 550ms CGroup: /system.slice/arangodb3.service └─9638 /usr/sbin/arangod --pid-file /var/run/arangodb3/arangod.pid --temp.path /var/tmp/arangodb3 --log.foreground-tty true May 25 00:10:37 osradar arangod[9638]: 2021-05-24T22:10:37Z [9638] INFO [25362] {memory} Available physical memory: 2022600704 bytes, available cores: 1 May 25 00:10:37 osradar arangod[9638]: 2021-05-24T22:10:37Z [9638] INFO [43396] {authentication} Jwt secret not specified, generating… May 25 00:10:37 osradar arangod[9638]: 2021-05-24T22:10:37Z [9638] INFO [144fe] using storage engine 'rocksdb' May 25 00:10:37 osradar arangod[9638]: 2021-05-24T22:10:37Z [9638] INFO [3bb7d] {cluster} Starting up with role SINGLE May 25 00:10:37 osradar arangod[9638]: 2021-05-24T22:10:37Z [9638] INFO [a1c60] {syscall} file-descriptors (nofiles) hard limit is 131072, soft limit is 131072 May 25 00:10:37 osradar arangod[9638]: 2021-05-24T22:10:37Z [9638] INFO [3844e] {authentication} Authentication is turned on (system only), authentication for unix sock> May 25 00:10:38 osradar arangod[9638]: 2021-05-24T22:10:38Z [9638] INFO [c1b63] {arangosearch} ArangoSearch maintenance: [1..1] commit thread(s), [1..1] consolidation t> May 25 00:10:38 osradar arangod[9638]: 2021-05-24T22:10:38Z [9638] INFO [6ea38] using endpoint 'http+tcp://127.0.0.1:8529' for non-encrypted requests May 25 00:10:38 osradar arangod[9638]: 2021-05-24T22:10:38Z [9638] INFO [cf3f4] ArangoDB (version 3.7.9 [linux]) is ready for business. Have fun! May 25 00:10:45 osradar systemd[1]: /etc/systemd/system/arangodb3.service:32: PIDFile= references a path below legacy directory /var/run/, updating /var/run/arangodb3/a>
So, now we can configure it.
Configuring ArangoDB on Fedora
Before using ArangoDB it is useful to make some configurations. First of all, we have to define a root password. To do this, run
sudo arango-secure-installation Please enter a new password for the ArangoDB root user: Repeat password: 2021-05-24T22:13:36Z [9825] INFO [a1c60] {syscall} file-descriptors (nofiles) hard limit is 524288, soft limit is 524288 2021-05-24T22:13:36Z [9825] INFO [c1b63] {arangosearch} ArangoSearch maintenance: [1..1] commit thread(s), [1..1] consolidation thread(s) 2021-05-24T22:13:36Z [9825] INFO [95cab] Password changed. 2021-05-24T22:13:36Z [9825] INFO [7da27] {startup} server will now shut down due to upgrade, database initialization or admin restoration.
After you have the password, you can access the ArangoDB shell.
sudo arangosh
In it, you can do all the operations you want. However, it is also possible to do it from a convenient web interface that we have to enable.
Exit the shell and proceed to edit the /etc/arangodb3/arangod.conf
file.
sudo nano /etc/arangodb3/arangod.conf
And there are a series of lines with the endpoint
value that you have to configure according to your needs. As I have installed ArangoDB on a server I leave the line like this
endpoint = tcp://0.0.0.0.0:8529
Replace 0.0.0.0.0
with the IP address of your server. Remember that you have several examples to guide you so you can also do it via localhost.
Save your changes and close the editor.
To apply them, restart the ArangoDB service.
sudo systemctl restart arangodb3.service
And open port 8529
in the Firewall.
sudo firewall-cmd --add-port=8529/tcp --permanent success sudo firewall-cmd --reload success
Now open a web browser and go to http://you-server:8529
.
Login in (username root and the password newly created) and then access the chosen database.
At last, you will see the ArangoDB dashboard. So, enjoy it.
Conclusion
ArangoDB is a very popular database manager and increasingly influential in the world of programming. It is frequently used in IoT technology as well as in mobile phones. As you could see, it is easy to install and thus saves us a lot of work.