EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Linux Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=588)
-   -   Easy DIY Linux Install (https://www.eqemulator.org/forums/showthread.php?t=44460)

plesky 10-12-2025 02:01 AM

Easy DIY Linux Install
 
This install involves Current EQEmu source code - Release v23.10.3 and Current Database - db version 9328 (as of Oct 12, 2025)

I put this together for a quick fix for manually installing a server on linux.(no docker/container setup). I use this exact method myself all the time, when installing on a new linux box, except, I compile my own binaries. I've always used Debian, so I have no clue about other flavours. If you're using any virtual or vm environment, I can't help you with any problems that may be related to that. I've never used anything besides a dedicated linux box.

Instructions in the readme include download links, including the EQEmu pre-compiled binaries on their github release. This method has no compiling to do. But at the end of the readme-setup doc, there is instructions for those who want to compile their own binaries in linux (it's easy). But I ran into compile errors with Debian 11, so I upgraded to 12 and problems went away.

First part of putting it together, is using a former linux install shell script from Emu, before it was labeled as "broken". I edited a few lines to comment out dead download links and not continuing on. It installs the basic pre-requisites, (perl, mariadb, libsodium, etc.) and prompts the user for usernames, passwords, etc, just as it used to. It goes as far as creating the /home/eqemu/server folder and the eqemu linux user.

Inside the zip file, is the install.sh file, the readme-setup doc and the install folder. That contains all files needed inside the /home/eqemu/server/ folder, except for maps, but the readme-setup doc has links for any downloads needed.

This has always worked for me, so if you have problems, I won't know what's happening on your end. If you followed every line in the readme-setup doc, you shouldn't have problems. But if you're totally new to linux ...... I have no intentions of tutoring anyone. I'm busy, lol

You can download the zip file here:

https://github.com/user-attachments/...ux_Install.zip

Recommended to unzip in your linux /home/user/ folder and go from there. Important: Not a good idea to edit linux shell scripts (.sh) in windows. The readme doc will explain that.

AFTER EDIT: Sorry, something I should of added in that readme-setup doc. When I start the server, booting up, it may just be a "me" thing, but it takes awhile, sometimes it can make one think it is hanging on part, before it shows zones loading in the terminal window, but it still boots up. That custom start.sh I use works for me, you can close the terminal window after the server is fully booted up.

Good Luck.

......gone fishing .....

rubysoul 10-12-2025 02:10 AM

Thank you! Will try this in the AM after my eyes get some rest!

rubysoul 10-12-2025 01:48 PM

Taking a look at this now. One thing I've noticed, and this would be true of the official install method on Linux, is that it's wanting to install to /home/eqemu. While I could understand this maybe in a server environment and wanting better isolation, it's not something I'm interested in at all for my locally running emu. So I'm basically sitting here dissecting the installer and going to be doing it piecemeal manually so I can install it where I want off of my own home directory instead.

rubysoul 10-12-2025 04:40 PM

Curious, are you not using spire? I also don't see a self hosted login server being used (looks like it's commented out in the installer but maybe I'm overlooking something).

I went a bit different about it. I took the almost running docker and pulled everything out of it into a directory I wanted within my own home directory, replacing all the symlinks with either direct files when there was no other reason for the symlink, or symlink to the appropriate spot in my own directory structure.

The thing I'm struggling with right now is trying to figure out how the docker launches Spire, that and login server the only two things I actually did get going with Docker lmao. I tried the launch command that windows uses for Spire but it's trying to download a non-existent zip file and choking, so obviously I'm not launching Spire the same way the docker is.

rubysoul 10-12-2025 06:09 PM

Grrrr so close! Was able to log in, however world shows down. It let me in anyway, and I was able to create a character. However it shows zones are down and won't let me in game. Trying to track down the last issue to get me across the finish line (minus Spire, but that's less important just running locally alone).

rubysoul 10-12-2025 07:16 PM

Well hmm. Everything is up and running now (had to copy /opt/eqemu-perl out of the docker.. maybe it's a docker specific thing I can work out). The only issue I'm facing now is that it doesn't appear zones are working dynamically. If I launch zone alone, one will launch and then my server does show as 'Up' and I can get into game with everything appearing to be working. Not sure why this is the case.. maybe I'll need to copy the binaries over that are not from the docker, maybe there's something specific about them. Or maybe I still have a weird config issue. Continuing to dig..

rubysoul 10-12-2025 08:23 PM

Hmmm... using the precompiled linux binaries now instead of the ones out of the docker. Still seeing the dynamic zones continuously stop immediately. zone-dynamic log files are empty, unfortunately, so I can't see what is actually causing this. Not sure what to look at.

plesky 10-12-2025 08:32 PM

Quote:

Originally Posted by rubysoul (Post 270874)
Hmmm... using the precompiled linux binaries now instead of the ones out of the docker. Still seeing the dynamic zones continuously stop immediately. zone-dynamic log files are empty, unfortunately, so I can't see what is actually causing this. Not sure what to look at.

Not sure if you caught the "After Edit" in my original post on this thread ?
Other than that, not sure whats happening on your end. When it shows zones "UP" in status, does it show the actual number of zones ?

I forgot you already had docker installed, but I have never installed that, so I know nothing about it, or whether it's creating a conflict.

rubysoul 10-12-2025 08:57 PM

Quote:

Originally Posted by plesky (Post 270875)
Not sure if you caught the "After Edit" in my original post on this thread ?
Other than that, not sure whats happening on your end. When it shows zones "UP" in status, does it show the actual number of zones ?

I forgot you already had docker installed, but I have never installed that, so I know nothing about it, or whether it's creating a conflict.

I have the docker completely shut down while I'm doing this. The only conflict would have been MariaDB on the same port. So it's not that.

Status shows:
PEQ Server
World: DOWN Zones: (0/10) UCS: DOWN Queryserv: DOWN

I'm seeing the following repeatedly every 5-10 seconds or so in the window I run start.sh:
World | Info | ProcessMessage [zone] [dynamic_01] reported state [STARTED] [(2] starts)
World | Info | ProcessMessage [zone] [dynamic_01] reported state [STOPPED] [(2] starts)
World | Info | ProcessMessage [zone] [dynamic_01] reported state [STARTED] [(3] starts)
World | Info | ProcessMessage [zone] [dynamic_01] reported state [STOPPED] [(3] starts)

However, if I manually run a single /bin/zone instance after launching start.sh, then my server does show as 'Up' in server select and I'm able to log all the way into the game. What's weird is that status.sh still shows the same as above, world being down and 0/10 zones even though I can fully log in.

rubysoul 10-12-2025 09:19 PM

One other thing I'll note is that I'm on Ubuntu 24.04. There were a few packages that couldn't install, not sure if that's related, but I'm literally not seeing any actual errors and manually starting the zone works fine. The only one I directly recall not working is libsodium18.

sudo apt-get install libsodium18
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package libsodium18 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libsodium18' has no installation candidate

rubysoul 10-12-2025 09:36 PM

FYI a temporary solution for now is that I can replace the eqlaunch section in your start.sh file and (albeit hacky) everything works for now. Maybe we'll get the official installer back available soon.

#if test -f "./bin/eqlaunch"; then
# ./bin/eqlaunch zone &
#fi

if test -f "./bin/zone"; then
./bin/zone &
./bin/zone &
./bin/zone &
./bin/zone &
./bin/zone &
./bin/zone &
./bin/zone &
./bin/zone &
./bin/zone &
./bin/zone &
fi

plesky 10-12-2025 10:45 PM

Quote:

Originally Posted by rubysoul (Post 270876)
World | Info | ProcessMessage [zone] [dynamic_01] reported state [STARTED] [(2] starts)
World | Info | ProcessMessage [zone] [dynamic_01] reported state [STOPPED] [(2] starts)
World | Info | ProcessMessage [zone] [dynamic_01] reported state [STARTED] [(3] starts)
World | Info | ProcessMessage [zone] [dynamic_01] reported state [STOPPED] [(3] starts)

Here's a common issue causing that starts/stopped thing with zones. The /server/plugins and /server lua_modules folders are also in the /server/quests folder.
All of that contained the most updated version, which it all has to match as well. (/server/plugins/ and /server/lua_modules) has to match the /server/quests/plugins and /server/quests/modules/ (all updated)

I just went through that not long ago with the starts/stopped errors. After all it was updated, the errors went away.

Edit: By the way, that "Install" folder with the zip file I posted, is an exact copy of my linux test server, using Current EQEmu source code - Release v23.10.3 and Current Database - db version 9328 (that was created, using that install.sh script)

rubysoul 10-13-2025 12:25 AM

Quote:

Originally Posted by plesky (Post 270879)
Here's a common issue causing that starts/stopped thing with zones. The /server/plugins and /server lua_modules folders are also in the /server/quests folder.
All of that contained the most updated version, which it all has to match as well. (/server/plugins/ and /server/lua_modules) has to match the /server/quests/plugins and /server/quests/modules/ (all updated)

I just went through that not long ago with the starts/stopped errors. After all it was updated, the errors went away.

Edit: By the way, that "Install" folder with the zip file I posted, is an exact copy of my linux test server, using Current EQEmu source code - Release v23.10.3 and Current Database - db version 9328 (that was created, using that install.sh script)

Hmmmm, something to look at I suppose. I *think* I did those right via symlinks. From the root of the "server" folder (mine is just called "eqemu" in an "apps" folder off my own home directory):


lua_modules -> ./quests/lua_module
plugins -> ./quests/plugins

Maybe they're not up to date, though I pulled them from the docker. I can try updating the physical folders before I try messing with the symlinks. Definitely something to look at though, thanks!

EDIT: Yeah, I just did a comparison and the actual files in both of those folders are identical to the ones in your installer folder. I'll keep playing with it.

plesky 10-13-2025 12:43 AM

Quote:

Originally Posted by rubysoul (Post 270880)
EDIT: Yeah, I just did a comparison and the actual files in both of those folders are identical to the ones in your installer folder. I'll keep playing with it.

That original install.sh (back when it was active) was technically advised to use on a clean linux box. That install folder in my zip download is an exact copy of this:
*Except maps folder needs to have maps downloaded. Everything else needed is there. (except symlinks) This is a screenshot of my test server folder, (from my terminal gui).

https://i.ibb.co/tTVfFcx9/server-folder.jpg

rubysoul 10-13-2025 01:15 AM

Quote:

Originally Posted by plesky (Post 270881)
That original install.sh (back when it was active) was technically advised to use on a clean linux box. That install folder in my zip download is an exact copy of this:
*Except maps folder needs to have maps downloaded. Everything else needed is there. (except symlinks) This is a screenshot of my test server folder, (from my terminal gui).

https://i.ibb.co/tTVfFcx9/server-folder.jpg

Oh interesting, the docker had the executables all in a "bin" folder. Let me restructure things to mirror yours.

EDIT: Actually.. I'm wondering if yours is an old way of structuring it? I just checked and my previous Windows install that still works had all the executables in a bin folder, too.

rubysoul 10-13-2025 01:21 AM

One other thing I noted - I actually have newer opcodes and patches than you. Mine have a few more entries making the files slightly larger.

plesky 10-13-2025 01:27 AM

Quote:

Originally Posted by rubysoul (Post 270882)
Oh interesting, the docker had the executables all in a "bin" folder. Let me restructure things to mirror yours.

EDIT: Actually.. I'm wondering if yours is an old way of structuring it? I just checked and my previous Windows install that still works had all the executables in a bin folder, too.

The executables ARE in a bin folder. (as per readme-setup doc) Those are symlinks in the screenshot (not included in the "install" folder

rubysoul 10-13-2025 01:30 AM

Quote:

Originally Posted by plesky (Post 270884)
The executables ARE in a bin folder. (as per readme-setup doc) Those are symlinks in the screenshot (not included in the "install" folder

Ahhhh gotcha! I modified your calling scripts to call in the bin folder haha.

rubysoul 10-13-2025 01:43 AM

https://imgur.com/a/NeKRwlu

https://imgur.com/a/NeKRwlu

This is how I did it since I wanted the installation self-contained like the windows version. I didn't want the separate eqemu user nor that folder.

(I can't see the image and I'm not sure why so I pasted the url too)

(also ignore bin-docker, it's just a backup of the executables built in the docker, I'm running the precompiled ones now)

plesky 10-13-2025 01:44 AM

You can technically setup the bin folder anywhere, put the executables inside it, as long as your symlinks point to them. One time, I created a bin folder, right inside the server folder and put them in there to run them.

In the original linux install, it created a /home/eqemu/server_source and /home/eqemu/server_build (which also created a bin inside of that) when the binaries were compiled.

If you follow the instructions for compiling, at the end of that readme-setup, whatever build directory is used for compiling, it will create a bin folder there.

rubysoul 10-13-2025 01:49 AM

Quote:

Originally Posted by plesky (Post 270887)
You can technically setup the bin folder anywhere, put the executables inside it, as long as your symlinks point to them. One time, I created a bin folder, right inside the server folder and put them in there to run them.

In the original linux install, it created a /home/eqemu/server_source and /home/eqemu/server_build (which also created a bin inside of that) when the binaries were compiled.

If you follow the instructions for compiling, at the end of that readme-setup, whatever build directory is used for compiling, it will create a bin folder there.

Yep, that's how the docker runs it. Too bad the docker itself didn't work, either, but I won't get into that in this thread lol. I'll probably just end up going back to creating the 10 zones manually for now. I really can't figure out where the hickup is at this point and I feel like I've checked virtually everything.

plesky 10-13-2025 02:01 AM

Quote:

Originally Posted by rubysoul (Post 270888)
Yep, that's how the docker runs it. Too bad the docker itself didn't work, either, but I won't get into that in this thread lol. I'll probably just end up going back to creating the 10 zones manually for now. I really can't figure out where the hickup is at this point and I feel like I've checked virtually everything.

I would assume, the biggest hurdle in anyone creating a full install script for linux, would simply be having solid download links for the installer. When I was having problems compiling current code in debian 11, there was updates needed that I couldn't get from debian repo anymore, I had to upgrade to debian 12 to get what I needed for a smooth compile. (debian 11 is fading into the woodwork), lol

The docker install, I "think" was created by that Akkadius that left recently. I'm not sure.

rubysoul 10-13-2025 02:09 AM

Quote:

Originally Posted by plesky (Post 270889)
I would assume, the biggest hurdle in anyone creating a full install script for linux, would simply be having solid download links for the installer. When I was having problems compiling current code in debian 11, there was updates needed that I couldn't get from debian repo anymore, I had to upgrade to debian 12 to get what I needed for a smooth compile. (debian 11 is fading into the woodwork), lol

The docker install, I "think" was created by that Akkadius that left recently. I'm not sure.

Yep, it was. Someone updated the docker 2 weeks ago to "fix all the links". Maybe something isn't quite right with it still.

I've only worked with Ubuntu personally. That was the last thing I could think of, that maybe this one quirk is related to running the newer 24.04, but who knows at this point lol.

rubysoul 10-13-2025 02:21 AM

Ok, I got it working. I gotta own this one lol.

Creating the symlinks in the root of the installation, pointed at the bin folder right there in the installation, fixed the problem.

I didn't think this could actually be the problem because everything else worked, but I was wrong. The only thing that makes any sense to me is I saw a snippet somewhere, not even related directly to this problem, where someone mentioned the executable point needs to be in the same folder as the eqemu_config.json file. I guess I proved everything else EXCEPT the dynamic zones works thru just a reference of the original calling folder lol. Oh well, it's fixed! Thanks for dealing with me LOL.

plesky 10-13-2025 02:31 AM

Someday, maybe I will go to work on that install.sh script to turn it into a full auto-install, but I would need to secure download file links for it. It's still the original install script, all I did was edit a few lines to compensate for manual setup. Originally, in the script, it would download the eqemu_server.pl which the script would call at the end of it. So a big part of the install was in that .pl file

If I could get my hands on that original eqemu_server.pl file it would help build a new script. But the current one available is blank.

rubysoul 10-13-2025 02:51 AM

Quote:

Originally Posted by plesky (Post 270892)
Someday, maybe I will go to work on that install.sh script to turn it into a full auto-install, but I would need to secure download file links for it. It's still the original install script, all I did was edit a few lines to compensate for manual setup. Originally, in the script, it would download the eqemu_server.pl which the script would call at the end of it. So a big part of the install was in that .pl file

If I could get my hands on that original eqemu_server.pl file it would help build a new script. But the current one available is blank.

This?

https://github.com/kevman5/Eq-Emulat...qemu_server.pl

plesky 10-13-2025 02:53 AM

Quote:

Originally Posted by rubysoul (Post 270893)

Ya, but that one is blank too, lol

rubysoul 10-13-2025 03:01 AM

Quote:

Originally Posted by plesky (Post 270894)
Ya, but that one is blank too, lol

Which part? That link is a 2807 line file for me, unless it's a url in that file that you're talking about.

Another link, think this one is direct from Akk:

https://github.com/EQEmu/Server/blob...qemu_server.pl

plesky 10-13-2025 03:20 AM

Ok, I was having probs viewing the files right on github, but I downloaded it and YES, that's the file I need. Last time I did a windows install, (long ago) it downloaded a blank eqemu_server.pl file. Even the one's in my windows servers, have a blank one. But I think the installer gets it from elsewhere

But it's obviously still available. I just kept seeing a blank file on the github, must be my browser, lol

plesky 10-13-2025 03:37 AM

In the source github changelog it shows:

### Deprecation

* Remove eqemu_server.pl script and ties to server ([#4049](https://github.com/EQEmu/Server/pull/4049)) @Akkadius 2024-02-10

Obviously the modern code had no use for it anymore. It was also used for updates, etc, previously.

rubysoul 10-13-2025 09:04 AM

Also, after a sleep, I remembered that I did have a copy of the file but Defender kept deleting it. Not sure why it didn't delete the ones I just downloaded. And yes, I also found that note that it was no longer needed. In Windows now, this gets executed from start bat and seems to do a similar process now.

spire.exe eqemu-server:launcher start

I'll also note that the docker image is effectively a linux install and no longer relies on that file, either. So there's a newer way of doing this, even if we still have a copy of the pl file (keeping in mind that I haven't yet gotten the docker fully up and running, but everything does appear to be downloaded and installed).

plesky 10-13-2025 11:31 AM

As it stands now, there is no official windows or linux installer. The windows installer on the docs site, that has a new host is infested with dead links for installs.
https://docs.eqemu.dev/server/instal...ation-windows/

I have all the files I needed to get things put together and created repos to host the files used for the older install method. Have a few more uploads and finish with the links in the script files, but after I am done, the full install should work for both windows and linux. It just won't have the modern docker/spire stuff installed, and I'm not interested in digging into that, lol

Most of the links in the script that needed altered are the variable download links for anything that disappeared recently. Any links pointing to files on the main EQEmu github in that eqemu_server.pl script are still active. But, I'll work more on it later tonight.


All times are GMT -4. The time now is 06:49 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.