Installation
This is meant to be a rudimentary guide for getting you started with LIMA. Instead of building it directly on Windows, we recommend using Windows Subsystem for Linux or a virtual machine if you do not have a Linux Server available. These come cheap from most Linux hosting companies.
Requirements: 1 Gb of memory and 1 Gb of disk should be plenty.
See https://www.fluffos.info/build.html for more options for building FluffOS.
Windows Subsystem for Linux (WSL)
Open a Powershell or command prompt on Windows and do
wsl --list --onlineto see which distributions are available for your Windows system.
Install Windows Subsystem for Linux - we recommmend Ubuntu, but up to you. Make sure to enable Windows Subsystem for Linux (Google this if you have WSL issues). You should not need to use administrator on your PC:
wsl --install -d UbuntuStart the wsl. Could be done with simply pressing your windows key and searching for “ubuntu” or “debian”, and clicking the icon. You might need to restart Windows after installing WSL.
Set a username and a password for your Linux:
Update apt, and install packages needed for compiling FluffOS
sudo apt update
Then install prerequisites for Ubuntu:
sudo apt install build-essential bison libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libz-dev libjemalloc-dev libicu-dev cmake git
or for Debian:
sudo apt install build-essential bison libmariadb-dev libmariadb-dev-compat libpcre3-dev libpq-dev libsqlite3-dev libssl-dev zlib1g-dev libjemalloc-dev libicu-dev cmake git
(These packages are prone to change, so modify as needed - it is not possible to keep chasing changes in versions and package names)
Clone LIMA sources from github:
git clone https://github.com/limalib/lima.git --recurse-submodules -b stable(stable)git clone https://github.com/limalib/lima.git --recurse-submodules(development)
Use –recurse-submodules to checkout the fluffos driver submodule. You can decide not to and use another driver if you want. LIMA comes with a build script after checking out the files:
cd lima/adm/dist./rebuildLots of output will follow, and the final screen will say something like:
- If you get complaints about missing dependencies here, try to install them via
apt installor useapt searchto find them. sudo apt install libssl3(Just an example)
- If you get complaints about missing dependencies here, try to install them via
After build has completed, try:
./runYou might see a few warnings, but should be able to telnet to localhost 7878 (or use Mudlet from https://www.mudlet.org/). It is also possible to set up your MUD to use Websockets and then visit http://localhost:7878/ in your favourite browser. This can be reconfigured in the
config.mudin the adm/dist directory of LIMA.
Ubuntu
Same as above, except you can skip directly to step 4.
Apache TLS Setup
To setup FluffOS with a secure, encrypted connection, it will be useful to have an Apache with a TLS setup. The next section will describe how to use these certificates with FluffOS.
Connect as root user:
ssh root@domain-name
- Setup Certbox:
snap install coresnap refresh coresnap install --classic certbotln -s /snap/bin/certbot /usr/bin/certbot
Utilize the LDMud deploy hook (which works equally well for FluffOS) to automatically copy renewed certs into mudlib directory:
mkdir -p /etc/letsencrypt/renewal-hooks/deploy/curl -o /etc/letsencrypt/renewal-hooks/deploy/fluffos-hook \https://gist.githubusercontent.com/cpu/bec1601816db34bb8c9efeb3f78b37c5/raw/c73c7a0b5ce47318710227d25defcf5ae38fc209/ldmud-hook.pychmod +x /etc/letsencrypt/renewal-hooks/deploy/fluffos-hook
Adjust the line for certs_path in /etc/letsencrypt/renewal-hooks/deploy/fluffos-hook to point to where TLS certificates will be stored in the mudlib. For example:
certs_path = f"{mud_home}/lib/secure/etc/tls"
- Then:
certbot --apache
https://domain-name should nowconnect and display.
FluffOS TLS Setup
Seed initial certificates to mudlib:
certbot --force-renewal
- If it doesn’t work, you can manually set up the initial files:
cp /etc/letsencrypt/live/`Server Domain Name`/fullchain.pem ~mud/game/lib/secure/etc/tls/`Server Domain Name`.crtcp /etc/letsencrypt/live/`Server Domain Name`/chain.pem ~mud/game/lib/secure/etc/tls/`Server Domain Name`.issuer.crtcp /etc/letsencrypt/live/`Server Domain Name`/privkey.pem ~mud/game/lib/secure/etc/tls/`Server Domain Name`.keychown mud:mud ~mud/game/lib/secure/etc/tls/*.pem- Adjust mudlib config:
nano lima/adm/dist/config.mud- Add a telnet port with TLS, pointing to the certificates from the previous step:
external_port_2: telnet 7890- or whichever port you wantexternal_port_2_tls: cert=secure/etc/tls/`Server Domain Name`.crt key=`Server Domain Name`.key
More details on this at https://github.com/michaelprograms/fluffos-tutorial.