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
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
- Layers defined with Python plugins or ANSI-standard categories
- Open source industry standard interfaces (PostGIS database, OGCAPI)
- Support of different geographical projections
- Integrated administration interface
- Export of data from standard formats (Geopackage, Shapefile)
- 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
- Support temporal and other data for different features
- Easy integration with IoT sensors, eg. using the MQTT protocol
- Detailed information for all features
- Tagging of features
- Customizable, user triggered actions
- Background map
- Customizable base maps (domain specific set of layers)
- Plugin architecture: add functions with Python packages
- Free and open source
## Software stack
@ -31,3 +45,12 @@ for the CSR Goematics unit in Auroville, India.
## Installation / deployment
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`.
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
2 files: `gisaf.yaml` and `config.yaml`
Deploy on Kubernetes (without Helm)
Deployment:
```sh
kubectl create namespace gisaf
kubectl apply -f config.yaml
kubectl apply -f gisaf.yaml
```
Update after modification:
Update after modification on the server (frontend and backend):
```sh
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
Deploying with Helm on Kubernetes makes it straightforward to
run on cloud services.
```sh
kubectl create namespace gisaf
helm install gisaf helm