Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Use cases:

  • Positioning with DNA Spaces

  • FMF with DNA Spaces

This LIPI server is just a docker-based nginx server that adds some headers. It is designed to be very simple and require very few or no upgrades over time. It is started by an entrypoint that first downloads config files and ssl certificate from our servers.

Map editor configuration requirements

  • A mazepos.com subdomain DNS entry pointing to the local private IP of the server where the Proxy-LIPI will be running.

  • A network configuration set up that covers the public IP range(s) of the customer that intends to communicate with this LIPI, that points to the dns entry above.

  • A position configuration with type “MM_POSITION_CONFIG_TYPE_CLOUD_POSITIONING”

  • A LIPI Config set up with position provider type “MazeMap Cloud Positioning”, pointing to the position config above and the dns entry above.

Server requirements

No specific requirements except that it should have docker installed. To install docker on various platforms see https://docs.docker.com/get-docker/.

The CPU and RAM requirements will vary on traffic, but in most cases will not have any specific requirements, as this is a simple nginx proxy. E.g. running a minimum of 1x CPU and 2 GB Ram should cover most use cases.

Installation, running and basic usage

You need the API key associated with the LIPI config mentioned above. It's good practice to not expose secrets in the command line, so create a file to keep it in that is not readable to other users:

echo "LIPI_API_KEY=" >proxy-lipi-docker-env-file
chmod 600 proxy-lipi-docker-env-file
editor proxy-lipi-docker-env-file

In the editor, paste the API key after the equals sign.

Then run:

sudo docker run --rm --name proxy-lipi \
    --env-file proxy-lipi-docker-env-file \
    -p 443:4343 \
    gcr.io/mazemap-public-docker/proxy-lipi:latest

Note that this starts the service in the foreground, so you can’t log out without stopping it. This is suitable when testing, but not for production. See below for instructions on how to start the service in the background.

You should see two messages about connecting to admin.mazemap.com. After this, the service should be running and can be accessed from the local network. This can be tested from the server with:

curl https://localhost:443/health -k

You can also test it from anywhere on the local network with:

curl https://<my-subdomain>.mazepos.com:443/health

Running in production

To run the container in the background (detached mode):

sudo docker run -d --name proxy-lipi \
    --env-file $LIPI_ENV_FILE \
    -p 443:4343 \
    gcr.io/mazemap-public-docker/proxy-lipi:latest

To access logs, run:

sudo docker ps -a
sudo docker logs -f <container_id>

Upgrading and restarting

There can be many reasons why you want to restart the container. When it starts, it downloads a certificate and a configuration associated with your LIPI API key, and if any of those have changed, you need to restart in order to see the effects of those changes. Changes to these things require a restart to take effect:

  • LIPI API key

  • mazepos subdomain

  • resolver config

  • cloud positioning service hostname or port

  • MazeMap App Id or Key

  • Turning on or off SSL (https) for testing purposes.

  • Certificate renewal.

Also if a new version of proxy-lipi has been released, a restart is required to upgrade.

To restart the container, first remove it:

sudo docker rm -f proxy-lipi

If you want to upgrade, pull the newest version of the image:

sudo docker pull gcr.io/mazemap-public-docker/proxy-lipi:latest

Then start it again:

sudo docker run -d --name proxy-lipi \
    --env-file proxy-lipi-docker-env-file \
    -p 443:4343 \
    gcr.io/mazemap-public-docker/proxy-lipi:latest

If you want to minimize downtime, put these commands after each other in a script file that you can then run.

LIPI-Cisco (DNA) Spaces diagram

  • No labels