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 Flygon (if using) or RDM database (if you're using a hybrid Golbat/RDM setup)
        # CONTROLLER_DB_URL='mysql://flygon_user:flygon_password@host:3306/flygon_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:

    cd ../server && cargo run -r
    # you might have to also install pkg-config (`apt install pkg-config`)
  8. 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

  1. Pull update

    git pull
  2. Recompile OR-Tools

    ./or-tools/install.sh
  3. Recompile Client

    cd client && yarn install && yarn build
  4. Recompile Server

    cd ../server && cargo run -r
  5. If using pm2

    pm2 restart koji