mirror of
https://github.com/DarkflameUniverse/NexusDashboard.git
synced 2024-11-24 22:47:26 +00:00
Dashboard for Complete Management of a DLU game server
24e98190fe
Resolves #21 |
||
---|---|---|
app | ||
migrations | ||
property_files | ||
.dockerignore | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
characterxml->json.example.json | ||
Dockerfile | ||
entrypoint.sh | ||
Jenkinsfile | ||
LICENSE | ||
pylama.ini | ||
README.md | ||
requirements.txt | ||
wsgi.py |
Nexus Dashboard
Features
- 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
- Auto-moderation of Pet names based on already moderated names
- 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
- Character Names:
- 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.
Deployment
Docker
docker run -d \
-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
/app/luclient
must be mapped to the location of an unpacked client- you only need
res/
andlocale/
from the client, but dropping the whole client in there won't hurt
- you only need
- Use
fdb_to_sqlite.py
in lcdr's utilities onres/cdclient.fdb
in the unpacked client to convert the client database tocdclient.sqlite
- Put the resulting
cdclient.sqlite
in the res folder:res/cdclient.sqlite
- Put the resulting
Environmental Variables
Please Reference app/settings_exmaple.py
to see all the variables
- Required:
- APP_SECRET_KEY (Must be provided)
- APP_DATABASE_URI (Must be provided)
- Everything else is optional and has defaults
Manual
- Copy
app/settings_exmaple.py
toapp/settings.py
and adjust the settings you would like.- Provide
APP_SECRET_KEY
andAPP_DATABASE_URI
inapp/settings.py
- Provide
- app/luclient must contian a copy of an unpacked client
- you only need
res/
andlocale/
from the client, but dropping the whole client in there won't hurt
- you only need
- Use
fdb_to_sqlite.py
in lcdr's utilities onres/cdclient.fdb
in the unpacked client to convert the client database tocdclient.sqlite
- Put the resulting
cdclient.sqlite
in the res folder:res/cdclient.sqlite
- Put the resulting
- unzip
res/brickdb.zip
in-place- you should have new folders and files in the following places:
res/Assemblies/../..
with a bunch of sub foldersres/Primitives/../..
with a bunch of sub foldersres/info.xml
res/Materials.xml
- you should have new folders and files in the following places:
- 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
Development
Please use Editor Config
flask run
to run local dev server