Files
Tom Kralidis a15f9f2b52 add note for running WSGI and a virtualenv (thanks Australia BOM) (#1131)
* add note for running WSGI and a virtualenv (thanks Australia BOM)

* docs sweep

* fix
2023-02-03 20:50:21 -05:00

145 lines
3.4 KiB
ReStructuredText

.. _install:
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
--------------------------------------
.. code-block:: bash
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 <https://pypi.org/project/pygeoapi>`_
.. code-block:: bash
pip3 install pygeoapi
Docker
------
Using DockerHub
^^^^^^^^^^^^^^^
`Docker image`_
.. code-block:: bash
docker pull geopython/pygeoapi:latest
Using GitHub Container Registry
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`Docker image`_
.. code-block:: bash
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.
.. code-block:: bash
---
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 <https://anaconda.org/conda-forge/pygeoapi>`_
.. code-block:: bash
conda install -c conda-forge pygeoapi
UbuntuGIS
---------
`UbuntuGIS package (stable) <https://launchpad.net/%7Eubuntugis/+archive/ubuntu/ppa/+sourcepub/10758317/+listing-archive-extra>`_
`UbuntuGIS package (unstable) <https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+sourcepub/10933910/+listing-archive-extra>`_
.. code-block:: bash
apt-get install python3-pygeoapi
FreeBSD
-------
`FreeBSD port <https://www.freshports.org/graphics/py-pygeoapi>`_
.. code-block:: bash
pkg install py-pygeoapi
Summary
-------
Congratulations! Whichever of the abovementioned methods you chose, you have successfully installed pygeoapi
onto your system.
.. _`Docker image`: https://github.com/geopython/pygeoapi/pkgs/container/pygeoapi