2. Create databases in PostgreSQL: `diiis` and `worlds`.
3. Change you account and password in `database.Account.config` and `database.Worlds.conifg`.
4. Restore `worlds.backup` to `worlds` database.
5. Compile by [VS 2019/2022](https://visualstudio.microsoft.com/).
6. [Skip this stage for local game] Copy the [config.ini](configs/config.ini) file to the server folder (It overwrites the default settings):
- Update the parameter entries with your IP record on the network: `BindIP` and `PublicIP`.
7. Launch wait until server start, it creates a hierarchy.
8. Create user account(s) using console: `!account add Login Password Tag`
## Prepare Client
Do this for each client connecting to the server.
1. Get [supported client](#supported-clients) Diablo 3.
2. Install certificate [bnetserver.p12](src/DiIiS-NA/bnetserver.p12), password - `123` (the game verifies the CA root certificates).
3. Setting up redirects client to your server:
**Method #1 - Hosts**
Add redirects to the `hosts` file (`%WinDir%\System32\drivers\etc\hosts`):
`127.0.0.1 us.actual.battle.net`
`127.0.0.1 eu.actual.battle.net`
!After the modification the official Battle.Net application will not be able to connect to the server!
**Method #2 - Modify main executable file**
```c
// Find null-terminated string enum and rewrite with HexEditor to your IP server.
eu.actual.battle.net/
us.actual.battle.net/
cn.actual.battle.net/
kr.actual.battle.net/
```
4. Launch client (`x64` or `x86`) with arguments `"Diablo III64.exe" -launch`
5. Login to the game using your credentials.
6. [Skip this stage for local game] After that, when creating a game (in client), indicate the creation of a public game. Other players, when connecting, must also indicate a public game, and at the start they will connect to you.
7. You're in the game world!
## Using Docker
Run `docker-compose up` inside [db](db) folder and continue from the 5th step in section [server](#server-deploying).