Prepare the Linux Machine.
For this Example I will be using Debian 12. You can User physical hardware, setup a VM or use a cloud VPS provider.
Set static of your VM if not done so by default
Allow Root SSH, you can choose your own adventure on this but for my install this is what I am doing.
You can SSH in at this point or depending on your setup do this by hand.
apt update
apt upgrade
apt install sudo
sudo dpkg --add-architecture i386; sudo apt update; sudo apt install curl wget file tar bzip2 gzip unzip bsdmainutils python3 util-linux ca-certificates binutils bc jq tmux netcat-traditional lib32gcc-s1 lib32stdc++6
curl -fsSL https://deb.nodesource.com/setup_21.x | bash - &&\ apt-get install -y nodejs
npm install gamedig -g
npm update -g
npm list -g gamedig
su - jk3server
Once the Linux is prepared we need to acquire the current files.
There are 4 Ways we will cover to get the files.
Purchase Them on GOG or Steam. These files will be updated and patched.
or
Use your own classic disks or download .ISO of the disk. If you use a disk based install you must update to version 1.1 prior to doing any of this. Orgional Update Files can be found here.
https://jkhub.org/files/file/73-jedi-academy-patch-pc/
Go though your installer of choice.
In my case I will cover stream but really any of the above should work just changing the bottom directory.
C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData
You can do this on Windows, Linux, Mac but you will use an SSH/FTP program to get to your target directory in linux. There are verious other ways you could do this but for this purpose we ill be using WINSCP.
Copy the entire content of the GameData Folder to the users home folder on the linux box.
Using WINSCP I will in this case be using /home/jk3server/JA/GameData
Now you can use wget to pull these files or in my case because I am already setup to do it. Use winscp to pull down and extract them into the Game Date Directory, overwriting all the content
https://github.com/JACoders/OpenJK/releases
https://github.com/JACoders/OpenJK/releases/download/latest/OpenJK-linux-x86_64.tar.gz
https://github.com/JACoders/OpenJK/releases/download/latest/OpenJK-linux-x86_64.tar.gz
./openjkded.x86_64 +set fs_game gamedata +set dedicated 2 +exec server.cfg
Here is something that is undermentioned & under documented
Inside the GameData folder on all OS is a folder named base. The server.cfg files must be inside the base folder .That is it. You can not manually override it’s location to save your life on any OS.
This Error means you have created the server.cfg file in a directory other then base.
couldn’t exec server.cfg
Here is an example of it but by all means make it from scratch. It just needs to be there.
Looks at all the documentation, plenty of help getting a config file how you like it. Just Server Admin beware you must have it in that folder. You set your rcon password there, game time, server name ect.
Login as root, or exit back to root or add a SUDO for a chmod
chmod –R 777/home/jk3server/JA
./openjkded.x86_64 +set fs_game gamedata +set dedicated 2 +exec server.cfg
Now if we have done all this above correctly ^ it will be running but this is a dedicated server guide so lets make it a service.
sudo nano /etc/systemd/system/openjk.service
[Unit]
Description=OpenJK Server
After=network.target
[Service]
User=jk3server
Group=jk3server
ExecStart=/home/jk3server/JA/GameData/openjkded.x86_64 +set fs_game gamedata +set dedicated 2 +exec server.cfg
WorkingDirectory=/home/jk3server/JA/GameData
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable openjk
sudo systemctl status openjk
reboot
That is it. Now each time your Debain 12 server starts it will auto run JK3. Enjoy!