# Installation on Debian/Ubuntu with packages

## Organization

LemonLDAP::NG provides these packages:

- lemonldap-ng: metapackage, contains no file but dependencies on other packages
- lemonldap-ng-doc: contains HTML documentation and project docs (README, etc.)
- lemonldap-ng-fastcgi-server: LL::NG FastCGI server (for Nginx)
- lemonldap-ng-fr-doc: French translation for HTML documentation
- liblemonldap-ng-common-perl: configuration and common files
- liblemonldap-ng-handler-perl: Handler files
- liblemonldap-ng-manager-perl: Manager files
- liblemonldap-ng-portal-perl: Portal files

## Get the packages

### Official repository

If you run Debian testing or unstable, the packages are directly installable:

    apt-cache search lemonldap-ng

Packages from Debian repository may not be up to date. Prefer then the other solutions (see below).

### LL::NG repository

You can add this repository to have recent packages:

    vi /etc/apt/sources.list.d/lemonldap-ng.list

    # LemonLDAP::NG repository
    deb     https://lemonldap-ng.org/deb stable main
    deb-src https://lemonldap-ng.org/deb stable main

- Use the `oldstable` repository to get packages from previous major version
- Use the `testing` repository to get packages from next major version
- Use the `1.9` repository to avoid upgrade to next major version

You may need to install this package to access HTTPS repositories:

    apt install apt-transport-https

### Manual download

Packages are available on the Download page.

## Package GPG signature

The GPG key can be downloaded here: rpm-gpg-key-ow2

Install it to trust packages:

    wget -O - https://lemonldap-ng.org/_media/rpm-gpg-key-ow2 | apt-key add -

Update cache:

    apt update

## Install packages

### With apt

    apt install lemonldap-ng

### With dpkg

Before installing the packages, install dependencies.

Then:

    dpkg -i liblemonldap-ng-* lemonldap-ng*

## First configuration steps

### Change default DNS domain

By default, DNS domain is `example.com`. You can change it quick with a sed command. For example, we change it to `ow2.org`:

    sed -i 's/example\.com/ow2.org/g' /etc/lemonldap-ng/* /var/lib/lemonldap-ng/conf/lmConf-1.js /var/lib/lemonldap-ng/test/index.pl

### Reload virtual host

To allow the manager to reload the configuration, register the reload virtual host name in the hosts of the server:

    echo "127.0.0.1 reload.example.com" >> /etc/hosts

Adapt the reload virtual host name to the domain you configured.

### Upgrade

If you upgraded LL::NG, check all upgrade notes.

### DNS

Configure your DNS server to resolve names with your server IP.

For tests with `example.com`, launch the following :

    cat /etc/lemonldap-ng/for_etc_hosts >> /etc/hosts

Follow the next steps

## File location

- Configuration is in /etc/lemonldap-ng
- LemonLDAP::NG configuration (edited by the Manager) is in /var/lib/lemonldap-ng/conf/
- All Perl modules are in the VENDOR perl directory (/usr/share/perl5/)
- All Perl scripts/pages are in /var/lib/lemonldap-ng/
- All lemonldap-ng tools are in /usr/share/lemonldap-ng/bin/
- All static content (examples, CSS, images, etc.) is in /usr/share/lemonldap-ng/
- Apache configuration files are in /etc/lemonldap-ng and linked in /etc/apache2/sites-available

## Build your packages

You can also get the LemonLDAP::NG archive and make the package yourself:

    tar xzf lemonldap-ng-*.tar.gz
    cd lemonldap-ng-*
    make debian-packages