{"id":13674480,"url":"https://github.com/bfabiszewski/ulogger-server","last_synced_at":"2025-12-29T23:27:25.118Z","repository":{"id":37916943,"uuid":"85213175","full_name":"bfabiszewski/ulogger-server","owner":"bfabiszewski","description":"μlogger • web viewer for tracks uploaded with μlogger mobile client","archived":false,"fork":false,"pushed_at":"2025-03-30T08:41:57.000Z","size":10264,"stargazers_count":573,"open_issues_count":19,"forks_count":87,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-03-30T09:27:13.178Z","etag":null,"topics":["geolocation","gps","viewer","web"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bfabiszewski.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-16T15:42:53.000Z","updated_at":"2025-03-29T20:23:45.000Z","dependencies_parsed_at":"2023-12-06T13:38:56.852Z","dependency_job_id":"112d5a85-9389-4555-86da-a87692dc71a0","html_url":"https://github.com/bfabiszewski/ulogger-server","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfabiszewski%2Fulogger-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfabiszewski%2Fulogger-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfabiszewski%2Fulogger-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfabiszewski%2Fulogger-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bfabiszewski","download_url":"https://codeload.github.com/bfabiszewski/ulogger-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251330270,"owners_count":21572257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geolocation","gps","viewer","web"],"created_at":"2024-08-02T11:00:51.369Z","updated_at":"2025-12-29T23:27:25.062Z","avatar_url":"https://github.com/bfabiszewski.png","language":"PHP","readme":"# ![ulogger_logo_small](https://cloud.githubusercontent.com/assets/3366666/24080878/0288f046-0ca8-11e7-9ffd-753e5c417756.png)μlogger   [![Build Status](https://github.com/bfabiszewski/ulogger-server/workflows/Tests/badge.svg)](https://github.com/bfabiszewski/ulogger-server/actions)\n\nThis is a web application for real-time collection of geolocation data, tracks viewing and management.\nTogether with a dedicated [μlogger mobile client](https://github.com/bfabiszewski/ulogger-android) it may be used as a complete self hosted server–client solution for logging and monitoring users' geolocation.\n\n## Live demo:\n- https://ulogger.lima.zone \n- for testing track upload with Android app or track editing login with user: demo, password: demo\n- hosted by lima-city.de\n\n## Minimum requirements:\n- PHP 5.5\n- PHP extensions: ctype, json, pdo (with respective drivers), session, simplexml, xmlwriter, xdebug (only for tests)\n- MySQL, PostgreSQL or SQLite (over PDO driver)\n- browser with javascript enabled, cookies for authentication and saving preferences\n\n## Features:\n- simple\n- allows live tracking\n- track statistics\n- altitudes graph\n- multiple users\n- user authentication\n- Google Maps\n- OpenLayers (OpenStreet and other layers)\n- user preferences stored in cookies\n- simple admin menu\n- export tracks to gpx and kml\n- import tracks from gpx\n\n## Install\n- Download zipped archive or clone the repository on your computer\n- Move it to your web server directory (unzip if needed)\n- Fix folder permissions: `uploads` folder (for uploaded images) should be writeable by PHP scripts\n- In case of development version it is necessary to build javascript bundle from source files. You will need to install `npm` and run `npm install` and `npm run build` in root folder\n- Create database and database user (at least SELECT, INSERT, UPDATE, DELETE privileges, CREATE, DROP for setup script, SEQUENCES for postgreSQL)\n- Create a copy of `config.default.php` and rename it to `config.php`. Customize it and add database credentials\n- Edit `scripts/setup.php` script, enable it by setting [$enabled](https://github.com/bfabiszewski/ulogger-server/blob/master/scripts/setup.php#L21) value to `true`\n- Make sure you have a web server running with PHP and chosen database\n- Open http://YOUR_HOST/ulogger-server/scripts/setup.php page in your browser\n- Follow instructions in setup script. It will add database tables and set up your μlogger user\n- **Remember to remove or disable `scripts/setup.php` script**\n- Log in with your new user on http://YOUR_HOST/ulogger-server/\n- You may also want to set your new user as an [admin in config file](https://github.com/bfabiszewski/ulogger-server/blob/v0.2/config.default.php#L67)\n- Folders `.docker/` and `.tests/` as well as composer files are needed only for development. May be safely removed\n\n## Upgrade to version 1.x\n- Incompatible changes include database and config file changes\n- Upgrading manually:\n  - for database changes, see MySQL example script in `scripts/migrate_to_1_x.mysql`\n  - set `admin` column in `users` table to true for admin users\n  - edit configuration from application settings dialog\n- Upgrading with migration script from version 0.6:\n  - create database backup\n  - replace all project files with new ones, but keep old local config file: `config.php`\n  - change directory to application root folder and run migration script from the console: `php scripts/migrate_to_1_x.php`\n  - the script will update database schema and save old config variables to database\n- Additional tasks after manual or script update:\n  - edit your `config.php` file and remove all variables except database settings, see [config.default.php](https://github.com/bfabiszewski/ulogger-server/blob/master/config.default.php) for valid values\n  - make sure `uploads` folder (for images uploaded from client app) is writable by PHP\n  - clear browser cache and restart web page\n\n## Docker\n- 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\n- Optional configuration options with ENV variables, for list see [Dockerfile](https://github.com/bfabiszewski/ulogger-server/blob/master/Dockerfile). The variables correspond to main μlogger configuration parameteres\n- For example: `docker run --name ulogger -e ULOGGER_LANG=\"pl\" -p 8080:80 -d bfabiszewski/ulogger`\n- 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\n- For example: `docker build --build-arg DB_ROOT_PASS=secret1 --build-arg DB_USER_PASS=secret2 --build-arg DB_DRIVER=sqlite .`\n- Docker was created to facilitate development and testing. It is not production ready. If you want to use it in production, you will have to adjust it to your needs.\n\n## Tests\n- Install tests dependecies. PHP tests require PHP \u003e= 7.3.\n  - `composer install`\n  - `npm install`\n- 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\n  - `docker build -t ulogger .`\n  - `docker run -d --name ulogger -p 8080:80 -p 8081:3306 --expose 3306 -e ULOGGER_ENABLE_SETUP=1 ulogger`\n- Use environment variables (or create `.env` file in `.tests/` folder) to set up connection details (below database credentials are docker defaults)\n  - `DB_DSN=\"mysql:host=127.0.0.1;port=8081;dbname=ulogger;charset=utf8\"`\n  - `DB_USER=ulogger`\n  - `DB_PASS=secret2`\n  - `ULOGGER_URL=\"http://127.0.0.1:8080\"`\n- PHP tests\n  - `XDEBUG_MODE=coverage ./vendor/bin/phpunit -c .tests/phpunit.xml`\n- JS tests\n  - `npm test`  \n- Other tests\n  - `npm run lint:js`\n  - `npm run lint:css`\n\n## Translations\n- translations may be contributed via [Transifex](https://www.transifex.com/bfabiszewski/ulogger/)\n\n## Donate\n[![Donate paypal](https://img.shields.io/badge/donate-paypal-green.svg)](https://www.paypal.me/bfabiszewski)  \n![Donate bitcoin](https://img.shields.io/badge/donate-bitcoin-green.svg) `bc1qt3uwhze9x8tj6v73c587gprhufg9uur0rzxhvh`  \n![Donate ethereum](https://img.shields.io/badge/donate-ethereum-green.svg) `0x100C31C781C8124661413ed6d1AA9B1e2328fFA2`  \n\n## License\n- GPL\n- most icons come from [iconmonstr](https://iconmonstr.com)\n","funding_links":["https://www.paypal.me/bfabiszewski"],"categories":["Software","Uncategorized","Maps and Global Positioning System (GPS)"],"sub_categories":["Maps and Global Positioning System (GPS)","Uncategorized","E-commerce"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbfabiszewski%2Fulogger-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbfabiszewski%2Fulogger-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbfabiszewski%2Fulogger-server/lists"}