78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
# DPS Manager Server
|
|
|
|
This directory contains the current C++17 service implementation. The legacy Java project is kept only as a behavior reference under `旧的java项目/`.
|
|
|
|
## Build targets
|
|
|
|
The server now uses one codebase with the same runtime behavior on:
|
|
|
|
- Windows: `MSVC + xmake`
|
|
- Linux: `gcc/clang + xmake`
|
|
|
|
`mingw` is no longer the primary target for this service.
|
|
|
|
## Dependencies
|
|
|
|
Xmake resolves these shared dependencies for both platforms:
|
|
|
|
- `openssl3`
|
|
- `zlib`
|
|
- `mariadb-connector-c`
|
|
|
|
Platform system links:
|
|
|
|
- Windows: `ws2_32`
|
|
- Linux: `pthread`, `crypt`
|
|
|
|
Linux builds also rely on the system `crypt.h` header and `libcrypt` for bcrypt support. Windows builds continue to use the vendored Openwall bcrypt sources.
|
|
|
|
## Database TLS
|
|
|
|
- `database.ssl_mode=disable`: disable TLS for local Windows testing
|
|
- `database.ssl_mode=preferred`: allow TLS without strict certificate validation
|
|
- `database.ssl_mode=required`: require TLS but skip certificate validation
|
|
- `database.ssl_mode=verify_ca`: require TLS and verify the server certificate chain
|
|
- `database.ssl_mode=verify_identity`: same strict verification path as `verify_ca` in the current Connector/C integration
|
|
- `database.ssl_ca`: optional CA certificate file path for strict verification modes
|
|
- `database.plugin_dir`: optional MariaDB auth plugin directory override; Windows builds also copy connector plugins to `mariadb-plugin` beside the executable
|
|
|
|
## Build
|
|
|
|
### Windows local testing
|
|
|
|
```powershell
|
|
xmake f -p windows -a x64 -m debug
|
|
xmake
|
|
Copy-Item config/server.windows.conf config/server.conf
|
|
```
|
|
|
|
### Linux deployment build
|
|
|
|
```bash
|
|
xmake f -p linux -a x86_64 -m release
|
|
xmake
|
|
cp config/server.conf.example config/server.conf
|
|
```
|
|
|
|
## Run
|
|
|
|
Windows:
|
|
|
|
```powershell
|
|
./build/windows/x64/debug/dps_manager_server.exe --config config/server.conf
|
|
```
|
|
|
|
Linux:
|
|
|
|
```bash
|
|
./build/linux/x86_64/release/dps_manager_server --config config/server.conf
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Password hashing, JWT signing, RSA operations, and gzip payload generation all use the same OpenSSL/zlib-based implementation on Windows and Linux.
|
|
- The server fails fast on startup if the database connection cannot be established.
|
|
- Windows local testing can set `database.ssl_mode=disable` when the remote database presents a certificate chain that Windows does not trust yet.
|
|
- Proxy headers are ignored by default; enable `server.trust_proxy=true` only when the service runs behind a trusted reverse proxy.
|
|
- `config/server.conf.example` is the Linux-oriented template, and `config/server.windows.conf` is the Windows local test template.
|