I made some modifications to the LeaderMS-English branch of the codebase so it builds and runs in Docker.
Github:
You must be registered to see links
Setup should be minimal. Set the `channel.net.interface` to the host IP address (on Windows, ipconfig to get the WSL interface) and modify a localhost client. Then `docker-compose build` and `docker-compose up` to bring the server online.
I had remove and modify quite a bit of code,
You must be registered to see links
. A summary of changes:
- Removed SSL and Java keystores because they did not include passwords and are not conducive to reproducible builds. Networking between nodes happen within a private network anyways.
- Split up the myphpadmin dump into a main script and data files. Moved constraints into the table definition and changed the DML to be a CREATE IF NOT EXISTS so the script can be run on subsequent reboots. Removed useless tables.
- Added Maven configuration for builds and removed included jars.
- Configured launch scripts to use Maven exec, which handles setting the classpath. Did you know that Java RMI and the default Maven process in `mvn exec:java` are not compatible? Neither did I.
- Fixed various bugs in server execution (timestamp incompatibilities, RETURN_GENERATED_KEYS, proper channel instead of 0.0.0.0, various null pointer issues).
- A docker-compose file configured with mysql (with a persistent volume), adminer for database administration, world, login, and channel servers.
- Formatting of the codebase using prettier and spotcheck and verification during build.
- Removal of lords(?), pvp, and other bits of dangling code.
This was an educational experience, but never had I had more code spaghetti in one sitting. Alongside the server feeling much slower to another source I've played with, it looks like there are some basic issues with the first job advancement and a lot of custom features. I'm not going to spend much more time with this one. I'm moving on to dockerize the
original author's latest project EllinMS next. If you find any egregious bugs with the setup, I'm more than happy to give some pointers as the last person to have touched this. Here lie dragons, best of luck playing with this.