LIPI in Docker Container
Lipi is now available via docker. if you already have docker installed, you could run LIPI with only a few commands. To install docker on various platforms see https://docs.docker.com/get-docker/
Running LIPI
Create an environment variable file lipi-docker-env-file
LIPI_API_KEY=<lipi-api-key>
# Where DNA Spaces is the position provider, the following should be left as is
POSITION_PROVIDER_USERNAME=<username-here>
POSITION_PROVIDER_PASSWORD=<password-here>
Use the environment variable file to start the lipi
For production: Start the service in the background, by adding the --detach
option:
sudo docker run --detach --rm --name lipi \
--env-file=lipi-docker-env-file \
-p 443:8080 \
gcr.io/mazemap-public-docker/lipi:latest
Special case: For debugging/testing: you can run without the --detach option to remain inside the docker context and see what is going in after starting it.
sudo docker run --rm --name lipi \
--env-file=lipi-docker-env-file \
-p 443:8080 \
gcr.io/mazemap-public-docker/lipi:latest
Inspecting logs
Docker has a command to view the logs of containers running in the background: docker logs <container_name>
.
By default this command prints everything logged since the container was started and then returns you to the command prompt. You may add the option --follow
to see the log messages as they arrive. If the service has been running for a long time and you’re only interested in, say, messages from the last 5 minutes, use --since 5m
. Putting it all together:
Start Server with local config.json
file
This is a special case, the normal case for production use is to start the service in the background, as described further up in this document.
Applying LIPI Config Changes
Changes to the LIPI configuration can be applied by deleting the container:
And then starting again it in the same way as normal.
Available LIPI versions
You can choose to run a specific LIPI version by replacing latest
with a specific version string. To list available versions:
Recognized variables
LIPI_API_KEY - Api key from lipi config in Map Editor
LIPI_HTTP_SCHEME - The http protocol LIPI will run with (
http
orhttps
)POSITION_PROVIDER_USERNAME - Username of the position provider (CMX, Aruba ALE...)
POSITION_PROVIDER_PASSWORD - Password of the position provider (CMX, Aruba ALE...)
HTTP_PROXY_SCHEME - Proxy server protocol (http or https)
HTTP_PROXY_HOST - Host name of proxy server
HTTP_PROXY_PORT - Port number for proxy server
REQUIRE_API_KEY_IN_NOTIFICATIONS - If set to “yes”, rejects CMX notifications if they don’t have X-LIPI-API-Key header set to the value of LIPI_API_KEY. Added in 4.2.12.
Required
LIPI_API_KEY
POSITION_PROVIDER_USERNAME
POSITION_PROVIDER_PASSWORD
Optional and defaults
LIPI_HTTP_SCHEME='https'
Possible Values:
http
,https
REQUIRE_API_KEY_IN_NOTIFICATIONS='no'
Security and privacy considerations
The LIPI_HTTP_SCHEME should only be set to http for testing purposes, as this means that users' positions will be sent unencrypted between LIPI and the user devices.
The REQUIRE_API_KEY_IN_NOTIFICATIONS variable should be set to “yes” in production, otherwise it is theoretically possible for malicious users to pose as a CMX server and inject position and user data into the LIPI, which could cause service disruptions.