Jan 29, 2015, 12:08 AM

Intro

This is one way to get yourself started with a MUX and a wiki. I'll include a particular hosting company, domain name company and server setup. I do not think this setup is necessarily superior to any other combination of the above, but it is what I use personally, what was used for MSB and for at least one other MUX. Please feel free to substitute out any of the following for your own setup considerations.

Server

We use digitalocean.com for MSB and they have a simple server setup that includes mediawiki out of the box. Their smallest plan gets you a good basic setup with plenty of space for $5 bucks. If you decide to use digital ocean, please consider using my referral link: https://www.digitalocean.com/?refcode=cc025ed46a11.

Once you have an account created, the following tutorial will walk you through setting up your new server and mediawiki: Digital Ocean Mediawiki Tutorial

Domain

Now it's time to select a name. I use namecheap.com for my domains, but you can, once again, use any domain hosting service. They offer free whois protection for a year (and then a cheap rate after that). Whois protection keeps your registration information private, such as real name and address. After purchasing a suitable domain, use the following short tutorial to setup the nameservers for your domain: Nameserver setup on namecheap

For our purposes, you will want to use the following nameservers:

ns1.digitalocean.com
ns2.digitalocean.com

If you are not using digital ocean, find out the nameservers offered by your hosting company and use those instead.

Now back to digital ocean where you will follow this tutorial skipping straight to Step 3 and stopping at A record (unless you plan to add subdomains).

Server Interlude

Before we continue, I'd like to get some server stuff out of the way. This step is recommended, but optional.

If you're running linux, use terminal so we can ssh to your server. If you're on Windows, download a program called kitty which will similarly allow you to ssh to your server. You will use the username and password provided by digital ocean to connect to the IP address of your server (found in your droplets list).

Once connected, we're going to create a new user that isn't root.

adduser <username>

This will put you through a simple question/answer creation script. It's unnecessary to fill out any of the information other than the password, but it will create everything you need for a user.

Next, we want to give this new user sudo permissions. This allows your new user to run commands as root when necessary.

adduser <username> sudo
useradd -G www-data <username>

Now, the next time you log in with this user, which you should be using from now on, you will have sudo privileges.

Wiki Settings

After your domain is pointing to the right place, you'll want to do the following to make sure the domain name you want shows in the url bar when wiki handles its redirecting:

Log in to your shell with ssh or kitty, then:

cd /var/www/html
vi LocalSettings.php

This will open up an editor called vi. The commands are a little different to use, so you can use whatever editor you might be familiar with. Or follow this directly:

Hit i to enter insert text mode.

Go down to the following line (where you will see your own IP):

$wgServer = "http://104.236.219.143";

And replace it with your domain name:

$wgServer = "http://atfmux.com";

Once you've done so, hit :wq! (that's colon, then "wq!") and you should be all set with this step!

PennMUSH

This is a pennmush install that comes with @Volund's basic build-out, basically a complete game except for chargen. You can check out his repo at github for installing nwod, nwod2 and exalted 3e.

So you've completed your mediawiki install and you've copied down the mysql root password (it is displayed to you when you first ssh into the server). Ssh into your server and do the following, I'll be using <user> to denote the user created in the Server Interlude section.

sudo apt-get update
sudo apt-get install git
cd /var/www
sudo git clone https://github.com/pennmush/pennmush.git
sudo chown -R <user>:<user> pennmush

Now for setup of pennmush itself:

sudo apt-get install libmysqlclient-dev
cd pennmush
./configure
make update
make install

Make update will ask you a couple of questions, you can just hit enter through them.

Now, because Volund's job system uses mysql, we have to do a little extra tweaking. Log into mysql with root and the password provided to you when you first ssh in to your server.

mysql -u root -p

This will prompt you for the password. Enter it. If everything is successful you'll see a mysql> prompt. Enter the following commands, but remember to change password to something unique!

mysql> CREATE database mush;
mysql> GRANT USAGE ON *.* TO mush_user@localhost IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON mush.* TO mush_user@localhost;

Just type exit to exit out.

Now, to get the preinstalled mush db:

cd game
wget http://musoapbox.net/volund-penn.tar.gz
tar xzvf volund-penn.tar.gz

Then edit your mush.cnf file, make sure instead of password, you use the password you just made in mysql:

mud_name Your MUSH Name
sql_database mush
sql_username mush_user
sql_password password

Finally, do a ./restart and your game is up and running on port 4201!

Use your favorite telnet client to connect. The code wizard is Three, password is wl9y@tx$he. You should only do code install on this wizard bit. As for the #1 bit, it is One with the password s00telk1!alw.. Make sure to change these!

TinyMUX

Okay, your server is up, your domain name is purchased and we've redirected it to your new server. Now we wait for domain name resolution (can take up to 48 hours, but rarely takes that long). While we're waiting, lets setup our MUX.

As described in the Server Interlude step, open up an ssh connection to your server. Your mediawiki install is in the directory /var/www/html. We'll be putting your mux one level below that. So first, lets install git, which we'll use to grab tinymux:

sudo apt-get install git

It may ask you for your password (because you're using your newly created user, right?), so go ahead and enter it. After that, your screen will scroll with some info and offer a final [Y/n] option. Hit Y to continue.

After it's installed:

cd /var/www
git clone https://github.com/brazilofmux/tinymux.git

This will make a tinymux folder in /var/www. Next we will install tinymux.

cd tinymux/src
./configure --enable-stubslave --with-mysql-include=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql --enable-inlinesql

There are other configuration options you may include:
--enable-memorybased See docs/MEMORY.
--enable-realitylvls See REALITY and REALITY.SETUP.
--enable-wodrealms See docs/REALMS.
--enable-ssl See SSL.

This will take a little time, but once done, then we:

make depend
make
cd ../game

And our final step:

./Startmux

Your MUX is now up and running at your IP Address on port 2860. There are many mux configuration changes you can make, but we'll leave that for another tutorial.

For a starter setup, @Rook has provided an initial setup to make your life easier that can be found here.

Know how to improve this? Let me know and I'll update it! Questions or Problems? Please let me know!