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
|
||||
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).
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue