openmu/deploy/distributed
2025-12-30 16:43:38 +01:00
..
dapr-components Renamed pubsub to rabbit 2025-12-29 18:54:50 +01:00
.dockerignore Reorganized and cleaned up 2022-06-25 10:24:46 +02:00
.htpasswd Implemented very basic user management 2022-06-25 18:05:31 +02:00
docker-compose.dcproj Changes for the distributed deployment 2023-11-08 07:05:23 +01:00
docker-compose.override.yml Remove obsolete version field from docker-compose files 2025-11-21 15:12:29 +00:00
docker-compose.prod.yml Renamed pubsub to rabbit 2025-12-29 18:54:50 +01:00
docker-compose.yml Renamed pubsub to rabbit 2025-12-29 18:54:50 +01:00
grafana.ini Reorganized and cleaned up 2022-06-25 10:24:46 +02:00
grafana_datasources.yaml Reorganized and cleaned up 2022-06-25 10:24:46 +02:00
launchSettings.json Renamed pubsub to rabbit 2025-12-29 18:54:50 +01:00
loki-config.yaml Reorganized and cleaned up 2022-06-25 10:24:46 +02:00
nginx.dev.conf Some fixes for distributed deployment 2023-11-23 22:04:13 +01:00
nginx.prod.certificates.conf.template Improvements for the deployment 2023-04-19 22:16:02 +02:00
nginx.prod80.conf Improvements for the deployment 2023-04-19 22:16:02 +02:00
nginx.prod443.conf Some fixes for distributed deployment 2023-11-23 22:04:13 +01:00
nginx.server_name.conf.template Update nginx.server_name.conf.template 2023-04-20 22:27:10 +02:00
prometheus.yml Reorganized and cleaned up 2022-06-25 10:24:46 +02:00
README.md Improved readme formatting 2025-12-30 16:43:38 +01:00

Distributed

!!! CURRENTLY BROKEN AND UNSUPPORTED, DOCS ARE OUT OF DATE !!!

Deployment with docker-compose

Currently, we just have a docker-compose file for the deployment. docker-compose has the limitation, that all runs on the same physical machine.

For an even more distributed environment, with more machines, kubernetes can be used. However, we don't have a finished configuration for kubernetes, yet. If you are familiar with kubernetes, all contributions are welcome for kubernetes configuration files.

So, these are the steps, if you want to deploy it 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/distributed

cd deploy/distributed

Option A - for local testing

To use the official docker images, just run:

docker compose up -d --no-build

And that's it. It's then available on your local computer through a loopback ip.

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 for nginx. Otherwise, traffic from and to the admin panel is not encrypted.

Set your domain name as environment variable

Specify the environment variable DOMAIN_NAME for docker compose. This can be done in various ways, e.g. by editing the docker-compose.prod.yml or setting it in your shell.

This variable is replaced in the nginx template config files which get included in the other configuration files.

Run it

docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Run certbot explicitly

Hint: replace "example.org" with your domain.

docker compose -f docker-compose.yml -f docker-compose.prod.yml run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ -d example.org

Set up certificate renewal

Because your certificates expire after 3 months, it's recommended to renew them regularly. To renew it, run this command:

docker compose -f docker-compose.yml -f docker-compose.prod.yml run --rm certbot renew

Of course, it would make sense to add a cron job (e.g. once a week) on your host machine for that.

What's next

Now, when you have deployed OpenMU, it's time to discover the AdminPanel.

If your containers run on docker at your local machine, you can simply go to http://localhost/admin. The default username is 'admin', the password 'openmu'. You should change that later.

There you'll find a setup in 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.

Click on 'Install', wait a bit until the database is set up and filled with the data. OpenMU should now be ready to use.

Environment variables

The openmu images which are used in this docker-compose consider the following environment variables:

ASPNETCORE_ENVIRONMENT

It's usually specified correctly in the docker-compose files. It has effect on the ip resolver, see below.

RESOLVE_IP

Similar to the -resolveIp starting parameter of the all-in-one startup project, you're able to control the ip resolving with this variable. The defaults usually work fine here, so you should try not to set this variable.

Value Description
local Default value in a Development environment. Determines a local ip. If none is found, a loopback IP is used (127.127.127.127).
public Default value in a Production environment. The public ip is automatically determined by an external API.
loopback Returns 127.127.127.127, usefully only if you run your server and client on the same machine.
[custom ip] You can specify a custom ip, if needed. Example: 192.168.0.1

GS_ID

It's usually specified correctly in the docker-compose files or each game server. Specifies the id of a game server, and is used to retrieve the GameServerConfiguration from the database.