Setup
Standard

Standard

Install Prerequisites

  1. Install NodeJS (opens in a new tab)
  2. Install Rust (opens in a new tab)
  3. Install curl for your system if it's not already present

Install

  1. Clone this repo:

     git clone https://github.com/TurtIeSocks/Koji.git
  2. 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
  3. Create a new schema in your database for Kōji

  4. Copy the env file:

      cd server && cp .env.example .env
  5. 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
  6. Compile the client:

    cd ../client && yarn install && yarn build
  7. Compile the server:

    # you might have to also install pkg-config (`apt install pkg-config`)
    cd ../server && cargo install --path . --force
  8. Optionally install PM2 (opens in a new tab) to run the server in the background:

    npm install pm2 -g
    pm2 start koji # from the /server folder

Updating

# pull latest
git pull
 
# recompile OR-Tools
./or-tools/install.sh
 
# recompile client
cd client && yarn install && yarn build
 
# recompile server
cd ../server && cargo install --path . --force
 
# if using PM2
pm2 restart koji