Ultima Online Server :
When you talk about UO, it's all about nostalgia. Thank's to the great work of RunUO, we can host a server to play again. But we have to make some installation, build, changes from source code, changes command stuff, deployment, etc. Thus I've made docker images to handle all of this in order to allow you to deploy easily a public server.
Install Docker (you can test it on your own OS or directly on your server)
Docker : Docker is the world’s leading software containerization platform.
Download game softwares
- UO 2D Classic Client : Official UO client, up to date. You will need to install / patch around 1,2gb files.
- UOSteam : UOAssist / Razor client-like, but maintained. It'll be useful to disable client-encryption and to connect to a free-shard (server).
Docker allows you to keep some files like logs, backups etc. within the hosting server in order to get a container totally clean.
The volumes defined (volume within host machine -> volume within docker container) are :
- Nginx
/srv/docker/nginx/log -> /var/log/nginx
: for Nginx logs (access && error)
- UO Server
/srv/docker/uo/datafiles -> /srv/docker/uo/datafiles
: for system file game/srv/docker/uo/save -> /runuo-master/Saves
: for database files (XML)/srv/docker/uo/backups -> /runuo-master/Backups
: for backups
- Download the docker-uo package
https://github.com/UbikZ/docker-uo/archive/master.zip
- Unzip it and go inside the folder
- Copy configuration files without the
.dist
sufix :./uo/.env.conf.dist
and./nginx/.env.conf.dist
- For
./uo/.env.conf.dist
UO_ADMIN_USERNAME
(admin) : admin username created at the first runUO_ADMIN_PASSWORD
(admin) : admin password created at the first runUO_SERVER_NAME
(Uo Test Server) : name of the shardUO_SERVER_IP
(uo.localhost) : server IP to connect to the specific shard
- For
./nginx/.env.conf.dist
NGINX_DOMAIN
(localhost) : the domain name for nginx
- Copy some game files in the
/srv/docker/uo/datafiles
host machine volumes
- Check the Official Ultima Online folder
- Copy these files (*~ 650mb*):
map0LegacyMUL.uop multi.mul staidx0x.mul statics1.mul map0xLegacyMUL.uop stadif0.mul staidx1.mul statics1x.mul map1LegacyMUL.uop stadif1.mul staidx1x.mul statics2.mul map1xLegacyMUL.uop stadif2.mul staidx2.mul statics2x.mul map2LegacyMUL.uop stadifi0.mul staidx2x.mul statics3.mul map2xLegacyMUL.uop stadifi1.mul staidx3.mul statics4.mul map3LegacyMUL.uop stadifi2.mul staidx4.mul statics5.mul map4LegacyMUL.uop stadifl0.mul staidx5.mul statics5x.mul map5LegacyMUL.uop stadifl1.mul staidx5x.mul tiledata.mul map5xLegacyMUL.uop stadifl2.mul statics0.mul multi.idx staidx0.mul statics0x.mul
- Execute the
docker-compose up -d
command - Check the docker process are running with
docker ps
- Execute the
UOS.exe
client and fill the fields
Client Options
: theclient.exe
path from the Official UO client- Check
Remove encryption
Ultima Online Classic
: path to the main folder of the Official UO clientShard
: URL / PORT of the server (uo.localhost / 2593 by default)
- Click on START
- Enjoy !
Why do we have to use Nginx ?
Nginx will allow us to forward UO server port (2593) on another server name thank's to proxypass.
This program is distributed under the terms of the MIT license. See LICENSE file.