Skip to content

Install Panoramax API

Panoramax API can be installed with different means, you can install it:

  • as a Python package, manually or via PyPI
  • with a simple Docker
  • ☁️ using a PaaS like Scalingo
  • with a fully integrated Docker compose

The manual approach offers a high-level of customization whereas the docker compose/Scalingo approach are more plug & play.

Note

A Panoramax instance always needs an up and running database, as seen in database setup documentation

As a Python package

Panoramax API best runs with a recent Linux server and needs at least Python 3.10

Install

You have to run following commands for installing classic dependencies:

# Retrieve API source code
git clone https://gitlab.com/panoramax/server/api.git geovisio-api
cd geovisio-api/

# Enable Python environment
python3 -m venv env
source ./env/bin/activate

# Install Python dependencies
pip install -e .
# Enable Python environment
python3 -m venv geovisio_env
source ./geovisio_env/bin/activate

# Install Python dependencies
pip install geovisio

☁️ Scalingo

The Panoramax API can be easily deployed on Scalingo solutions. All necessary settings should be defined as environment variables. Various fixtures were defined in Panoramax to make the process as straightforward as possible.

General documentation for deploying applications on Scalingo is available on their website.

Docker

You just need an up-to-date Docker version. The image is panoramax/api and are tagged by versions.

There are 2 particular tags:

  • latest is the latest released version
  • develop is the rolling release for on the edge features

Note: the repository was geovisio/api before being moved to panoramax/api. It you still you geovisio/api, make sure to update the docker image name to get the lastest versions.

Docker Compose

You just need an up to date Docker version. The Docker compose provided in this repository will install all needed components, including the database.

Each Docker compose files in the repository is a demo of a way to setup Panoramax API, but since Panoramax API is quite flexible, not all possibilities are covered.

There is:

docker-compose.yaml

minimal example with only Panoramax API

docker/docker-compose-full.yaml

offers a full fledged Panoramax instance (Website, API, database, Keycloak).

Note: This does not include a blurring API

If a blurring API is needed, the docker-compose-blurring.yml file can be used alongside it with:

docker compose -f docker/docker-compose-full.yml -f docker/docker-compose-blurring.yml up
Sadly, for the moment it will use the old Panoramax blurring service since the newest one, SGBlur is not yet dockerized.

For more complete setup, you can check the tutorials:

Warning

The Docker compose files provided in this repository are more meant as examples, and will likely need to be updated to fit your production workflow. You will likely need to at least handle 🔒 SSL/HTTPS and 🗄️ data backup.

Feel free to copy the Docker compose file that better suits your needs and adapt it.