diff --git a/README b/README deleted file mode 100644 index dfedea1..0000000 --- a/README +++ /dev/null @@ -1,96 +0,0 @@ -Legacy Worlds Beta 5 source code ---------------------------------- - - -1. Introduction - -This file contains information regarding the source code release for Legacy -Worlds Beta 5 - how the source code is organised and how it may be used. - -For licensing information, please read the COPYING file. For the list of -contributors, please read the AUTHORS file. For stuff that could be done -considering one had a lot of time to waste, please read the TODO file. - -The official SVN repository for the LWB5 code can be found at: -* https://lwb5.svn.deepclone.co.uk (IPv6 users) -* https://secure.nocternity.net/deepclone.co.uk/svn/lwb5/ (IPv4 users) - - -2. Organisation of the source code - -... admin/ Administration interface scripts -... ircbot/ IRC bot -... ircbot/modules/lw/ LWB5-specific code for the IRC bot -... manual/ Source code (as XML) of the LWB5 manual -... misc/ Various optional elements -... planetgen/ Planet generator source code -... scripts/ Scripts that implement most of the game -... scripts/game/ Back-end scripts -... scripts/lib/ Core library -... scripts/site/ Web front-end -... site/ Root directory of the public part of the site -... site/static/ Images, CSS and JavaScript elements -... sql/ Database creation scripts - - -3. Requirements - -In order to run Legacy Worlds, you will need the following software: - -* Apache + PHP 5.2 -* (optional) a PHP opcode cache -* PostgreSQL 8.3 or higher -* the POVRay raytracer (used for planet generation) - - -4. Installing and running LWB5 - -These instructions may be erroneous on some points, as I didn't bother to try -and re-install it myself. - -* Set the database users' passwords in sql/00-init.sql - -* (optional) Modify sql/30-beta5.sql to select the games that will be created -on initialisation. - -* Create the database by running sql/INSTALL.sql - -* Create an administrative user in the main.account table - -* Create some system users for the various parts of the LWB5 backend: -** user "lwbot"; when su'd to, this user should start the IRC bot, -** user "lwticks"; when su'd to, this user should start scripts/ticks.php -** user "lwproxy"; when su'd to, this user should start scripts/proxycheck.php - -* In addition to the above users, the planet picture generator should run with -privileges allowing it to write to subdirectories of site/static/beta5/pics/pl/ - -* Modify scripts/config.inc and scripts/legacyworlds.xml -** Also modify ircbot/bot.conf to have the bot connect to a server - -* Set up the web server: -** the main site should use the site/ directory, -** the administration interface should use the admin/ directory; it should be -protected using HTTP authentication. - -Once the installation is complete, it is possible to start (most of) the game -by running scripts/control.pl with the --start command line argument. However, -the planet generator script has to be started manually. - - -5. The misc/ subdirectory - -The misc/ subdirectory contains two things: -* the source code of the MacOS dashboard widget, -* the "forums branch" patch. - -The forums branch patch has been created by doing a very quick and dirty merge -of an old development branch that was mostly abandoned; it contains some -improvements on the core library - notably a class to prepare database queries -and some other improvements in the DB query API. Of course, it also includes an -incomplete rewrite of the in-game forums. - -Because I had to merge the branches to generate the patch, and because I didn't -bother with testing it, the patch is likely to break a lot of things. However -it may be a good starting point for improving the LWB5 code. See the TODO file -for more information. diff --git a/README.md b/README.md new file mode 100644 index 0000000..3371e0d --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +Running LegacyWorlds Beta 5 in 2025 +=================================== + +This repo contains an attempt at running +[LWB5](https://git.nocternity.net/tseeker/lwb5) on a modern system. It is +based on Docker Compose, using three containers: + + * a PostgreSQL 17 container for the database, + * a container for the game and its administration interface, + * a final container that runs the planet picture generator. + +The open proxy scanner as well as the IRC bot were removed as they do not +really make sense on the modern internet. + +It is very likely to be broken in some areas because the code is outdated and, +while I fixed the most obvious problems, outdated syntax is likely to be hiding +in a few other places. + +Running the game +---------------- + +In order to run LWB5, you have to: +- copy `docker/env.example` to `docker/.env` and edit the resulting file, +- start the application by running `docker compose up -d` inside the `docker/` + directory, +- access the administration interface, which will be exposed on port 81, +- go to the `Ticks` page in the `Server management` section, +- select the `universe` tick for the `beta5` game and run it, +- now access the game itself on port 80 and log on using the administrative + account configured in the `.env` file, +- go to `My account` and join the `Public Beta 5` game, +- go to the game's `Admin` page, +- click the `Manual update` link and wait. + +Running the `universe` tick will start the planet picture generator. However, it +will take a while to run, so you'll see missing planet pictures until it's done +running.