bce6fca58c | ||
---|---|---|
.. | ||
cache | ||
src | ||
.npmignore | ||
README.md | ||
jest.config.js | ||
package.json | ||
tsconfig.json |
README.md
Running the FacilMap server
Using docker
FacilMap is available as facilmap/facilmap
on Docker Hub. Here is
an example docker-compose.yml
:
version: "2"
services:
facilmap:
image: facilmap/facilmap
ports:
- 8080
links:
- db
environment:
USER_AGENT: My FacilMap (https://facilmap.example.org/, facilmap@example.org)
DB_TYPE: mysql
DB_HOST: db
DB_NAME: facilmap
DB_USER: facilmap
DB_PASSWORD: password
OSR_TOKEN: # Get an API key on https://go.openrouteservice.org/ (needed for routing)
MAPBOX_TOKEN: # Get an API key on https://www.mapbox.com/signup/ (needed for routing)
MAPZEN_TOKEN: # Get an API key on https://mapzen.com/developers/sign_up (needed for elevation info)
MAXMIND_USER_ID: # Sign up here https://www.maxmind.com/en/geolite2/signup (needed for geoip lookup to show initial map state)
MAXMIND_LICENSE_KEY:
restart: on-failure
db:
image: mariadb
environment:
MYSQL_DATABASE: facilmap
MYSQL_USER: facilmap
MYSQL_PASSWORD: password
MYSQL_RANDOM_ROOT_PASSWORD: "true"
Or the same using docker create
:
docker create --link=mysql_mysql_1 -p 8080 --name=facilmap -e "USER_AGENT=My FacilMap (https://facilmap.example.org/, facilmap@example.org)" -e DB_TYPE=mysql -e DB_HOST=mysql_mysql_1 -e DB_NAME=facilmap -e DB_USER=facilmap -e DB_PASSWORD=facilmap -e OSR_TOKEN= -e MAPBOX_TOKEN= -e MAPZEN_TOKEN= --restart on-failure facilmap/facilmap
See below for the available config options.
Both the FacilMap server and the frontend will be available via HTTP on port 8080
. It is recommended to use a reverse
proxy, such as jwilder/nginx-proxy
, to make it available over HTTPS.
Standalone
To run the FacilMap server by hand, follow the following steps:
- Make sure that you have a recent version of Node.js, yarn and a database (MariaDB, MySQL, PostgreSQL, SQLite, Microsoft SQL Server) set up. (Note that only MySQL/MariaDB has been tested so far.)
- Clone this repository.
- Run
yarn install
in the root folder of this repository to install the dependencies. - Run
yarn build
to create the JS bundles - Copy
config.env.example
toconfig.env
and adjust the configuration (see below for the available options). - Inside the
server
directory, runyarn server
. This will automatically set up the database structure and start the server.
Config
The config can be set either by using environment variables (useful for docker) or by editing config.env
.
Variable | Meaning |
---|---|
USER_AGENT |
Will be used for all HTTP requests (search, routing, GPX/KML/OSM/GeoJSON files). You better provide your e-mail address in here. |
HOST |
The ip address to listen on (leave empty to listen on all addresses) |
PORT |
The port to listen on. |
DB_TYPE |
The type of database. Either mysql , postgres , mariadb , sqlite , or mssql . |
DB_HOST |
The host name of the database server (default: localhost ). |
DB_PORT |
The port of the database server (optional). |
DB_NAME |
The name of the database (default: facilmap ). |
DB_USER |
The username to connect to the database with (default: facilmap ). |
DB_PASSWORD |
The password to connect to the database with. |
ORS_TOKEN |
OpenRouteService API key. |
MAPBOX_TOKEN |
Mapbox API key. |
MAPZEN_TOKEN |
Mapzen API key. |
MAXMIND_USER_ID |
MaxMind user ID. |
MAXMIND_LICENSE_KEY |
MaxMind license key. |
Development
For developing the frontend/client, FacilMap server can integrate a webpack-dev-server. This server will automatically
recompile the frontend files when a file changes, and even delay reloads until the compilation has finished. To run
the dev server, run yarn dev-server
instead of yarn server
in the server
directory.
To enable debug output of various components, additionally prepend the command by DEBUG=*
. See the documentation of
debug. To only enable the debug logging of SQL queries, use DEBUG=sql
.