2022-01-16 18:22:00 +00:00
|
|
|
# Nexus Dashboard
|
|
|
|
|
|
|
|
<p align="center">
|
2022-03-13 20:09:34 +00:00
|
|
|
<img src="app/static/logo/logo.png" alt="DLU logo"/>
|
2022-01-16 18:22:00 +00:00
|
|
|
</p>
|
|
|
|
|
2022-01-18 04:30:39 +00:00
|
|
|
## Features
|
|
|
|
|
2022-03-13 20:09:34 +00:00
|
|
|
* Account Management:
|
|
|
|
* Ban, Lock, and Mute accounts (This Mute affects all Characters)
|
|
|
|
* Email (all optional):
|
|
|
|
* Require email verification
|
|
|
|
* Reset Password via Email
|
|
|
|
* User Registration
|
|
|
|
* Invitations ( TODO: Implement this )
|
|
|
|
* Invitation Only Registration ( TODO: Implement this )
|
|
|
|
* Play Key Management:
|
|
|
|
* Create, Edit, and Add notes to play keys
|
|
|
|
* View accounts Tied to a play key
|
|
|
|
* Character Management:
|
|
|
|
* Rescue: Pull character to a previously visited world
|
|
|
|
* Restrict Trade: Toggle the character's ability to trade
|
|
|
|
* Restrict Mail: Toggle the character's ability to send mail
|
|
|
|
* Restrict Chat: Toggle the character's ability to send chat messages
|
|
|
|
* Inventory viewer
|
|
|
|
* View backpack contents, vault, models, and more!
|
|
|
|
* Stats Viewer
|
|
|
|
* Moderation:
|
|
|
|
* Character Names:
|
|
|
|
* Approve and mark as needs rename
|
|
|
|
* Pet Names:
|
|
|
|
* Auto-moderation of Pet names based on already moderated names
|
|
|
|
* This is a scheduled tack that runs in the background every hour
|
|
|
|
* Character Association, to see who has requested what name
|
|
|
|
* Name cleanup: remove names of deleted pets/characters
|
|
|
|
* Properties:
|
|
|
|
* Approve and Un-approve Properties
|
|
|
|
* Property/Model viewer
|
|
|
|
* Pre-built and UGC model rendering
|
|
|
|
* View Properties in full 360 in the browser!
|
|
|
|
* View in LOD0 (High), LOD1(Medium), or LOD2(Low) quality
|
|
|
|
* Download models
|
|
|
|
* Bug Reports:
|
|
|
|
* View and Resolve bug reports
|
|
|
|
* Logs:
|
|
|
|
* Command: View commands that have been run
|
|
|
|
* Activity: View character activity of entering and exiting worlds
|
|
|
|
* Audit:
|
|
|
|
* View moderation activity (characters, pets, properties)
|
|
|
|
* View GM Level changes
|
|
|
|
* View Send Mail usage
|
|
|
|
* System: View Extra logging of background activities of Nexus Dashboard
|
|
|
|
* Send Mail:
|
|
|
|
* Send Mail to characters
|
|
|
|
* Attach items to Mail
|
|
|
|
* Economy Reports:
|
|
|
|
* Reports are generated as a scheduled background task run every day at 2300 UTC
|
|
|
|
* Accounts with GM Level 3 and above are ignored
|
|
|
|
* Item reports:
|
|
|
|
* Reports numbers of items in existence
|
|
|
|
* Includes backpack and Vault items
|
|
|
|
* Currency:
|
|
|
|
* Reports how much currency that characters posses
|
|
|
|
* U-Score:
|
|
|
|
* Reports how much U-Score that characters posses
|
|
|
|
* Analytics:
|
|
|
|
* Provide reporting to Developers to help better solve issues
|
|
|
|
* Disabled by default. Set `ALLOW_ANALYTICS` to true to enable.
|
2022-01-18 04:30:39 +00:00
|
|
|
|
2022-01-16 18:22:00 +00:00
|
|
|
# Deployment
|
|
|
|
|
|
|
|
## Docker
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
|
|
docker run -d \
|
2022-03-13 20:09:34 +00:00
|
|
|
-e APP_SECRET_KEY='<secret_key>' \
|
|
|
|
-e APP_DATABASE_URI='mysql+pymysql://<username>:<password>@<host>:<port>/<database>' \
|
|
|
|
# you can include other optional Environment Variables from below like this
|
|
|
|
-e REQUIRE_PLAY_KEY=True
|
|
|
|
-p 8000:8000/tcp
|
|
|
|
-v /path/to/unpacked/client:/app/luclient:rw \
|
|
|
|
-v /path/to/cachedir:/app/cache:rw \
|
|
|
|
aronwk/nexus-dashboard:latest
|
2022-01-16 18:22:00 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
|
2022-03-13 20:09:34 +00:00
|
|
|
* `/app/luclient` must be mapped to the location of an unpacked client
|
|
|
|
* you only need `res/` and `locale/` from the client, but dropping the whole client in there won't hurt
|
2022-01-16 18:22:00 +00:00
|
|
|
* Use `fdb_to_sqlite.py` in lcdr's utilities on `res/cdclient.fdb` in the unpacked client to convert the client database to `cdclient.sqlite`
|
2022-03-13 20:09:34 +00:00
|
|
|
* Put the resulting `cdclient.sqlite` in the res folder: `res/cdclient.sqlite`
|
2022-01-16 18:22:00 +00:00
|
|
|
|
|
|
|
### Environmental Variables
|
2022-03-13 20:09:34 +00:00
|
|
|
|
2022-03-14 00:28:24 +00:00
|
|
|
Please Reference `app/settings_exmaple.py` to see all the variables
|
2022-03-13 20:09:34 +00:00
|
|
|
|
|
|
|
* Required:
|
2022-01-16 18:22:00 +00:00
|
|
|
* APP_SECRET_KEY (Must be provided)
|
|
|
|
* APP_DATABASE_URI (Must be provided)
|
2022-03-13 20:09:34 +00:00
|
|
|
* Everything else is optional and has defaults
|
2022-01-16 18:22:00 +00:00
|
|
|
|
|
|
|
## Manual
|
|
|
|
|
2022-03-14 00:28:24 +00:00
|
|
|
* Copy `app/settings_exmaple.py` to `app/settings.py` and adjust the settings you would like.
|
2022-03-13 20:09:34 +00:00
|
|
|
* Provide `APP_SECRET_KEY` and `APP_DATABASE_URI` in `app/settings.py`
|
|
|
|
* app/luclient must contian a copy of an unpacked client
|
|
|
|
* you only need `res/` and `locale/` from the client, but dropping the whole client in there won't hurt
|
|
|
|
* Use `fdb_to_sqlite.py` in lcdr's utilities on `res/cdclient.fdb` in the unpacked client to convert the client database to `cdclient.sqlite`
|
|
|
|
* Put the resulting `cdclient.sqlite` in the res folder: `res/cdclient.sqlite`
|
|
|
|
* unzip `res/brickdb.zip` in-place
|
|
|
|
* you should have new folders and files in the following places:
|
|
|
|
* `res/Assemblies/../..` with a bunch of sub folders
|
|
|
|
* `res/Primitives/../..` with a bunch of sub folders
|
|
|
|
* `res/info.xml`
|
|
|
|
* `res/Materials.xml`
|
|
|
|
* Run:
|
|
|
|
* `pip install -r requirements.txt`
|
|
|
|
* `pip install gunicorn`
|
|
|
|
* `flask db upgrade`
|
|
|
|
* `gunicorn -b :8000 -w 4 wsgi:app`
|
|
|
|
* Preferably, you want to setup a systemd service or something to keey this running
|
2022-01-18 04:30:39 +00:00
|
|
|
|
2022-01-16 18:22:00 +00:00
|
|
|
# Development
|
|
|
|
|
|
|
|
Please use [Editor Config](https://editorconfig.org/)
|
|
|
|
|
2022-03-13 20:09:34 +00:00
|
|
|
* `flask run` to run local dev server
|