How to Install OpenDJ on NixOS Latest

OpenDJ is an open-source, production-ready LDAP directory service written entirely in Java. In this tutorial, we will guide you through the process of installing OpenDJ on the latest version of NixOS.

Prerequisites

  • A running instance of NixOS Latest
  • Root access to the NixOS instance
  • A basic understanding of the Linux command-line interface (CLI)

Step 1: Download OpenDJ

Firstly, head to the OpenDJ website at https://backstage.forgerock.com/downloads/opendj/ and choose your preferred version of OpenDJ. In this guide, we will be using OpenDJ version 4.4.12. The file will be downloaded in .zip format.

cd ~
wget https://github.com/ForgeRock/opendj/releases/download/4.4.12/opendj-server-4.4.12.zip

Step 2: Extract OpenDJ

After the download is complete, extract the .zip file to the /opt directory using the following command:

sudo unzip opendj-server-4.4.12.zip -d /opt/

Step 3: Create the OpenDJ Service

Create a new systemctl service for OpenDJ:

sudo nano /etc/systemd/system/opendj.service

Add the following configuration to the file:

[Unit]
Description=OpenDJ LDAP server
After=network.target

[Service]
Type=simple
ExecStart=/opt/opendj/bin/start-ds
ExecStop=/opt/opendj/bin/stop-ds
User=opendj
Group=opendj
Restart=always

[Install]
WantedBy=multi-user.target

Save the configuration and exit the editor.

Step 4: Configure the OpenDJ Service

Create a new opendj user and set the opendj directory owner to this user:

sudo useradd opendj
sudo chown -R opendj:opendj /opt/opendj

In the OpenDJ installation directory, run the following command to configure OpenDJ:

cd /opt/opendj/
sudo ./setup

During the configuration process, enter the following information:

  • Administrator Password: choose a strong password for the OpenDJ administrator
  • Data directory: /var/opendj
  • Backends: select your preferred backends for the OpenDJ service

After the process is complete, start the OpenDJ service:

sudo systemctl start opendj.service

Step 5: Verify the OpenDJ Service

To verify that the OpenDJ service is running correctly, run the following command:

sudo systemctl status opendj.service

You should see output similar to the following:

● opendj.service - OpenDJ LDAP server
     Loaded: loaded (/etc/systemd/system/opendj.service; disabled; vendor preset: disabled)
     Active: active (running) since Mon 2022-01-03 05:51:29 UTC; 5s ago
    Process: 4058 ExecStop=/opt/opendj/bin/stop-ds (code=exited, status=0/SUCCESS)
   Main PID: 4080 (java)
      Tasks: 61 (limit: 4785)
     Memory: 1.5G
        CPU: 575ms
     CGroup: /system.slice/opendj.service
             └─4080 /usr/bin/java -server -Djava.security.policy=/opt/opendj/config/java-policy -Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true -Xmx768m -XX:+UseG1GC -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRat...

Step 6: Access the OpenDJ Admin Console

OpenDJ provides a web-based administrative console that you can access using your web browser. To access the OpenDJ admin console:

  1. Open your web browser and go to https://<ip_address>:8443/admin/ (replace <ip_address> with the IP address of your server)
  2. Accept the security certificate warning
  3. Enter the username cn=Directory Manager and the password that you set during the installation process
  4. Click the "Log In" button

You should now have access to the OpenDJ admin console.

Conclusion

In this tutorial, we have guided you through the process of installing OpenDJ on the latest version of NixOS. After following these steps, you should have a fully operational OpenDJ service running on your NixOS instance.