How To Install Neo4j on AlmaLinux 10
Neo4j stands as the world’s leading graph database management system, revolutionizing how organizations store, query, and analyze connected data. AlmaLinux 10, the latest stable release of this enterprise-grade Linux distribution, provides an ideal platform for deploying robust graph database solutions. This comprehensive guide walks through every step of installing Neo4j on AlmaLinux 10, ensuring optimal configuration for both development and production environments.
Prerequisites and System Requirements
AlmaLinux 10 System Requirements
Before beginning the Neo4j installation process, verify that your AlmaLinux 10 system meets the minimum requirements. The operating system requires a 64-bit processor architecture with at least 1.5 GB of RAM and 10 GB of available disk space. For production deployments, recommend allocating 4 GB of RAM and 20 GB or more disk space to ensure smooth operation.
Network connectivity remains essential for downloading packages and repositories during installation. Administrator privileges through sudo access are mandatory for system-level configuration changes. Verify these prerequisites by running system information commands and checking available resources before proceeding.
Neo4j System Requirements
Neo4j demands specific system resources for optimal performance. The database requires Java Runtime Environment (JRE) version 17 or later, with Java 21 being the current recommended version. Memory allocation plays a crucial role in graph database performance, with a minimum of 2 GB recommended for development environments and 8 GB or more for production workloads.
Storage performance significantly impacts Neo4j operations. Solid State Drives (SSDs) are strongly recommended over traditional hard drives for database storage due to their superior random access performance. CPU requirements include support for 64-bit architecture, with multi-core processors providing better query execution performance.
Pre-Installation Setup
System Update and Preparation
Start by updating your AlmaLinux 10 system to ensure all packages reflect the latest versions. Execute the following command to refresh package repositories and install available updates:
sudo dnf update -y
This command downloads and installs the newest versions of installed packages, including security patches and bug fixes. The system update process may require a reboot depending on kernel updates or system-critical package modifications.
Verify system architecture compatibility by checking the processor type:
uname -m
The output should display “x86_64” indicating 64-bit architecture support. Check available disk space and memory resources using:
df -h
free -h
These commands display filesystem usage and available memory, helping confirm adequate resources for Neo4j installation.
Java Installation and Configuration
Neo4j requires Java Development Kit (JDK) or Java Runtime Environment (JRE) for operation. Install OpenJDK Java 17, which provides excellent compatibility with Neo4j:
sudo dnf install java-17-openjdk java-17-openjdk-devel -y
The installation includes both the runtime environment and development tools. Verify the Java installation by checking the version:
java -version
The command output should confirm OpenJDK version 17 installation. If multiple Java versions exist on your system, configure the default version using the alternatives system:
sudo alternatives --config java
This interactive command allows selecting the preferred Java version from available installations. Configure the JAVA_HOME environment variable for proper Java path recognition:
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' >> ~/.bashrc
source ~/.bashrc
Firewall and Security Configuration
Neo4j operates on specific network ports that require firewall configuration for accessibility. The database uses port 7474 for HTTP browser interface and port 7687 for the Bolt protocol used by drivers and applications.
Configure firewalld to allow these ports:
sudo firewall-cmd --permanent --add-port=7474/tcp
sudo firewall-cmd --permanent --add-port=7687/tcp
sudo firewall-cmd --reload
These commands permanently open the required ports and reload firewall rules. For enhanced security in production environments, consider restricting access to specific IP addresses or network ranges rather than allowing universal access.
Neo4j Repository Setup
Adding Neo4j RPM Repository
AlmaLinux 10 package repositories do not include Neo4j by default, requiring the addition of the official Neo4j RPM repository. Begin by importing the Neo4j GPG public key for package verification:
sudo rpm --import https://debian.neo4j.com/neotechnology.gpg.key
This step ensures package integrity and authenticity during installation. Create the Neo4j repository configuration file:
sudo nano /etc/yum.repos.d/neo4j.repo
Add the following repository configuration content:
[neo4j]
name=Neo4j RPM Repository
baseurl=https://yum.neo4j.com/stable/5
enabled=1
gpgcheck=1
Save and close the file by pressing Ctrl+X, then Y to confirm changes. The repository configuration enables access to stable Neo4j version 5 packages with GPG signature verification enabled.
Repository Verification and Troubleshooting
Verify the repository setup by listing configured repositories:
sudo dnf repolist
The command output should include the Neo4j repository in the list of enabled repositories. If the repository does not appear, check the configuration file for syntax errors or network connectivity issues.
Clear the package manager cache if experiencing repository-related problems:
sudo dnf clean all
List available Neo4j packages to confirm repository functionality:
dnf list available neo4j*
This command displays available Neo4j packages and versions from the configured repository. Common repository setup issues include network connectivity problems, incorrect URLs, or GPG key import failures.
Neo4j Installation Process
Community Edition Installation
Install Neo4j Community Edition using the DNF package manager:
sudo dnf install neo4j -y
The installation process automatically resolves and installs package dependencies. Neo4j Community Edition provides full graph database functionality suitable for development, testing, and many production use cases.
Verify successful installation by checking the Neo4j version:
neo4j version
The command confirms Neo4j installation and displays version information. Installation files are placed in standard Linux directory locations: configuration files in /etc/neo4j/, executable files in /usr/bin/, and data directories in /var/lib/neo4j/.
Enterprise Edition Installation
Neo4j Enterprise Edition requires license agreement acceptance during installation. Install Enterprise Edition using:
sudo dnf install neo4j-enterprise -y
The installation process presents a license agreement that requires acceptance. For automated installations, accept the license using environment variables:
sudo NEO4J_ACCEPT_LICENSE_AGREEMENT=yes dnf install neo4j-enterprise -y
Enterprise Edition includes advanced features such as clustering, backup utilities, and enterprise security enhancements not available in Community Edition. Choose the appropriate edition based on feature requirements and licensing considerations.
Service Configuration and Management
Starting and Enabling Neo4j Service
Start the Neo4j service using systemctl:
sudo systemctl start neo4j
This command initiates the Neo4j database service. Enable automatic startup on system boot:
sudo systemctl enable neo4j
The enable command configures Neo4j to start automatically during system initialization. Check service status to confirm successful startup:
sudo systemctl status neo4j
The status command displays detailed information about service state, including any startup errors or warnings. Neo4j service startup depends on Java availability and proper configuration file syntax.
Monitor service logs for troubleshooting startup issues:
sudo journalctl -u neo4j -f
This command displays real-time Neo4j service logs, helpful for diagnosing configuration or resource problems.
Initial Password Configuration
Neo4j requires initial password configuration for the administrative user account. Set the initial password using the neo4j-admin command:
sudo neo4j-admin dbms set-initial-password your_secure_password
Replace “your_secure_password” with a strong password meeting security requirements. The password should include uppercase letters, lowercase letters, numbers, and special characters for enhanced security.
Alternative password configuration involves connecting through Cypher Shell and changing the default password interactively:
cypher-shell
The command prompts for username and password, using “neo4j” for both initially. The system forces password change upon first connection.
Basic Neo4j Configuration
Neo4j configuration resides in the /etc/neo4j/neo4j.conf file. Key configuration parameters include memory allocation settings and network binding options. Edit the configuration file:
sudo nano /etc/neo4j/neo4j.conf
Important configuration settings include:
# Memory allocation
server.memory.heap.initial_size=1g
server.memory.heap.max_size=2g
# Network binding
server.default_listen_address=0.0.0.0
server.default_advertised_address=localhost
Memory allocation settings should reflect available system resources. Log file locations are specified in the configuration, typically stored in /var/log/neo4j/. Restart the service after configuration changes:
sudo systemctl restart neo4j
Network Access and Remote Connectivity
Local Access Configuration
Access the Neo4j Browser interface through a web browser at http://localhost:7474. The web interface provides an intuitive graphical environment for database interaction, query execution, and data visualization.
Default login credentials use “neo4j” for both username and password. The system requires password change during initial login for security purposes. The Neo4j Browser interface includes query editors, result visualization, and database administration tools.
Navigate through the interface to explore sample databases, execute Cypher queries, and access documentation resources. The browser interface supports multiple query tabs, result export options, and graphical query planning.
Remote Access Setup
Configure Neo4j for remote access by modifying network binding settings. Edit the configuration file to allow remote connections:
sudo nano /etc/neo4j/neo4j.conf
Modify the listen address configuration:
server.default_listen_address=0.0.0.0
This setting allows connections from any network interface. For enhanced security, specify particular IP addresses or network ranges:
server.default_listen_address=192.168.1.100
Configure the advertised address for proper client connections:
server.default_advertised_address=your_server_ip
Replace “your_server_ip” with the actual server IP address. Restart Neo4j service after configuration changes:
sudo systemctl restart neo4j
Test remote connectivity from client machines using the server IP address and port 7474. Security implications of remote access include exposure to network attacks, requiring proper firewall configuration and strong authentication.
Testing and Verification
Basic Functionality Testing
Verify Neo4j installation by connecting through the Cypher Shell command-line interface:
cypher-shell -u neo4j -p your_password
This command establishes a direct connection to the Neo4j database using specified credentials. Execute basic Cypher queries to confirm database functionality:
MATCH (n) RETURN count(n);
The query returns the total number of nodes in the database. Create test data to verify write operations:
CREATE (p:Person {name: 'Alice', age: 30}) RETURN p;
This command creates a person node with properties and returns the created node. Test both local and remote connections to ensure network configuration accuracy.
Verify service status and examine log files for errors or warnings:
sudo systemctl status neo4j
sudo tail -f /var/log/neo4j/neo4j.log
These commands display current service state and real-time log entries.
Performance and Health Checks
Monitor system resources and Neo4j memory usage during operation. Use system monitoring tools to track CPU, memory, and disk utilization:
top
htop
iostat
These tools provide real-time system performance metrics. Check Neo4j-specific metrics through the database interface or log files.
Examine Neo4j logs for errors, warnings, or performance indicators:
sudo grep -i error /var/log/neo4j/neo4j.log
sudo grep -i warn /var/log/neo4j/neo4j.log
Log analysis reveals potential issues affecting database performance or stability. Basic performance benchmarking involves executing representative queries and measuring response times.
Neo4j provides built-in metrics and monitoring capabilities through JMX interfaces and HTTP endpoints. Configure monitoring systems to track database health and performance trends over time.
Common Issues and Troubleshooting
Installation Problems
Repository and GPG key related issues commonly occur during Neo4j installation. Verify GPG key import success:
rpm -qa | grep gpg-pubkey
Reimport the key if missing or corrupted:
sudo rpm --import https://debian.neo4j.com/neotechnology.gpg.key
Java version compatibility problems prevent proper Neo4j operation. Confirm Java version meets Neo4j requirements:
java -version
Update or install compatible Java versions if necessary. Package dependency conflicts occur when incompatible software versions exist on the system. Resolve conflicts by updating conflicting packages or using specific package versions.
Insufficient system resources cause installation or startup failures. Monitor available memory and disk space during installation:
free -h
df -h
Add system resources or free existing space to resolve resource constraints.
Service and Connectivity Issues
Neo4j service startup failures often result from configuration errors or resource limitations. Analyze service logs for specific error messages:
sudo journalctl -u neo4j --no-pager
Common startup issues include Java path problems, configuration syntax errors, and port binding conflicts. Connection timeout and firewall configuration problems prevent client access. Verify firewall rules and network connectivity:
sudo firewall-cmd --list-ports
telnet server_ip 7474
Memory allocation and OutOfMemoryException errors occur when insufficient heap memory is allocated. Adjust memory settings in the configuration file:
server.memory.heap.max_size=4g
Port binding and network access issues prevent service startup or client connections. Check for port conflicts using:
sudo netstat -tlnp | grep :7474
sudo netstat -tlnp | grep :7687
Configuration and Permission Problems
File permission and ownership issues prevent proper Neo4j operation. Verify Neo4j user ownership of data directories:
sudo chown -R neo4j:neo4j /var/lib/neo4j
sudo chown -R neo4j:neo4j /var/log/neo4j
Configuration file syntax errors cause service startup failures. Validate configuration syntax and check for typos or missing values. Use configuration validation tools or manual review to identify issues.
Password and authentication problems prevent database access. Reset passwords using administrative commands or configuration file modifications. Ensure password complexity meets security requirements and avoid common passwords.
Security Best Practices
Secure Neo4j installations require proper user account management and access controls. Create dedicated system users for Neo4j operations rather than using root privileges. Configure strong authentication mechanisms and regularly update passwords.
Network security involves firewall configuration and connection encryption. Restrict network access to authorized IP addresses and implement VPN or other secure connection methods for remote access. Enable SSL/TLS encryption for data transmission protection:
# SSL configuration
server.bolt.tls_level=REQUIRED
server.https.enabled=true
Regular security updates maintain protection against vulnerabilities. Configure automatic updates for security patches while testing updates in development environments before production deployment. Implement comprehensive backup and disaster recovery procedures to protect against data loss.
Monitor access logs and implement intrusion detection systems for suspicious activity identification. Regular security audits help identify potential vulnerabilities and ensure compliance with security policies.
Next Steps and Advanced Configuration
Performance tuning optimizes Neo4j for specific workloads and data patterns. Adjust memory allocation, cache sizes, and query execution parameters based on usage patterns. Monitor query performance and optimize database schemas for efficient traversals.
Clustering and high availability configurations provide redundancy and scalability for production environments. Neo4j Enterprise Edition supports multi-server clusters with automatic failover and load balancing capabilities. Plan cluster architecture based on availability requirements and expected load patterns.
Integration with monitoring and logging systems provides operational visibility. Configure centralized log collection, metrics gathering, and alerting systems for proactive issue identification. Implement automated backup schedules and test recovery procedures regularly.
Explore additional Neo4j plugins and extensions for enhanced functionality. Graph algorithm libraries, data import tools, and visualization plugins extend core database capabilities. Evaluate third-party tools and extensions based on specific use case requirements.
Community support and learning resources facilitate continued Neo4j expertise development. Participate in Neo4j community forums, attend training sessions, and explore advanced documentation for ongoing skill enhancement.
Congratulations! You have successfully installed Neo4j. Thanks for using this tutorial for installing the Neo4j graph database management on your AlmaLinux OS 10 system. For additional help or useful information, we recommend you check the official Neo4j website.