Skip to main content

Required Software

  • Updated OS
  • Java
  • MariaDB (or MySQL)
  • Git

Update the OS

sudo -i
dnf update

Get & Install Java

L2J is built using Java, to build you need Java JDK as well.

dnf install -y temurin-21-jdk

Check the Java version:

java --version

openjdk 21.0.2 2024-01-16 LTS
OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)

If you have multiple versions, you can configure them by using alternatives:

update-alternatives --config 'java'
info

We recommend updating the JAVA_HOME environment variable.

info

As long as it's possible, L2J will be compatible with the latest LTS (Long-Term-Support) version of Java, you can check the roadmap for Java SE here.

Get & Install Git

L2J uses Git as version control system on BitBucket, use it to get the latest versions.

dnf install -y git

Check the Git version

git --version
info

We recommend getting the source code directly from our public repositories.

Get & Install the Database Server

Download and install a database server and create a specific user.

dnf install -y mariadb-server

Start the service

systemctl start mariadb

Secure your database installation:

mysql_secure_installation

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
... Success!

Change the root password? [Y/n] n
... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Execute the following SQL statements to create a L2J specific database user:

mariadb -u root -p
create_user.sql
CREATE OR REPLACE USER 'l2j'@'%' IDENTIFIED BY 'l2jserver2019';
GRANT ALL PRIVILEGES ON *.* TO 'l2j'@'%' IDENTIFIED BY 'l2jserver2019';
FLUSH PRIVILEGES;
exit
danger

We recommend changing the default database password. If you do it, you need to edit server.properties files inside the game server config folder and the login server config folder.

tip

We recommend (optionally) downloading and installing HeidiSQL or DBeaver to manage the database.

info

L2J is compatible with MySQL 8.0+, but we recommend MariaDB.

[Optionally] Install Unzip

Unzip utility will be used later on to deploy the compiled server files.

apt install -y unzip