/ulogger-server

μlogger • web viewer for tracks uploaded with μlogger mobile client

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

ulogger_logo_smallμlogger   Build Status

This is a web application for real-time collection of geolocation data, tracks viewing and management. Together with a dedicated μlogger mobile client it may be used as a complete self hosted server–client solution for logging and monitoring users' geolocation.

Live demo:

Requirements:

  • PHP 5.5 (5.4 with password_compat)
  • MySQL, PostgreSQL or SQLite (over PDO driver)
  • browser with javascript enabled, cookies for authentication and saving preferences

Features:

  • simple
  • allows live tracking
  • track statistics
  • altitudes graph
  • multiple users
  • user authentication
  • Google Maps
  • OpenLayers (OpenStreet and other layers)
  • ajax
  • user preferences stored in cookies
  • simple admin menu
  • export tracks to gpx and kml
  • import tracks from gpx

Install

  • Download zipped archive or clone the repository on your computer
  • Move it to your web server directory (unzip if needed)
  • Create database and database user (at least SELECT, INSERT, UPDATE, DELETE privileges, CREATE, DROP for setup script)
  • Create a copy of config.default.php and rename it to config.php. Customize it and add database credentials
  • Edit scripts/setup.php script, enable it by setting $enabled value to true
  • Make sure you have a web server running with PHP and chosen database
  • Open http://YOUR_HOST/ulogger-server/scripts/setup.php page in your browser
  • Follow instructions in setup script. It will add database tables and set up your μlogger user
  • Remember to remove or disable scripts/setup.php script
  • Log in with your new user on http://YOUR_HOST/ulogger-server/
  • You may also want to set your new user as an admin in config file.
  • Folders .docker/ and .tests/ as well as composer files are needed only for development. May be safely removed.

Docker

  • Run docker run --name ulogger -p 8080:80 -d bfabiszewski/ulogger and access http://localhost:8080 in your browser. Log in with admin:admin credentials and change default password.
  • Optional configuration options with ENV variables, for list see Dockerfile. The variables correspond to main μlogger configuration parameteres.
  • For example: docker run --name ulogger -e ULOGGER_LANG="pl" -p 8080:80 -d bfabiszewski/ulogger.
  • You may also build the image yourself. Run docker build . from the root folder where Dockerfile reside. There are optional build-time arguments that allow you to set default database passwords for root and ulogger users.
  • For example: docker build --build-arg DB_ROOT_PASS=secret1 --build-arg DB_USER_PASS=secret2 --build-arg DB_DRIVER=sqlite ..

Tests

  • Install tests dependecies.
    • composer install
  • Integration tests may be run against docker image. We need exposed http and optionally database ports (eg. mapped to localhost 8080 and 8081). Below example for MySQL setup.
    • docker build -t ulogger .
    • docker run -d --name ulogger -p 8080:80 -p 8081:3306 --expose 3306 ulogger
  • Use environment variables (or create .env file in .tests/ folder) to set up connection details (below database credentials are docker defaults)
    • DB_DSN="mysql:host=127.0.0.1;port=8081;dbname=ulogger;charset=utf8"
    • DB_USER=ulogger
    • DB_PASS=secret2
    • ULOGGER_URL="http://127.0.0.1:8080"
  • Run tests
    • ./vendor/bin/phpunit -c .tests/phpunit.xml

Todo

  • improve track editing
  • track display filters (accurracy, provider)
  • improve interface on mobile devices

Translations

  • translations may be contributed via Transifex.

License