Ixtabay's Yet Another Debian ServUO Tutorial

  • Views Views: 1,073
  • Last updated Last updated:
  • Originally written by Ixtabay. Captured from google webcache of old tutorial system, original formatting, images, and attachments may not be preserved.

    Yet Another Debian ServUO Tutorial

    Summary of the tutorial

    This is Yet Another Debian ServUO Tutorial
    The aim of this guide is to help you get ServUO up and running on an extra computer at home.
    **Note, both your Server and USB will be wiped in this process. If you value any data on these devices, back it up before you start**
    Download Rufus and Debian, install PuTTy and WinSCP.
    Use Rufus to make your USB drive bootable with the Debian ISO
    Insert your newly created bootable USB into your server and boot to it
    Install Debian
    During the process, you will name your server, set the domain, your root password, create a user, choose language, etc.
    When you get to the end of the process **uncheck all options except SSH Server and standard system utilities** (Don't install anything else)
    For the purposes of this demo, our first user name will be 'servuo'.[/QUOTE]

    After installation, your server will reboot. Now connect to your server using PuTTy with the user you created.
    After logging in, you need to become a super user
    Code (C#):

    1. su
    Now, change your package sources, so it stops trying to load from a DVD that doesn't exist.
    Code (C#):
    1. vi /etc/apt/sources.list
    Delete everything in there (keep pressing 'dd'), then press 'i' to insert and paste the below in (just right click on the putty screen to paste)
    Code (C#):

    1. deb http://ftp.us.debian.org/debian/ stretch main contrib non-free
    2. deb-src http://ftp.us.debian.org/debian/ stretch main contrib non-free
    3. deb http://security.debian.org/debian-security stretch/updates main contrib non-free
    4. deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free
    Now save it, press <esc> then ':wq' <enter>
    Install some editors to make these next parts easier
    Code (C#):
    1. apt-get -y install nano vim-nox
    Now check for updates and install some things you'll need to compile the server
    Code (C#):

    1. apt-get update
    2. apt-get upgrade
    3. apt-get -y install sudo build-essential htop screen ntp git
    Set your default system shell to bash
    Code (C#):

    1. dpkg-reconfigure dash
    Use dash as the default system shell (/bin/sh)? <-- No (press tab and when cursor is on No, press the space bar)
    Now, you need to install Mono
    Code (C#):

    1. apt install apt-transport-https dirmngr
    2. apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    3. echo "deb https://download.mono-project.com/repo/debian stable-stretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
    4. apt update
    5. apt install mono-complete
    Now, we need to make the IP static
    Code (C#):
    1. nano /etc/network/interfaces
    The name of your network adapter may vary, it could be eth0, or something else starting with 'e.' The important thing is to replace 'dhcp' with 'static' and then set your address, gateway, and netmask.
    Code (C#):

    1. #...
    2. iface eth0 inet static
    3. address
    4. gateway
    5. netmask
    6. #...
    ONLY If you have teaming nics (Intel) then do the following
    Code (C#):

    1. apt-get install ifenslave
    Now edit modules
    Code (C#):
    1. nano /etc/modules
    add these lines to the bottom on the file
    Code (C#):

    1. #...
    2. op
    3. lp
    4. rtc
    5. bonding
    Now setup your team
    Code (C#):
    1. nano /etc/network/interfaces
    Delete everything in this file and replace with this (please note your NIC may be something other than ens1f0, etc)
    Code (C#):

    1. # ens1f0 is manually configured, and slave to the "bond0" bonded NIC
    2. auto ens1f0
    3. iface ens1f0 inet manual
    4. bond-master bond0
    5. bond-primary ens1f0
    6. # ens1f1 ditto, thus creating a 2-link bond.
    7. auto ens1f1
    8. iface ens1f1 inet manual
    9. bond-master bond0
    10. # bond0 is the bonding NIC and can be used like any other normal NIC.
    11. # bond0 is configured using static network information.
    12. auto bond0
    13. iface bond0 inet static
    14. address
    15. gateway
    16. netmask
    17. bond-mode active-backup
    18. bond-miimon 100
    19. bond-slaves none
    End of Teaming NIC setup
    Now, you need to update your hostname and set your DNS (don't use the default Comcast or AT&T!)
    Code (C#):
    1. nano /etc/hosts
    Change to your server name and domain
    Code (C#):

    1. localhost
    2. server.domain.com server
    3. # The following lines are desirable for IPv6 capable hosts
    4. ::1 localhost ip6-localhost ip6-loopback
    5. ff02::1 ip6-allnodes
    6. ff02::2 ip6-allrouters
    check that hostname is correct here too
    Code (C#):
    1. nano /etc/hostname
    It should be just the server name (not domain)
    Code (C#):
    1. server
    Now change your DNS (delete all that ISP stuff comcast, etc) replace with this
    Code (C#):

    1. nameserver
    2. nameserver
    3. nameserver
    4. nameserver
    Now, reboot. Your server should have the new IP address once it's back up.
    Code (C#):
    1. reboot
    At this point, you need to prepare ServUO for upload to your Server, and also upload the Ultima Online client files.
    For this part, use your desktop computer.
    Grab a copy of ServUO from https://github.com/ServUO/ServUO
    Edit the .cfg files in /ServUO/Config to your liking. **Be sure to update DataPath.cfg** the syntax is a little difference for linux. For this tutorial, we will be uploading the UO client files to "/home/servuo/Ultima Online Classic" on your server. Your DataPath.cfg should look like this:
    Code (C#):

    1. # Uncomment this line and set it to the path of the client files to set a
    2. # custom data path. Otherwise ServUO will look for the client in the default
    3. # Windows installation directories. Note that this is *required* when running
    4. # on non-Windows systems.
    5. CustomPath=/home/servuo/Ultima Online Classic
    Also, until your server is truly ready for production, it is best to disable virtue honesty. Edit /ServUO/Config/Honesty.cfg and set to false.
    Code (C#):

    1. # If true, enables virtue honesty
    2. Enabled=False
    Now, connect to your server with WinSCP and upload your ServUO and Ultima Online Classic folder.

    Login again to your server with PuTTy, and compile
    Code (C#):

    1. su
    2. cd /home/servuo/ServUO
    3. make clean
    4. make
    The should have compiled and now be running. You will be prompted to created your admin user, write down the password!
    check that you can connect to it using UOSteam. If everything looks good, type [admin from your client and shutdown the server with save.
    In order to keep ServUO running when you log out, one easy way to do it is with 'screen'.
    On your server, type screen then start your server
    Code (C#):

    1. screen
    2. cd /home/servuo/ServUO/
    3. ./ServUO.sh
    After the server starts, you can disconnect the screen and ServUO will continue to run. To disconnect from the screen, press ,<ctrl> + <a>, then press <d>. You can now log off.
    If you wish to reconnect with the screen, login to your server and type screen -r
    Code (C#):

    1. screen -r
    If you want to invite friends from the outside to connect, just forward port 2593 to your server's IP address on your router.
    Tutorial Information