130 lines
4.9 KiB
Markdown
130 lines
4.9 KiB
Markdown
# Install
|
|
## Files needed to be downloaded before install.
|
|
### To run the server
|
|
* [PostgresSQL](https://www.postgresql.org/download/windows/) - current version using is 17
|
|
* [NodeJS](https://nodejs.org)
|
|
* [NSSM](https://nssm.cc/)
|
|
### To manage the server
|
|
* [VSCODE](https://code.visualstudio.com/)
|
|
* [Postman](https://www.postman.com/downloads/)
|
|
|
|
## Creating directories needed
|
|
* Create a new folder where we will host the server files.
|
|
* Copy the nssm.exe into this folder
|
|
* Copy the build files to the server (only needed for intial install).
|
|
* This will house all the compiles and minified files needed to start the server up, this includes the frontend.
|
|
* Save the nssm.exe into this folder as well, this will be used to control the service.
|
|
|
|
## Do the intial install
|
|
### DB instal setup
|
|
1. Install postgres
|
|
2. Open pgAdmin
|
|
3. create a new Database named lst_db
|
|
|
|
### Intial server setup
|
|
1. Open VSCode and navigate to the folder where you extracted the files.
|
|
2. Click trusted when it pops up.
|
|
3. Open a terminal window inside vscode.
|
|
4. Run the install script this will install all dependaceys needed as well as do all the database migrations
|
|
```bash
|
|
npm run prodinstall
|
|
```
|
|
### Create the .env file
|
|
In the root of the folder create a new .env file
|
|
add in the below and change each setting area that says change me to something that suits your needs
|
|
```env
|
|
# PORTS
|
|
# To keep it all simple we will pass VITE to the ports that are used on both sides.
|
|
VITE_SERVER_PORT=4400
|
|
|
|
# logLevel
|
|
LOG_LEVEL=debug
|
|
|
|
# Auth stuff
|
|
SALTING=12
|
|
SECRET=CHANGEME
|
|
JWT_SECRET=CHANGEME
|
|
JWT_REFRESH_SECRET=CHANGEME
|
|
|
|
# Expire info plus refresh change as needed
|
|
JWT_EXPIRES=60
|
|
JWT_REFRESH_THRESHOLD=30
|
|
JWT_ACCESS_EXPIRATION="1h"
|
|
JWT_REFRESH_EXPIRATION="7d"
|
|
|
|
# this code will need to be used when a user needs to have access to everything.
|
|
SECRETOVERRIDECODE="supersecretKey"
|
|
|
|
# Database url - please change the password if this is all you changed
|
|
DATABASE_URL="postgresql://postgres:PASSWORD@localhost:5432/lst_db"
|
|
|
|
# This is for usday1 restrictions with the lgvs and customer constraints.
|
|
FIFO=100
|
|
MAXLOTS=3
|
|
```
|
|
|
|
### Run the start command to get all the basic settings and modules installed
|
|
1. Run the below
|
|
```bash
|
|
npm start
|
|
```
|
|
This command will start up the server and seed the database.
|
|
* Settings will be set here.
|
|
* All modules will be added.
|
|
|
|
2. Press CTRL + C to stop the server.
|
|
3. Reopen postgres and review the settings make the changes to match the server your going to be running in.
|
|
* Change the server
|
|
* change the dbServer
|
|
* change plantToken
|
|
* then the remaining settings confirm if you need on or want to leave as default.
|
|
|
|
### Creating first user.
|
|
1. Start the server back up.
|
|
```bash
|
|
npm start
|
|
```
|
|
2. Open http://[SERVER]:[PORT]/api/docs or postman and create a user.
|
|
* Please do not try to manually enter a new user this is due to how the password is hashed, as well as setting systemAdmin for the first user.
|
|
* Change the server and port to what you changed in the DB.
|
|
3. Stop the server again with CTRL + C.
|
|
|
|
### Running as a serivice.
|
|
You want to CD into the scripts folder.
|
|
```bash
|
|
cd .\dist\server\scripts\
|
|
```
|
|
Next use the example command below to get the service up and running.
|
|
* Options legend
|
|
* serviceName = not recommended to change to reduce issues with the update process
|
|
* option = use install for the install, but you can use this script later to stop, start, restart the service.
|
|
* appPath = where did you extract the server files
|
|
* description = no need to change this unless you want it to be something else
|
|
* command = do not change this unless you know what your doing and really need to change this.
|
|
```powershell
|
|
.\services.ps1 -serviceName "LSTV2" -option "install" -appPath "E:\LST\lstV2" -description "Logistics Support Tool V2" -command "run start"
|
|
```
|
|
|
|
# Migrating From V1 to V2
|
|
## User migration
|
|
1. Open the sqlite db and export to sql the users table
|
|
2. OPen the sql in notepad++ or your editor of choice and change the query to be similar to below.
|
|
* we only need to have save the username, role, email, password
|
|
|
|
An example new query will look like
|
|
* Below is how it looks when exported from sqlite
|
|
```sql
|
|
INSERT INTO "User" ("id", "username", "email", "role", "password", "passwordToken", "tokenExpire", "active", "pinCode", "lastLogin", "add_user", "add_date", "upd_user", "upd_date") VALUES
|
|
(1, 'matthes01', 'blake.matthes@alpla.com', 'admin', 'JDJiJDEMUJEdGtL', NULL, NULL, '1', NULL, '1721075647687', 'LST_System', '1721075647687', 'LST_System', '1721075647687');
|
|
```
|
|
|
|
The way we want to put recreate the query to work with the new db
|
|
* Below example
|
|
```sql
|
|
INSERT INTO "users" ("username", "email", "role", "password") VALUES
|
|
('matthes01','blake.matthes@alpla.com','admin','JDJiJDE1FuNFpkYlk4NGdHUXpEMzlHR1BD'),
|
|
('leland001','jordan.leland@alpla.com','manager','vekJhN1dIVVVZa3pxR1l0T2hX'),
|
|
('brandon001','brandon.harry@alpla.com','manager','wdm1RSXJlZnJDYTZP');
|
|
;
|
|
```
|
|
* You could have many users and just add like above with the identical info from the db |