Intelligent software for modern web mapping and integrated planning
Website
GOAT is a free and open source WebGIS platform. It is an all-in-one solution for integrated planning, with powerful GIS tools, integrated data, and comprehensive accessibility analyses for efficient planning and fact-based decision-making.
Try it out in the cloud at goat.plan4better.de
For more information check out:
GOAT is a monorepo project leveraging a modern, full-stack architecture.
-
🐍 Python
-
⚡️ FastAPI
-
📦 Pydantic
-
🗄️ SQLAlchemy
-
🔐 Keycloak
GOAT is also available as a fully hosted cloud service. If you prefer not to manage your own infrastructure, you can get started instantly with our trial version and choose from one of our available subscription tiers. Get started at goat.plan4better.de.
GOAT runs on your own infrastructure in two ways:
| Docker Compose | Kubernetes (Helm) | |
|---|---|---|
| For | A single Linux server | An existing Kubernetes cluster |
| Includes | Everything: web app and APIs, login (Keycloak), object storage, PostgreSQL/PostGIS, the Windmill job engine and HTTPS | GOAT's services, PostgreSQL, Redis and Windmill; you provide S3 storage and, for login, Keycloak |
| Guide | Installation | Kubernetes |
Docker Compose. Every GOAT release ships the bundle as
goat-compose-<version>.tar.gz on its
release page. With Docker
Engine 24+ and Docker Compose 2.23+ installed:
tar xzf goat-compose-<version>.tar.gz && cd goat-compose
./setup.sh # public URL, HTTPS mode, admin email -> .env with generated passwords
docker compose up -d
./smoke.sh # checks the installation end to endKubernetes. The Helm chart is published as
oci://ghcr.io/plan4better/charts/goat:
helm install goat oci://ghcr.io/plan4better/charts/goat \
--namespace goat --create-namespace --values your-values.yaml --wait --timeout 25mThe self-hosting guide compares the two and covers the
configuration, HTTPS, external services, backups and upgrades. The files
behind both live in deploy/: the Compose bundle in
deploy/compose, the chart in
deploy/helm/goat.
Help with self-hosting: questions and bug reports are welcome in GitHub issues, answered as time allows. Plan4Better also offers managed on-premise deployment, running GOAT on your own servers for you: get in touch.
GOAT is a commercial open‑source project. The core platform is licensed under the GNU General Public License v3.0 (GPLv3), which allows anyone to use, modify, and distribute the software under the terms of the GPL.
The full platform — including user management, teams, and organizations — is part of the open-source core. Optional commercial services (hosting, support, and enterprise capabilities) are available for organizations that need them.
We welcome contributions of all kinds, bug reports, documentation improvements, new features, and feedback that helps strengthen the platform. Please see our contributing guide.
The compose.yaml in the repository root runs the infrastructure for local
development (PostgreSQL, MinIO, Redis, Windmill); the apps run on your machine:
cp .env.example .env
docker compose up -d # infrastructure
pnpm install && pnpm web # web app on http://localhost:3000
uv sync --all-packages # Python services, then for example:
cd apps/core && uv run uvicorn core.main:app --reload --port 8000It is not a way to run GOAT in production; use the self-hosting options above.