Standard
Install Prerequisites
- Install NodeJS (opens in a new tab)
- Install Rust (opens in a new tab)
- Install
curl
for your system if it's not already present
Install
-
Clone this repo:
git clone https://github.com/TurtIeSocks/Koji.git
-
Install OR-Tools:
⚠️Check the OR-Tools Prerequisites (opens in a new tab)
For example, on Ubuntu 20.04:
sudo apt update sudo apt install -y build-essential cmake lsb-release
sudo chmod +x or-tools/install.sh && ./or-tools/install.sh
-
Create a new schema in your database for Kōji
-
Copy the env file:
cd server && cp .env.example .env
-
Edit the env file:
nano .env
:# To escape special characters you must surround the values with single quotes ('') # Commented out variables are optional # Your Golbat or RDM database SCANNER_DB_URL='mysql://rdm_user:rdm_password@host:3306/rdm_database' # Your Dragonite (if using) or RDM database (if you're using a hybrid Golbat/RDM setup) # CONTROLLER_DB_URL: 'mysql://dragonite_user:dragonite_password@host:3306/dragonite_database' # Your Koji database KOJI_DB_URL='mysql://koji_user:koji_password@127.0.0.1:3306/koji_database' # Max Database connections # MAX_CONNECTIONS=100 # Your Koji API bearer token and client password KOJI_SECRET='your_super_secret' # Host address # HOST='0.0.0.0' # Host port # PORT='8080' # Start latitude on initial client load # START_LAT=0 # Start longitude on initial client load # START_LON=0 # Nominatim URl used for searching and importing geofences from OSM # NOMINATIM_URL='https://nominatim.openstreetmap.org' # highly recommended using your own # Logging level | error | warn | info | debug | trace # LOG_LEVEL=info
-
Compile the client:
cd ../client && yarn install && yarn build
-
Compile the server:
cd ../server && cargo run -r # you might have to also install pkg-config (`apt install pkg-config`)
-
Optionally install PM2 (opens in a new tab) to run the server in the background:
npm install pm2 -g pm2 start "cargo run -r" --name koji # from the /server folder
Updating
-
Pull update
git pull
-
Recompile OR-Tools
./or-tools/install.sh
-
Recompile Client
cd client && yarn install && yarn build
-
Recompile Server
cd ../server && cargo run -r
-
If using pm2
pm2 restart koji