diff --git a/README.md b/README.md index b66e870..ddfc085 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,8 @@ # Deployment +> **NOTE: This tutorial assumes you have a working DLU server instance and** +> **some knowledge of Linux** ## Docker ```bash @@ -100,25 +102,120 @@ Please Reference `app/settings_exmaple.py` to see all the variables * Everything else is optional and has defaults ## Manual - * Install `imagemagick` or `libmagickwand-dev` for dds-to-png conversion - * Copy `app/settings_exmaple.py` to `app/settings.py` and adjust the settings you would like. - * 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 + +Thanks to [HailStorm32](https://github.com/HailStorm32) for this manual install guide! +### Setting Up The Environment +First you will want to install the following packages by executing the following commands +`sudo apt-get update` +`sudo apt-get install -y python3 python3-pip sqlite3 git unzip libmagickwand-dev` + +> *Note: If you are having issues with installing `sqlite3`, change it to `sqlite`* + +
+Next we will clone the repository. You can clone it anywhere, but for the purpose of this tutorial, we will be cloning it to the home directory. + +`cd` *make sure you are in the home directory* +`git clone https://github.com/DarkflameUniverse/NexusDashboard.git` + +You should now have a directory called `NexusDashboard` + +### Setting up + +Rename the example settings file +`cp ~/NexusDashboard/app/settings_example.py ~/NexusDashboard/app/settings.py` + +Now let's open the settings file we just created and configure some of the settings +`vim ~/NexusDashboard/app/settings.py` +>*Feel free to use any text editor you are more comfortable with instead of vim* + +
+Inside this file is where you can change certain settings like user registration, email support and other things. In this tutorial I will only be focusing on the bare minimum to get up and running, but feel free to adjust what you would like +>*Note: Enabling the email option will require further setup that is outside the scope of this tutorial* + +The two important settings to configure are `APP_SECRET_KEY` and `APP_DATABASE_URI` + +For `APP_SECRET_KEY`, fill in any random 32 character string +For `APP_DATABASE_URI`, fill in the respective fields +``` + --> database username + --> database password + --> database address + (this will most likely be localhost if you are running the database on the same machine + --> port number of the database + (this can most likely be left out if you are running the database on the same machine) + --> database name +``` +>*If you are omitting ``, make sure to also omit the `:`* + +For a configuration where the database is running on the same machine, it would similar to this +``` +APP_SECRET_KEY = "abcdefghijklmnopqrstuvwxyz123456" +APP_DATABASE_URI = "mysql+pymysql://DBusername:DBpassword@localhost/DBname" +``` +The rest of the file is left at the default values + +Once you are done making the changes, save and close the file + +##### Client related files + +We will need the following folders from the client +``` +locale (all of the files inside) + +res +|_BrickModels +|_brickprimitives +|_textures +|_ui +|_brickdb.zip +``` +Put the two folders in `~/NexusDashboard/app/luclient` + +Unzip the `brickdb.zip` in place +`unzip brickdb.zip` + +Remove the `.zip` after you have unzipped it +`rm brickdb.zip` + +In the `luclient` directory you should now have a file structure that looks like this +``` +local +|_locale.xml + +res +|_BrickModels + |_... +|_brickprimitives + |_... +|_textures + |_... +|_ui + |_... +|_Assemblies + |_... +|_Primitives + |_... +|_Materials.xml +|_info.xml +``` + +We will also need to copy the `CDServer.sqlite` database file from the server to the `~/NexusDashboard/app/luclient/res` folder + +Once the file is moved over, you will need to rename it to `cdclient.sqlite` +`mv ~/NexusDashboard/app/luclient/res/CDServer.sqlite ~/NexusDashboard/app/luclient/res/cdclient.sqlite` + + +##### Remaining Setup +Run the following commands one at a time + +`cd ~/NexusDashboard` +`pip install -r requirements.txt` +`pip install gunicorn` +`flask db upgrade` + +##### Running the site +You can run the site with +`gunicorn -b :8000 -w 4 wsgi:app` # Development