Install

pygeoapi is easy to install on numerous environments. Whether you are a user, administrator or developer, below are multiple approaches to getting pygeoapi up and running depending on your requirements.

Requirements and dependencies

pygeoapi runs on Python 3.

Core dependencies are included as part of a given pygeoapi installation procedure. More specific requirements details are described below depending on the platform.

For developers and the truly impatient

python3 -m venv pygeoapi
cd pygeoapi
. bin/activate
git clone https://github.com/geopython/pygeoapi.git
cd pygeoapi
pip3 install --upgrade pip
pip3 install -r requirements.txt
python3 setup.py install
cp pygeoapi-config.yml example-config.yml
vi example-config.yml  # edit as required
export PYGEOAPI_CONFIG=example-config.yml
export PYGEOAPI_OPENAPI=example-openapi.yml
pygeoapi openapi generate $PYGEOAPI_CONFIG > $PYGEOAPI_OPENAPI
pygeoapi serve
curl http://localhost:5000

pip

PyPI package info

pip3 install pygeoapi

Docker

Using DockerHub

Docker image

docker pull geopython/pygeoapi:latest

Using GitHub Container Registry

Docker image

docker pull ghcr.io/geopython/pygeoapi:latest

Kubernetes

Note

If using the PostgreSQL feature provider it is recommended to set NGINX ingress affinity-mode to persistent; see the below ingress example.

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ${KUBE_NAMESPACE}
labels:
   app: ${KUBE_NAMESPACE}
annotations:
   nginx.ingress.kubernetes.io/affinity: "cookie"
   nginx.ingress.kubernetes.io/session-cookie-name: ${KUBE_NAMESPACE}
   nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
   nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
   nginx.ingress.kubernetes.io/ssl-redirect: "false"
   nginx.ingress.kubernetes.io/affinity-mode: persistent
   nginx.ingress.kubernetes.io/session-cookie-hash: sha1
spec:
ingressClassName: nginx
rules:
- host: ${APP_HOSTNAME}
   http:
      paths:
      - path: /
      pathType: Prefix
      backend:
         service:
            name: ${KUBE_NAMESPACE}
            port:
            number: ${CONTAINER_PORT}

Conda

Conda package info

conda install -c conda-forge pygeoapi

UbuntuGIS

UbuntuGIS package (stable)

UbuntuGIS package (unstable)

apt-get install python3-pygeoapi

FreeBSD

FreeBSD port

pkg install py-pygeoapi

Summary

Congratulations! Whichever of the abovementioned methods you chose, you have successfully installed pygeoapi onto your system.