Update doc
All checks were successful
/ test (push) Successful in 31s
/ build (push) Successful in 7s

This commit is contained in:
phil 2024-12-27 19:11:15 +01:00
parent 6035f93868
commit c4dba88ed6
2 changed files with 80 additions and 9 deletions

View file

@ -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).

View file

@ -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