Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mediacomem/ogc-api-sandbox
OGC API sandbox repository
https://github.com/mediacomem/ogc-api-sandbox
ngdi ogc-api swisstopo
Last synced: 27 days ago
JSON representation
OGC API sandbox repository
- Host: GitHub
- URL: https://github.com/mediacomem/ogc-api-sandbox
- Owner: MediaComem
- Created: 2022-03-31T09:14:56.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-29T12:58:56.000Z (5 months ago)
- Last Synced: 2024-11-05T10:28:34.125Z (2 months ago)
- Topics: ngdi, ogc-api, swisstopo
- Language: Scheme
- Homepage: https://ogc.heig-vd.ch/
- Size: 41.2 MB
- Stars: 4
- Watchers: 8
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Traefik Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.traefik.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.traefik.yml)
[![pygeoapi Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.pygeoapi.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.pygeoapi.yml)
[![ldproxy Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.ldproxy.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.ldproxy.yml)
[![geoserver Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.geoserver.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.geoserver.yml)
[![goaf Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.goaf.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.goaf.yml)
[![qgis Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.qgis.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.qgis.yml)
[![postgis Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.postgis.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.postgis.yml)
[![admin Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.admin.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.admin.yml)
[![home Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.home.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.home.yml)
[![docs Deploy](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.docs.yml/badge.svg)](https://github.com/Geonovum/ogc-api-testbed/actions/workflows/deploy.docs.yml)
[![Gitter](https://img.shields.io/gitter/room/Geonovum/ogc-api-testbed.svg?style=flat-square)](https://gitter.im/Geonovum/ogc-api-testbed)# OGC API Testbed - STABLE
Bootstrap and continuous integration/deployment (CI/CD) for OGC API web-service components.
See the [website apitestdocs.geonovum.nl](https://apitestdocs.geonovum.nl) for documentation and details.Want to access the (OGC) web-services? Go to:
* Stable (production) server at [apitestbed.geonovum.nl](https://apitestbed.geonovum.nl/) (from this repo)
* Sandbox (experimental) server at [apisandbox.geonovum.nl](https://apisandbox.geonovum.nl/) (from [Sandbox repo](https://github.com/Geonovum/ogc-api-sandbox))## Summary
This repo contains all that is needed to bootstrap, configure and maintain (CI/CD) a remote
deployment of an OGC API web-service stack using modern "DevOps" tooling. You can use it as a [GitHub Template](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/creating-a-repository-from-a-template)
to configure and run your own instance. See for example the [OGC API Sandbox repo](https://github.com/Geonovum/ogc-api-sandbox).The main design principles are:
* any action on the server/VM host is performed from a client host
* i.e. no direct access/login to/on the server/VM is required, only maybe for problem solving
* remote actions can be performed manually or triggered by GitHub Workflows
* all credentials (passwords, SSH-keys, etc) are secured
* operational stack instances for "production" (stable) and "sandbox" (playground)The (DevOps-) components used in this setup are:
* [Docker](https://www.docker.com/) *"...OS-level virtualization to deliver software in packages called containers..."* ([Wikipedia](https://en.wikipedia.org/wiki/Docker_(software)))
* [Docker Compose](https://docs.docker.com/compose) *"...a tool for defining and running multi-container Docker applications..."*
* [Ansible](https://www.ansible.com/) *"...an open-source software provisioning tool"* ([Wikipedia](https://en.wikipedia.org/wiki/Ansible_(software)))
* [GitHub Actions/Workflows](https://docs.github.com/en/actions) *"...Automate, customize, and execute software development workflows in a GitHub repository..."*The Docker-components are used to run the operational stack, i.e. the OGC API web-services.
Ansible is used to provision both the server OS-software
and the operational stack.
Ansible is executed on a local client/desktop system to invoke operations on a remote server/VM.
These operations are bundled in so called Ansible Playbooks, YAML files that describe a desired server state.
GitHub Actions are used to construct Workflows.
These Actions invoke these Ansible Playbooks, effectively configuring
and provisioning the operational stack on a remote server/VM.
GitHub Actions are triggered (selectively) on commit/push to this repo.
Security is enforced by the use of [Ansible-Vault](https://docs.ansible.com/ansible/latest/user_guide/vault.html)
and [GitHub Encrypted Secrets](https://docs.github.com/en/actions/reference/encrypted-secrets).The operational stack has the following components:
* [Traefik](https://traefik.io/) a frontend proxy/load-balancer and SSL (HTTPS) endpoint.
* [pygeoapi](https://pygeoapi.io/) a Python server implementation of the OGC API suite of standards.
* [GeoServer](http://geoserver.org/) a Java server implementation of the OGC API suite of standards.
* [ldproxy](https://interactive-instruments.github.io/ldproxy/) a Java server implementation of the OGC API suite of standards.
* [QGIS Server](https://www.qgis.org/) - server component of QGIS with OGC OAFeat support.
* [GOAF](https://github.com/PDOK/goaf) - OGC OAFeat implementation in Golang.
* [PostgreSQL/PostGIS](https://postgis.net) - geospatial databaseFor administration, documentation and monitoring the following components are used:
* [mkdocs](https://www.mkdocs.org/) for live documentation and landing pages
* [PGAdmin](https://www.pgadmin.org/) - visual PostgreSQL manager
* [GeoHealthCheck](https://geohealthcheck.org) to monitor the availability, compliance and QoS of OGC web services
* [Portainer](https://www.portainer.io/) visual Docker monitor and managerRead more on the setup in the [documentation/website of this project](https://apitestdocs.geonovum.nl/setup).