Installation ############ **FitTrackee** can be installed: - via a single Python package from `PyPI `__, - from sources, - with a `Docker `__ image. Thanks to contributors, packages are also available on `Yunohost `__ and `NixOS `__. Main dependencies ***************** This application is written in Python (API) and Typescript (client): - API: - Flask - `SQLAlchemy `_ and `geoalchemy2 `_ to interact with the database - `gpxpy `_ to parse gpx files - `fitdecode `_ to parse fit files - `GeoPandas `_ to work with geospatial data - `Static Map 3 `_, a fork of `Static Map `_ to generate a static map image from file coordinates - `Dramatiq `_ and `Flask-Dramatiq `_ for task queue - `Authlib `_ for OAuth 2.0 Authorization support - `Flask-Limiter `_ for API rate limits - `gunicorn `_ to serve application - Client: - Vue3/Vuex - `Leaflet `__ to display map - `Chart.js `__ to display charts - `heatmap.js `__ (`fork `__) and `leaflet-heatmap `__ to display heatmap for rackets sports - `zxcvbn-ts `_ for password strength estimation | Logo, most of sports icons and weather icons are made by `Freepik `__ from `Flaticon `__. | FitTrackee also uses icons from `Fork Awesome `__. | Sports icons for Canoeing, Kayaking and Rowing are made by `@Von-Birne `__. | Sport icon for Halfbike is made by `@astridx `__. Instance types ************** Single-user instance ==================== | For a single-user instance, `registration <../features/administration.html#configuration>`__ can be disabled. | So all you need is Python and PostgreSQL/PostGIS database if you want to keep the setup simple. A `CLI <../cli.html#users>`__ is available to manage user account. Multiple-users instance ======================= | Registration can en enabled and maximum number of accounts can be set in the `Administration <../features/administration.html#configuration>`__. | It is recommended to set Redis and a SMTP provider for email sending and tasks processing. Alternatively, a `CLI <../cli.html#users>`__ is available to manage users account. Prerequisites ************* - mandatory - installation from sources or package: - `Python `__ 3.10+ - `PostgreSQL `__ 14+ - `PostGIS `__ 3.4+ - `GDAL `__ on the server running the application, if different from the server running the database (GDAL is installed with PostGIS) - installation with Docker: - `Docker `__ and `Docker Compose `__ v2.30+ - optional - `Redis `__ for `task queue `__ (for `email `__ sending if enable, for data export requests, and asynchronous archive uploads if enabled) and `API rate limits `__ (for installation from sources or package) - SMTP provider (if `email `__ sending is enabled) - API key from a `weather data provider `__ - `elevation data provider `__ - `Poetry `__ 1.2+ (for installation from sources only) - `Node `__ 20+ and `Yarn `__ (for development only) .. note:: | If registration is enabled, it is recommended to set Redis and a SMTP provider for email sending and data export requests. .. note:: Depending on the operating system and the version of Python installed, additional dependencies may be required, such as **gcc** or **libgdal-dev**. .. important:: This documentation does not detail how to secure a server. Please refer to the documentation and best practices corresponding to your installation and operating system. .. toctree:: :maxdepth: 2 environments_variables.rst installation upgrade deployment map_tile_server weather elevation emails api_rate_limits tasks_processing