/GPS-Tracker-1

GPS Tracker platform for Sinotrack ST-90x and OsmAnd devices built with Laravel 10 + PHP 8.1 and MySQL 8. Plataforma GPS Tracker para dispositivos Sinotrack ST-90x y OsmAnd creada con Laravel 10 + PHP 8.1 y MySQL 8.

Primary LanguagePHPMIT LicenseMIT

Castellano

GPS Tracker (Laravel 10 + PHP 8.1 + MySQL 8)

Sinotrack ST-90x device management platform built with Laravel 10 + PHP 8.1 and MySQL 8.

Requirements

  • PHP 8.1 or higher (bcmath bz2 intl mbstring opcache pdo_mysql pcntl redis sockets xsl zip)
  • MySQL 8.0
  • Redis

Local Installation

  1. Create the database in MySQL.

  2. Clone the repository.

git clone https://github.com/eusonlito/GPS-Tracker.git
  1. Copy the .env.example file as .env and fill in the necessary variables.
cp .env.example .env
  1. Install composer dependencies (remember that we always use the PHP 8.1 binary).
composer install --no-dev --optimize-autoloader --classmap-authoritative --ansi
  1. Generate the application key.
php artisan key:generate
  1. Regenerate the caches.
composer artisan-cache
  1. Launch the initial migration.
php artisan migrate --path=database/migrations
  1. Launch the seeder.
php artisan db:seed --class=Database\\Seeders\\Database
  1. Fill Timezones GeoJSON.
php artisan timezone:geojson
  1. Configure the cron job for the user related to the project:
* * * * * cd /var/www/tracker.domain.com && install -d storage/logs/artisan/$(date +"\%Y-\%m-\%d") && /usr/bin/php artisan schedule:run >> storage/logs/artisan/$(date +"\%Y-\%m-\%d")/schedule-run.log 2>&1
  1. Create the main user.
php artisan user:create --email=user@domain.com --name=Admin --password=StrongPassword2 --enabled --admin
  1. Configure the web server DocumentRoot to /var/www/project/public.

  2. Profit!

Upgrade

Updating the platform can be done in a simple way with the composer deploy command executed by the user who manages that project (usually www-data).

Docker Installation

  1. Clone the repository.
git clone https://github.com/eusonlito/GPS-Tracker.git
  1. [OPTIONAL] Copy file docker/.env.example to .env and configure your own settings
cp docker/.env.example .env
  1. [OPTIONAL] Copy file docker/docker-compose.yml.example to docker/docker-compose.yml and configure your own settings
cp docker/docker-compose.yml.example docker/docker-compose.yml
  1. Build docker images (will ask for the sudo password)
./docker/build.sh
  1. Start containers (will ask for the sudo password)
./docker/run.sh
  1. Create the admin user (will ask for the sudo password)
./docker/user.sh
  1. Launch the Timezone GeoJSON fill (will ask for the sudo password)
./docker/timezone-geojson.sh
  1. Open your web browser and goto http://localhost:8080

  2. Remember to add a web server (apache2, nginx, etc...) as a proxy to add features as SSL.

  3. If you are going to add or change the default ports for GPS Devices (8091) you must edit the gpstracker-app properties in docker-compose.yml to adapt them to your own configuration.

Docker Upgrade

  1. Update the project source
git pull
  1. Build docker images (will ask for the sudo password)
./docker/build.sh
  1. Start containers (will ask for the sudo password)
./docker/run.sh
  1. Open your web browser and goto http://localhost:8080

Server connection

The default port for devices with H02 protocol is 8091, but it can be customized on configuration panel (as admin).

To configure your device via SMS you can do it with the following command:

804{PASSWORD} {IP/HOST} {PORT}

You can configure the connection server in the device using either the IP or a HOST that will resolve internally BUT ONLY AT THE TIME OF RECEIVING THE COMMAND, so if the server does not have a fixed IP as soon as it changes you will stop receiving data from the device.

Common Sinotrack ST-901 SMS commands

Configuring the Phone from which you can connect to the device

{PHONE}{PASSWORD} 1

Set the time zone to UTC to delegate the time adjustment to the platform.

896{PASSWORD}E00

Enable GPRS Mode

710{PASSWORD}

Configure APN Operator

803{PASSWORD} {OPERATOR}

Configure Server

804{PASSWORD} {IP/HOST} {PORT}

Configure frequency in seconds of sending position reports with the car ignition on

805{PASSWORD} {SECONDS}

Configure frequency in seconds of sending position reports with the car ignition off

809{PASSWORD} {SECONDS}

Set timeout before switching to SLEEP mode when the car is stopped

SLEEP{PASSWORD} {MINUTES}

Deactivate call in case of alarm

151{PASSWORD}

Enable Device Low Battery SMS

011{PASSWORD}

Disable Device Low Battery SMS

010{PASSWORD}

Password change

777{PASSWORD-NEW}{PASSWORD-OLD}

Device restart

RESTART

Show current configuration

RCONF

Platform Commands

User Creation:

php artisan user:create {--email=} {--name=} {--password=} {--enabled} {--admin}

Start or Restart all configured servers:

The reset option allows you to reset the port in case it is being used.

php artisan server:start:all {--reset}

Start or Restart only one server port:

The reset option allows you to reset the port in case it is being used.

php artisan server:start {--port=} {--reset}

Screenshots

Screenshots are in spanish, you can change the system language to english.

gps-tracker-2022-12-30-11_46_09

gps-tracker-2022-12-30-11_47_14

gps-tracker-2022-12-30-11_47_46

gps-tracker-2022-12-30-11_48_31

gps-tracker-2022-12-30-11_49_20

gps-tracker-2022-12-30-11_49_55

gps-tracker-2022-12-30-11_51_24

gps-tracker-2022-12-30-11_51_49

gps-tracker-2022-12-30-11_52_07

gps-tracker-2022-12-30-11_52_51

gps-tracker-2022-12-30-11_55_23

gps-tracker-2022-12-30-11_55_48

gps-tracker-2022-12-30-11_56_07

gps-tracker-2022-12-30-11_56_33

gps-tracker-2022-12-30-11_57_50

gps-tracker-2022-12-30-11_58_06

gps-tracker-2022-12-30-11_58_56

gps-tracker-2022-12-30-11_59_25

gps-tracker-2022-12-30-11_59_48

gps-tracker-2022-12-30-12_00_04

gps-tracker-2022-12-30-12_00_30

gps-tracker-2022-12-30-12_01_20

gps-tracker-2022-12-30-12_01_43

gps-tracker-2022-12-30-12_02_01

gps-tracker-2022-12-30-12_03_07

gps-tracker-2022-12-30-12_03_37