{"id":13592821,"url":"https://github.com/DarkflameUniverse/NexusDashboard","last_synced_at":"2025-04-09T02:31:20.206Z","repository":{"id":37569397,"uuid":"448633025","full_name":"DarkflameUniverse/NexusDashboard","owner":"DarkflameUniverse","description":"Dashboard for Complete Management of a DLU game server","archived":false,"fork":false,"pushed_at":"2024-10-25T23:46:13.000Z","size":2038,"stargazers_count":47,"open_issues_count":18,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-06T14:39:46.481Z","etag":null,"topics":["bootstrap4","darkflame-universe","flask","flask-sqlalchemy","lego-universe"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DarkflameUniverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-16T18:03:10.000Z","updated_at":"2024-06-10T16:54:50.000Z","dependencies_parsed_at":"2023-11-11T07:22:36.341Z","dependency_job_id":"1f37bc6c-6f7f-4202-bb47-6612dd4702f4","html_url":"https://github.com/DarkflameUniverse/NexusDashboard","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkflameUniverse%2FNexusDashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkflameUniverse%2FNexusDashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkflameUniverse%2FNexusDashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkflameUniverse%2FNexusDashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DarkflameUniverse","download_url":"https://codeload.github.com/DarkflameUniverse/NexusDashboard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247965499,"owners_count":21025392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap4","darkflame-universe","flask","flask-sqlalchemy","lego-universe"],"created_at":"2024-08-01T16:01:13.568Z","updated_at":"2025-04-09T02:31:17.326Z","avatar_url":"https://github.com/DarkflameUniverse.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Nexus Dashboard\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"app/static/logo/logo.png\" alt=\"DLU logo\"/\u003e\n\u003c/p\u003e\n\n## Features\n\n  * Account Management:\n    * Ban, Lock, and Mute accounts (This Mute affects all Characters)\n    * Account Deletion\n    * Email ( all optional ):\n      * Require email verification\n      * Reset Password via Email\n      * Edit Email ( by Admin only )\n      * User Registration\n      * Invitations ( TODO: Implement this )\n      * Invitation Only Registration ( TODO: Implement this )\n  * Play Key Management:\n    * Create, Edit, and Add notes to play keys\n    * View accounts Tied to a play key\n  * Character Management:\n    * Rescue: Pull character to a previously visited world\n    * Restrict Trade: Toggle the character's ability to trade\n    * Restrict Mail: Toggle the character's ability to send mail\n    * Restrict Chat: Toggle the character's ability to send chat messages\n    * Inventory viewer\n      * View backpack contents, vault, models, and more!\n    * Stats Viewer\n  * Moderation:\n    * Character Names:\n      * Approve and mark as needs rename\n    * Pet Names:\n      * Auto-moderation of Pet names based on already moderated names\n        * This is a scheduled tack that runs in the background every hour\n      * Character Association, to see who has requested what name\n      * Name cleanup: remove names of deleted pets/characters\n    * Properties:\n      * Approve and Un-approve Properties\n      * Property/Model viewer\n        * Pre-built and UGC model rendering\n        * View Properties in full 360 in the browser!\n        * View in LOD0 (High), LOD1(Medium), or LOD2(Low) quality\n        * Download models\n  * Bug Reports:\n    * View and Resolve bug reports\n  * Logs:\n    * Command: View commands that have been run\n    * Activity: View character activity of entering and exiting worlds\n    * Audit:\n      * View moderation activity (characters, pets, properties)\n      * View GM Level changes\n      * View Send Mail usage\n    * System: View Extra logging of background activities of Nexus Dashboard\n  * Send Mail:\n    * Send Mail to characters\n    * Attach items to Mail\n  * Economy Reports:\n    * Reports are generated as a scheduled background task run every day at 2300 UTC\n    * Accounts with GM Level 3 and above are ignored\n    * Item reports:\n      * Reports numbers of items in existence\n      * Includes backpack and Vault items\n    * Currency:\n      * Reports how much currency that characters posses\n    * U-Score:\n      * Reports how much U-Score that characters posses\n\n# Deployment\n\n\u003e **NOTE: This tutorial assumes you have a working DLU server instance and**\n\u003e **some knowledge of command line interfaces on your chosen platform**\n\n\n**It is highly recommended to setup a reverse proxy via Nginx or some other tool and use SSL to secure your Nexus Dashboard instance if you are going to be opening it up to any non-LANs**\n * [How to setup Nginx](https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-on-ubuntu-22-04)\n * [How to use certbot for SSL](https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-22-04)\n\n## Docker\n\n```bash\ndocker run -d \\\n    -e APP_SECRET_KEY='\u003csecret_key\u003e' \\\n    -e APP_DATABASE_URI='mysql+pymysql://\u003cusername\u003e:\u003cpassword\u003e@\u003chost\u003e:\u003cport\u003e/\u003cdatabase\u003e' \\\n    # you can include other optional Environment Variables from below like this\n    -e REQUIRE_PLAY_KEY=True \\\n    -p 8000:8000/tcp \\\n    -v /path/to/logs:/logs:rw /\n    -v /path/to/unpacked/client:/app/luclient:ro \\\n    -v /path/to/cachedir:/app/cache:rw \\\n    ghcr.io/darkflameuniverse/nexusdashboard:latest\n```\n\n * `/app/luclient` must be mapped to the location of an unpacked client\n    * you only need `res/` and `locale/` from the client, but dropping the whole client in there won't hurt\n * 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`\n    * Put the resulting `cdclient.sqlite` in the res folder: `res/cdclient.sqlite`\n\n### Environmental Variables\n\nPlease Reference `app/settings_example.py` to see all the variables\n\n  * Required:\n    * APP_SECRET_KEY (Must be provided)\n    * APP_DATABASE_URI (Must be provided)\n  * Everything else is optional and has defaults\n\n## Manual Linux Installation\n\nThanks to [HailStorm32](https://github.com/HailStorm32) for this manual install guide!\n\n### Setting Up The Environment\nFirst you will want to install the following packages by executing the following commands presuming you are on a Debian based system.\n\n`sudo apt-get update`\n\n`sudo apt-get install -y python3 python3-pip sqlite3 git unzip libmagickwand-dev`\n\n\u003e *Note: If  you are having issues with installing `sqlite3`, change it to `sqlite`*\n\n\u003cbr\u003e\nNext you will want to clone the repository. You can clone it anywhere, but for the purpose of this tutorial, we will be cloning it to the home directory.'\n\u003cbr\u003e\u003c/br\u003e\n\nRun `cd ~` to ensure that you are currently in the home directory then run the following command to clone the repository into our home directory\n`git clone https://github.com/DarkflameUniverse/NexusDashboard.git`\n\nYou should now have a directory called `NexusDashboard` present in your home directory\n\n### Setting up\n\nRename the example settings file\n`cp ~/NexusDashboard/app/settings_example.py ~/NexusDashboard/app/settings.py`\n\nNow let's open the settings file we just created and configure some of the settings with nano as it is a simple text editor that is easy to use\n`nano ~/NexusDashboard/app/settings.py`\n\u003e*Obviously you can replace this with a text editor of your choice, nano is just the most simple to use out of the ones available by default on most Linux distros*\n\n\u003cbr\u003e\nInside this file is where you can change certain settings like user registration, email support and other things. In this tutorial we will only be focusing on the bare minimum to get up and running, but feel free to adjust what you would like to fit your needs.\n\n\u003e*Note: There are options in here that are related to email registration and password recovery among other features however those require extra setup not covered by this tutorial*\n\nThe two important settings to configure are `APP_SECRET_KEY` and `APP_DATABASE_URI`\n\nFor `APP_SECRET_KEY`, fill in any random 32 character string\nFor `APP_DATABASE_URI`, fill in the respective fields\n```\n\u003cusername\u003e  --\u003e database username\n\u003cpassword\u003e  --\u003e database password\n\u003chost\u003e\t\t--\u003e database address\n\t(this will most likely be localhost if you are running the database on the same machine\n\u003cport\u003e\t\t--\u003e port number of the database\n\t(this can most likely be left out if you are running the database on the same machine)\n\u003cdatabase\u003e\t--\u003e database name\n```\n\u003e*If you are omitting `\u003cport\u003e`, make sure to also omit the `:`*\n\nFor a configuration where the database is running on the same machine, it would similar to this\n```\nAPP_SECRET_KEY = \"abcdefghijklmnopqrstuvwxyz123456\"\nAPP_DATABASE_URI = \"mysql+pymysql://DBusername:DBpassword@localhost/DBname\"\n```\nThe rest of the file is left at the default values\n\nOnce you are done making the changes, save and close the file\n\n##### Client related files\n\nWe will need the following folders from the client\n```\nlocale\n└───locale.xml\n\nres\n├───BrickModels\n├───brickprimitives\n├───textures\n├───ui\n├───brickdb.zip\n```\nPut the two folders in `~/NexusDashboard/app/luclient`\n\nUnzip the `brickdb.zip` in place\n`unzip brickdb.zip`\n\nRemove the `.zip` file after you have unzipped it, you can do that with\n`rm brickdb.zip`\n\nIn the `luclient` directory you should now have a file structure that looks like this\n```\nlocale\n└───locale.xml\n\nres\n├───BrickModels\n│   └─── ...\n├───brickprimitives\n│\t└─── ...\n├───textures\n│\t└─── ...\n├───ui\n│\t└─── ...\n├───Assemblies\n│\t└─── ...\n├───Primitives\n│\t└─── ...\n├───Materials.xml\n└───info.xml\n```\n\nWe will also need to copy the `CDServer.sqlite` database file from the server to the `~/NexusDashboard/app/luclient/res` folder\n\nOnce the file is moved over, you will need to rename it to `cdclient.sqlite`, this can be done with the following command\n```bash\nmv ~/NexusDashboard/app/luclient/res/CDServer.sqlite ~/NexusDashboard/app/luclient/res/cdclient.sqlite\n```\n\n\n##### Remaining Setup\nTo finish this, we will need to install the python dependencies and run the database migrations, simply run the following commands one at a time\n```bash\ncd ~/NexusDashboard\npip install -r requirements.txt\npip install gunicorn\nflask db upgrade\n```\n##### Running the site\nOnce all of the above is complete, you can run the site with the command\n`gunicorn -b :8000 -w 4 wsgi:app`\n\n## Manual Windows Setup\n\nWhile a lot of the setup on Windows is the same a lot of it can be completed with GUI interfaces and requires installing things from websites instead of the command line.\n\n### Setting Up The Environment\nYou need to install the following prerequisites:\n\n  * [Python 3.8](https://www.python.org/downloads/release/python-380/)\n  * [Git](https://git-scm.com/downloads)\n  * [ImageMagick](https://docs.wand-py.org/en/latest/guide/install.html#install-imagemagick-on-windows)\n  * [7-Zip](https://www.7-zip.org/download.html)\n\nNext you will need to clone the repository. You can clone it anywhere, but for the purpose of this tutorial, you will want to clone it to your desktop just for simplicity, it can be moved after.\n\nOpen a command prompt and run `cd Desktop` (The command line should place you in your Home directory be default) to ensure that you are currently in the desktop directory then run the following command to clone the repository into our desktop directory\n\nRun the following command to clone the repository `git clone https://github.com/DarkflameUniverse/NexusDashboard.git`\n\nYou should now have a directory called `NexusDashboard` present on your desktop.\n\n### Setting up\nNow that we have the repository cloned you need to rename the example settings file, you can perform this manually in the GUI or you can use the command line, to do the latter run the following commands\n  * `cd NexusDashboard\\app`\n  * `copy settings_example.py settings.py`\n\nNow let's open the settings file we just created and configure some of the settings with the Windows default notepad.\n* `notepad settings.py`\n\nInside this file is where you can change certain settings like user registration, email support and other things. In this tutorial we will only be focusing on the bare minimum to get up and running, but feel free to adjust what you would like to fit your needs.\n\n\u003e *Note: There are options in here that are related to email registration and password recovery among other features however those require extra setup not covered by this tutorial*\n\nThe two important settings to configure are `APP_SECRET_KEY` and `APP_DATABASE_URI`\n\nFor `APP_SECRET_KEY` you can just fill in any random 32 character string and for `APP_DATABASE_URI` you will need to fill in a connection string to your database. The connection string will look similar to this. You will need to fill in your own information for the username, password, host, port and database name.\n```\nAPP_DATABASE_URI = \"mysql+pymysql://\u003cusername\u003e:\u003cpassword\u003e@\u003chost\u003e:\u003cport\u003e/\u003cdatabase\u003e\"\n```\nand the rest of the file can be left at the default values other than the `APP_SECRET_KEY` which you will need to fill in with random characters.\n\nOnce you are done making the changes, save and close the file\n\n##### Client related files\nWe will need the following folders from the client\n```\nlocale\n└───locale.xml\n\nres\n├───BrickModels\n├───brickprimitives\n├───textures\n├───ui\n└───brickdb.zip\n```\nPut the two folders in `Desktop/NexusDashboard/app/luclient`\n\nUnzip the `brickdb.zip` in place using 7-Zip, you can do this by right clicking the file and selecting `7-Zip \u003e Extract Here`.\n\nAfter doing this you can remove the `.zip`, simply delete the file.\n\nIn the `luclient` directory you should now have a file structure that looks like this\n```\nlocale\n└───locale.xml\n\nres\n├───BrickModels\n│   └─── ...\n├───brickprimitives\n│\t└─── ...\n├───textures\n│\t└─── ...\n├───ui\n│\t└─── ...\n├───Assemblies\n│\t└─── ...\n├───Primitives\n│\t└─── ...\n├───Materials.xml\n└───info.xml\n```\n\nWe will also need to copy the `CDServer.sqlite` database file from the server to the `Desktop/NexusDashboard/app/luclient/res` folder\n\nOnce the file is moved over, you will need to rename it to `cdclient.sqlite`, this can be done by right clicking the file and selecting `Rename` and then changing the name to `cdclient.sqlite`\n\n##### Remaining Setup\nTo finish this, we will need to install the python dependencies and run the database migrations, simply run the following commands one at a time in the root directory of the site, if you are not in the root directory you can run `cd Desktop/NexusDashboard` to get there (assuming you have opened a new terminal window)\n```bat\npip install -r requirements.txt\nflask db upgrade\n```\n\n##### Running the site\nOnce all of the above is complete, you can run the site with the command\n`flask run` however bare in mind that this is a development version of the site, at the moment running a production version of the site on Windows is not supported.\n\n# Development\n\nPlease use [Editor Config](https://editorconfig.org/) to maintain a consistent coding style between different editors and different contributors.\n\n  * `python3 -m flask run` to run a local dev server\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDarkflameUniverse%2FNexusDashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDarkflameUniverse%2FNexusDashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDarkflameUniverse%2FNexusDashboard/lists"}