Skip to main content

Run with Docker

This is the fastest way to get a running server. All OpenMU subsystems (connect server, game servers, chat server, login server, admin panel) run in one container, next to a PostgreSQL container and an nginx container.

Prerequisites

Clone the repository

git clone https://github.com/MUnique/OpenMU.git
cd OpenMU/deploy/all-in-one

Start it

To use the official docker image, run:

docker compose up -d --no-build

That's it — the server is available on your local machine through a loopback IP.

Open the admin panel

Go to http://localhost/.

  • On a fresh installation there is no user yet, so the panel lets you in without a login and says so.
  • Create your first user right after the installation, or configure a bootstrap user before the first start — see Signing in.

The server is automatically initialized for Season 6, so you can start playing right away. If you want another game version, another number of game servers, or test accounts, use the Setup page.

Next steps

Database environment variables

The postgres connection strings of the container can be influenced with these environment variables:

NameDescription
DB_HOSTThe host name of the database. If the local configuration file is still configured to use localhost, the value of this variable replaces it.
DB_ADMIN_USERThe user name of the postgres admin account. If the local configuration file is still configured to use postgres for the user name of the admin (first entry in the ConnectionSettings.xml), the value of this variable replaces it.
DB_ADMIN_PWThe password of the postgres admin account. If the local configuration file is still configured to use admin for the password of the admin (first entry in the ConnectionSettings.xml), the value of this variable replaces it.

The docker-compose.yml files take these variables (e.g. from a local .env file, see deploy/*/.env.example) and wire them to both sides:

  • the database service as POSTGRES_PASSWORD: ${DB_ADMIN_PW:-admin} and POSTGRES_USER: ${DB_ADMIN_USER:-postgres},
  • the app container(s) as DB_ADMIN_USER / DB_ADMIN_PW (and DB_HOST: ${DB_HOST:-database}).

When the variables are not set, the defaults (postgres / admin) apply, so existing installations keep working without any change. The same override applies to the distributed deployment, where the Dapr secret store connection strings are adjusted at runtime with the same variables.

Note: POSTGRES_PASSWORD is only honored by the official postgres image when the dbdata volume is created for the first time. Changing DB_ADMIN_PW later does not change an existing database. Change the password inside postgres first (e.g. ALTER ROLE postgres PASSWORD 'new'), then restart the containers with the new value.

More variables and the start parameters are listed under Startup parameters and environment variables.