Update doc
This commit is contained in:
parent
6035f93868
commit
c4dba88ed6
2 changed files with 80 additions and 9 deletions
23
README.md
23
README.md
|
@ -3,21 +3,35 @@
|
||||||
*Gisaf* is a web based GIS (Geographical Information System) initially developed
|
*Gisaf* is a web based GIS (Geographical Information System) initially developed
|
||||||
for the CSR Goematics unit in Auroville, India.
|
for the CSR Goematics unit in Auroville, India.
|
||||||
|
|
||||||
|
Its main audiences are local administrations which need a platform
|
||||||
|
to develop and maintain a geographical, topological and environmental data,
|
||||||
|
allow teams of surveyors to upload data and update the GIS in near real time,
|
||||||
|
and collect data from a wide range of sources.
|
||||||
|
|
||||||
|
Although it just works out of the box, it is primarily intended to be customized
|
||||||
|
and extended with the data, uses, needs.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Layers defined with Python plugins or ANSI-standard categories
|
- Layers defined with Python plugins or ANSI-standard categories
|
||||||
|
- Open source industry standard interfaces (PostGIS database, OGCAPI)
|
||||||
- Support of different geographical projections
|
- Support of different geographical projections
|
||||||
- Integrated administration interface
|
- Integrated administration interface
|
||||||
- Export of data from standard formats (Geopackage, Shapefile)
|
- Export of data from standard formats (Geopackage, Shapefile)
|
||||||
- Import and update of data managed in a well defined workflow with "baskets"
|
- Import and update of data managed in a well defined workflow with "baskets"
|
||||||
|
- Acquisition of different kinds of surveyors' equipments, accuracies
|
||||||
|
- Robust mechanisms of identification of the data sources, survey times
|
||||||
|
- Geographical feature statuses (eg. Existing, Deprecated, Future)
|
||||||
- Role-based access to data
|
- Role-based access to data
|
||||||
- Support temporal and other data for different features
|
- Support temporal and other data for different features
|
||||||
|
- Easy integration with IoT sensors, eg. using the MQTT protocol
|
||||||
- Detailed information for all features
|
- Detailed information for all features
|
||||||
- Tagging of features
|
- Tagging of features
|
||||||
- Customizable, user triggered actions
|
- Customizable, user triggered actions
|
||||||
- Background map
|
- Background map
|
||||||
- Customizable base maps (domain specific set of layers)
|
- Customizable base maps (domain specific set of layers)
|
||||||
- Plugin architecture: add functions with Python packages
|
- Plugin architecture: add functions with Python packages
|
||||||
|
- Free and open source
|
||||||
|
|
||||||
## Software stack
|
## Software stack
|
||||||
|
|
||||||
|
@ -31,3 +45,12 @@ for the CSR Goematics unit in Auroville, India.
|
||||||
## Installation / deployment
|
## Installation / deployment
|
||||||
|
|
||||||
See the documentation in the deployment directory.
|
See the documentation in the deployment directory.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Documentation is being rewritten. Please contact us.
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
A very basic demo without any data, basically to give a feel of the user interface,
|
||||||
|
is available [here](https://gisaf.pholmi.ydns.eu).
|
||||||
|
|
|
@ -1,23 +1,68 @@
|
||||||
# Kubernetes deployment
|
# Gisaf deployment / installation
|
||||||
|
|
||||||
This directory contains files for deployment on Kubernetes.
|
This documentation covers the specifics of Gisaf deployment, but
|
||||||
|
it does no cover application configuration details,
|
||||||
|
the set up of a public facing web server handling dns domain / https security.
|
||||||
|
|
||||||
|
*Gisaf* is shipped as containers for easy and effective installation,
|
||||||
|
and packages to deploy them for different environments.
|
||||||
|
|
||||||
|
There are 4 containers:
|
||||||
|
|
||||||
|
- Frontend (Angular build: static files, served by an nginx process,
|
||||||
|
eventually forwarding requests to the backend)
|
||||||
|
- Backend (Python server)
|
||||||
|
- Postgis database server
|
||||||
|
- Redis server
|
||||||
|
|
||||||
|
Commands below assume that they are run from their respective directories
|
||||||
|
(`deployment/systemd`, `deployment/kubernetes`, ...).
|
||||||
|
|
||||||
|
## Systemd
|
||||||
|
|
||||||
|
With the help of *podman*, systemd can handle starting/restarting services, etc,
|
||||||
|
even with a non-privileged user.
|
||||||
|
|
||||||
|
The 4 containers are in the same *pod*, as it is meant primarily for a lightweight
|
||||||
|
production environment, but this can be easily adapted.
|
||||||
|
|
||||||
|
The `deployment/systemd` directory contains files used for running *Gisaf* with Systemd.
|
||||||
|
Podman is used to facilitate the creation of the relevant services.
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp -r * $HOME/.config/containers/systemd/
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl --user start gisaf-pod.service
|
||||||
|
```
|
||||||
|
|
||||||
|
Environment variables for the Gisaf configuration can be added
|
||||||
|
in the `gisaf-backend.container` file.
|
||||||
|
|
||||||
|
Note that starting on system boot requires the user to be enabled accordingly with:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo loginctl enable-linger <username>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Plain Kubernetes (no Helm)
|
||||||
|
|
||||||
|
The `kubernetes` directory contains files for deployment on Kubernetes.
|
||||||
|
|
||||||
The standard installation uses a namespace named `gisaf`.
|
The standard installation uses a namespace named `gisaf`.
|
||||||
|
|
||||||
Commands below assume that they are run from this directory.
|
The Kubernetes configuration is split in 2 files: `gisaf.yaml` and `config.yaml`
|
||||||
|
|
||||||
## Plain Kubernetes
|
Deployment:
|
||||||
|
|
||||||
2 files: `gisaf.yaml` and `config.yaml`
|
|
||||||
|
|
||||||
Deploy on Kubernetes (without Helm)
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl create namespace gisaf
|
kubectl create namespace gisaf
|
||||||
kubectl apply -f config.yaml
|
kubectl apply -f config.yaml
|
||||||
|
kubectl apply -f gisaf.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Update after modification:
|
Update after modification on the server (frontend and backend):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl --namespace gisaf rollout restart deployment gisaf-server-deployment
|
kubectl --namespace gisaf rollout restart deployment gisaf-server-deployment
|
||||||
|
@ -29,6 +74,9 @@ The `helm` chart is in the directory named `helm`.
|
||||||
|
|
||||||
### Deploy on Kubernetes
|
### Deploy on Kubernetes
|
||||||
|
|
||||||
|
Deploying with Helm on Kubernetes makes it straightforward to
|
||||||
|
run on cloud services.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl create namespace gisaf
|
kubectl create namespace gisaf
|
||||||
helm install gisaf helm
|
helm install gisaf helm
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue