Files
AdamuSw/deploy/all-in-one-traefik

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.