3.1. Neo4j cloud VMs

This chapter describes how Neo4j deployed on cloud virtual machines operate and how they differ from other installation platforms for Neo4j.

3.1.1. Basics and file Locations

Neo4j cloud VMs are based on the Ubuntu distribution of Linux. When Neo4j is installed on a VM, the method used to do this matches the Debian install instructions provided in the Section 2.3.1, “Debian”. Because cloud images are based on the standard Neo4j Debian package, file locations match the file locations described in the Section 5.2, “File locations”, where neo4j-home is set to /var/lib/neo4j. The remainder of this page deals only with topics that are different from a standard Linux install. If you have any other questions not covered by this page, consult Section 2.3, “Linux installation”.

3.1.2. VM configuration

For the cloud version of Neo4j, you must not modify the /etc/neo4j/neo4j.conf file directly, but rather modify /etc/neo4j/neo4j.template.

The system service that restarts Neo4j calls a shell script called pre-neo4j.sh.

In cloud environments, much of the external configuration environment may change. A machine may have a different IP address or a different set of tags when it restarts. Because of this dynamic nature, the pre-neo4j.sh script dynamically overwrites the normal neo4j.conf file each time the system service starts. As a result, you must configure the template to do those substitutions and not the configuration file itself, as it will be automatically overwritten.

3.1.3. Configuration via VM tags

On cloud platforms, you may set general neo4j.conf configuration parameters as tags on the VM, which will be picked up and substituted into the configuration file. In this way, for example, you might set a tag on a VM of dbms_backup_enabled with the value false to disable the backup port. When changing VM tags, the configuration is not immediately applied to the Neo4j system service running inside of the VM. To affect these changes, please restart the system service.

Naming conventions for tags follow the same conventions as docker containers. Dots in a configuration parameter’s name must be replaced by underscore characters.

3.1.4. Interacting with the Neo4j Service

You can get system status for neo4j within the VM by executing the following:

systemctl status neo4j