All-in-one-traefik deployment
The all in one (with traefik) deployment is recommended, if you want to host on a small machine with a low amount of players and want to host your MuOnline Website on the same machine.
Once Traefik works as a Reverse Proxy, you can handle multiple websites without changing the default port to HTTP/HTTPS connections.
Adding a few labels to your container, you will tell Traefik how to handle incoming requests and it will redirect to the correct website.
services:
admin-panel:
...
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.adm.entrypoints=websecure"
- "traefik.http.routers.adm.rule=Host(`admin.domain.com`)"
- "traefik.http.routers.adm.middlewares=auth"
- "traefik.http.middlewares.auth.basicauth.usersfile=.htpasswd"
muonline-website:
...
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.muonline.entrypoints=websecure"
- "traefik.http.routers.muonline.rule=Host(`muonline.domain.com`)"
You can even add multiple domains and/or subdomains to your host label
- "traefik.http.routers.muonline.rule=Host(`www.domain1.com`,`domain1.com`,`sub.domain1.com`)"
In this case, all kinds of OpenMU subsystems (ConnectServer, GameServer, LoginServer, AdminPanel, ...) are running in one process, but you can run AdminPanel and other websites separately.
Deployment with docker-compose
Install GIT
See https://github.com/git-guides/install-git.
Clone the repository
git clone https://github.com/MUnique/OpenMU.git
It will create a new folder OpenMU with the repository contents inside.
Navigate to the docker-compose files
Navigate to the folder deploy/all-in-one-traefik
cd deploy/all-in-one-traefik
Create a new docker network
You need to have communication between containers from different docker compose files
docker network create proxy
Option A - for local testing
To run the official docker image on your local traefik server, just run:
docker compose -f docker-compose.yml up -d
And that's it. It's then available on your local computer through a loopback
ip. Your AdminPanel URL is http://admin.docker.localhost. You can change it
in the docker-compose.yml file.
However, if you want to make it available through the internet, you should choose Option B:
Option B - with HTTPS
If you want to share your server with the world, it's recommended to set up HTTPS and Traefik can handle it for you. Otherwise, traffic from and to the admin panel is not encrypted.
Set your domain name as environment variable
Make a copy of .env.example called .env and edit the .env file with your
domain/subdomain to the AdminPanel URL.
cp .env.example .env
Make a copy of data-traefik/acme.example.json called data-traefik/acme.json
and apply permission 600 to acme.json
cp data-traefik/acme.example.json data-traefik/acme.json
chmod 600 data-traefik/acme.json
Run it
docker compose -f docker-compose.prod.yml up -d
Important
Avoid editing the .htpasswd manually. Instead, access the admin panel and add a new user. If you are using the all-in-one-traefik you need to restart Traefik after add a new user to it takes effect.
What's next
The server is automatically started and initialized for Season 6. You can start playing, if you want :-)
Additionally, take a look at the AdminPanel.
If your containers run on docker at your local machine, you can simply go to http://admin.docker.localhost/.
The default username is 'admin', the password 'openmu'. You should change that later.
If you want to run another game version, you can go to the setup page through the navigation menu, where you can select your desired game version, number of game servers (just the data of it), and if test accounts should be created.
If you click on 'Install', wait a bit until the database is set up and filled with the data and voila, OpenMU is ready to use.