From ef04febe285f7804b3b5919d182ffc7d5de7a6dc Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Mon, 2 May 2022 09:24:35 +0200 Subject: [PATCH 1/2] Create app_ulogger.md --- .../02.docs/ulogger/app_ulogger.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 pages/02.applications/02.docs/ulogger/app_ulogger.md diff --git a/pages/02.applications/02.docs/ulogger/app_ulogger.md b/pages/02.applications/02.docs/ulogger/app_ulogger.md new file mode 100644 index 00000000..8a1ec372 --- /dev/null +++ b/pages/02.applications/02.docs/ulogger/app_ulogger.md @@ -0,0 +1,52 @@ +--- +title: μlogger +template: docs +taxonomy: + category: docs, apps +routes: + default: '/app_ulogger' +--- + +![μlogger's logo](image://ulogger-logo.png?resize=100) + + +[![Install μlogger with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=ulogger) +[![Integration level](https://dash.yunohost.org/integration/ulogger.svg)](https://dash.yunohost.org/appci/app/ulogger) + + +### Index + +- [Features](#features) +- [Configuration](#configuration) +- [Useful links](#useful-links) + +**μlogger** is a web application for real-time collection of geolocation data, tracks viewing and management. Together with a dedicated μlogger mobile client (*F-Droid Store*) it may be used as a complete self hosted server–client solution for logging and monitoring users' geolocation. + +## Features: +- simple +- allows live tracking +- track statistics +- altitudes graph +- multiple users +- user authentication +- Google Maps +- OpenLayers (OpenStreet and other layers) +- user preferences stored in cookies +- simple admin menu +- export tracks to gpx and kml +- import tracks from gpx + +## Configuration +- Edit `scripts/setup.php` script, enable it by setting `$enabled` value to `true` +- Open http://YOUR_HOST/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 your host, +- You may also want to set your new user as an admin in config file `$admin_user = ""; + +## Useful links + +* Upstream app code repository: [https://github.com/bfabiszewski/ulogger-server](https://github.com/bfabiszewski/ulogger-server) +* Demo: [https://ulogger.lima.zone](https://ulogger.lima.zone) +* Application software repository: [https://github.com/YunoHost-Apps/ulogger_ynh](https://github.com/YunoHost-Apps/ulogger_ynh) +* Report a bug: [https://github.com/YunoHost-Apps/ulogger_ynh/issues](https://github.com/YunoHost-Apps/ulogger_ynh/issues) From 236225d7fd39ccd049796a4153c98a753702e67a Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Mon, 2 May 2022 09:25:36 +0200 Subject: [PATCH 2/2] Add files via upload --- images/ulogger-logo.png | Bin 0 -> 14053 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/ulogger-logo.png diff --git a/images/ulogger-logo.png b/images/ulogger-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7aac5abebf6f2dd8205625cdab104a65251fe215 GIT binary patch literal 14053 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