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
- Connect a game client
- Test accounts that exist in a freshly initialized database
- Deployment — HTTPS, domains and the other deployment variants, when you want other people to play on your server
- Admin panel — how to operate and configure the running server
Database environment variables
The postgres connection strings of the container can be influenced with these environment variables:
| Name | Description |
|---|---|
DB_HOST | The 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_USER | The 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_PW | The 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
databaseservice asPOSTGRES_PASSWORD: ${DB_ADMIN_PW:-admin}andPOSTGRES_USER: ${DB_ADMIN_USER:-postgres}, - the app container(s) as
DB_ADMIN_USER/DB_ADMIN_PW(andDB_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.