goat

A tool capable of modeling walking and cycling accessibility.
https://github.com/plan4better/goat

Category: Consumption
Sub Category: Mobility and Transportation

Keywords

accessibility-analysis accessiblity-scenarios cycling isochrones mobility walking webgis

Keywords from Contributors

goat

Last synced: about 20 hours ago
JSON representation

Repository metadata

WebGIS with Planning Intelligence

README.md

✨ About GOAT

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 Docs

Follow GOAT on LinkedIn

Follow GOAT on Twitter

Built on Open Source

GOAT is a monorepo project leveraging a modern, full-stack architecture.

Frontend & Shared UI Components

  • πŸ’» Typescript

  • πŸš€ Next.js

  • βš›οΈ React

  • πŸ—ΊοΈ Maplibre GL JS

  • 🎨 MUI

  • πŸ”€ React Flow

  • πŸ”’ Auth.js

  • πŸ§˜β€β™‚οΈ Zod

Backend & API Services

  • 🐍 Python

  • ⚑️ FastAPI

  • πŸ“¦ Pydantic

  • πŸ—„οΈ SQLAlchemy

  • 🐘 PostgreSQL

  • πŸ” Keycloak

Geospatial & Analytics

  • πŸ¦† DuckDB

  • πŸ›Ά DuckLake

  • βš™οΈ Windmill

  • 🌍 GDAL

  • πŸ—ƒοΈ PMTiles

  • πŸ›°οΈ STAC

πŸš€ Getting started

☁️ Cloud Version

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.

πŸ–₯️ Self-hosting

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 end

Kubernetes. 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 25m

The 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.

πŸ‘©β€βš–οΈ License

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.

✍️ Contributing

We welcome contributions of all kinds, bug reports, documentation improvements, new features, and feedback that helps strengthen the platform. Please see our contributing guide.

Local development

The compose.yaml in the repository root runs the infrastructure for local
development (PostgreSQL, Garage for S3, Redis, Windmill); the apps run on your
machine. Fill in the Garage secrets and key in .env first (the comments there
say how to generate them):

cp .env.example .env
docker compose up -d        # infrastructure; --profile auth adds Keycloak
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 8000

It is not a way to run GOAT in production; use the self-hosting options above.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 2 days ago

Total Commits: 7,415
Total Committers: 38
Avg Commits per committer: 195.132
Development Distribution Score (DDS): 0.604

Commits in past year: 1,867
Committers in past year: 11
Avg Commits per committer in past year: 169.727
Development Distribution Score (DDS) in past year: 0.404

Name Email Commits
Majk Shkurti m****i@o****m 2939
Elias Pajares e****s@t****e 2178
UJehle u****e@t****e 507
Mohammad Etemaddar m****r@g****m 451
Rafael r****o@t****e 217
Nihar Thakkar n****r@g****m 211
Ebubeker Rexha 6****r 129
EPajares e****s@p****e 113
Cyrine Kamoun c****n@p****e 106
Gokul Gopan g****n@p****e 87
Tarek Elsamni t****i@g****m 86
EPajares e****e 73
96hoshi m****o@p****e 36
Jehle g****v@m****e 33
Camila Narbaitz Sarsur c****r@g****m 27
dependabot[bot] 4****] 27
Pajares g****y@m****e 24
Camila Narbaitz c****z@p****e 23
Moritz Schott m****t@t****e 22
Noemi Nagy n****y@p****e 20
SViertler s****n@v****e 12
Ebubeker e****a@g****m 12
Sina Farhadi s****r@g****m 11
Pankaj p****5@g****m 10
Fernando Ribeiro f****d@g****m 9
Alexey Grachev a****h@y****u 9
copilot-swe-agent[bot] 1****t 6
Alex Grachev a****h@p****h 6
Tarek N. Elsamni t****i@g****m 6
gregoriiv g****v@t****e 5
and 8 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 58
Total pull requests: 266
Average time to close issues: 6 months
Average time to close pull requests: 15 days
Total issue authors: 7
Total pull request authors: 10
Average comments per issue: 0.09
Average comments per pull request: 0.53
Merged pull request: 212
Bot issues: 1
Bot pull requests: 23

Past year issues: 5
Past year pull requests: 250
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 8 days
Past year issue authors: 3
Past year pull request authors: 9
Past year average comments per issue: 0.4
Past year average comments per pull request: 0.5
Past year merged pull request: 204
Past year bot issues: 1
Past year bot pull requests: 17

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/plan4better/goat

Top Issue Authors

  • majkshkurti (27)
  • EPajares (14)
  • cnarbaitzsarsur (7)
  • nihar1024 (7)
  • gokulgpn (1)
  • github-actions[bot] (1)
  • CyrineKamoun (1)

Top Pull Request Authors

  • majkshkurti (79)
  • EPajares (61)
  • CyrineKamoun (35)
  • nihar1024 (35)
  • dependabot[bot] (23)
  • gokulgpn (13)
  • cnarbaitzsarsur (10)
  • NNoemi1 (4)
  • 96hoshi (3)
  • alierguney1 (3)

Top Issue Labels

  • bug (15)
  • web (6)
  • core (5)
  • enhancement (4)
  • new-feature (4)
  • docs (4)
  • frontend (3)
  • database (2)
  • geoapi (1)
  • research (1)
  • epic (1)
  • routing (1)

Top Pull Request Labels

  • dependencies (23)
  • javascript (15)
  • python (6)
  • python:uv (1)
  • github_actions (1)

Dependencies

.github/workflows/lint.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
  • astral-sh/setup-uv v7 composite
  • ataylorme/eslint-annotate-action v3 composite
  • plan4better/.github/.github/actions/pnpm-install main composite
  • plan4better/.github/.github/actions/pr-git-checkout main composite
.github/workflows/reusable-docker-build.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/upload-artifact v4 composite
  • docker/build-push-action v5 composite
  • docker/login-action v2 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
  • peter-evans/create-or-update-comment v3 composite
  • peter-evans/find-comment v2 composite
.github/workflows/release.yml actions
apps/docs/package.json npm
  • @docusaurus/module-type-aliases 2.4.0 development
  • @docusaurus/theme-classic 2.4.0 development
  • @docusaurus/types 2.4.0 development
  • @tsconfig/docusaurus ^1.0.7 development
  • @types/node 20.4.6 development
  • typescript ^4.9.5 development
  • @docusaurus/core 2.4.0
  • @docusaurus/plugin-client-redirects ^2.4.1
  • @docusaurus/preset-classic 2.4.0
  • @mdx-js/react ^1.6.22
  • chart.js ^4.4.9
  • clsx ^1.2.1
  • maplibre-gl ^4.5.2
  • prism-react-renderer ^1.3.5
  • react ^17.0.2
  • react-chartjs-2 ^5.3.0
  • react-dom ^17.0.2
  • react-iframe ^1.8.5
  • react-mathjax ^1.0.1
  • redocusaurus ^1.6.3
.github/workflows/checks.yml actions
  • actions/checkout v4 composite
  • dorny/paths-filter v2 composite
  • plan4better/.github/.github/actions/pr-git-checkout main composite
apps/docs/Dockerfile docker
  • nginx stable-alpine build
  • node 20-alpine build
apps/core/Dockerfile docker
  • debian bookworm-slim build
  • linux-base latest build
.github/workflows/pr.yml actions
.devcontainer/Dockerfile docker
  • python 3.11.12-bookworm build
apps/core/pyproject.toml pypi
  • aiofiles ==24.1.0
  • aiohttp ==3.11.2
  • alembic ==1.14.0
  • alembic-utils >=0.8.5
  • asyncpg ==0.30.0
  • boto3 ==1.38.23
  • cairosvg ==2.7.1
  • celery ==5.4.0
  • duckdb >=1.4.3
  • fastapi [standard]==0.115.12
  • fastapi-pagination ==0.13.1
  • geoalchemy2 ==0.17.1
  • geojson ==3.1.0
  • geopandas ==1.0.1
  • goatlib *
  • h3 ==4.1.2
  • httpx ==0.27.2
  • matplotlib ==3.9.2
  • numba ==0.61.2
  • numpy ==2.2.6
  • openpyxl ==3.1.5
  • polars ==1.31.0
  • psycopg ==3.2.3
  • psycopg-binary ==3.2.3
  • pyarrow >=20.0.0
  • pycountry ==23.12.11
  • pydantic ==2.11.5
  • pydantic-settings ==2.9.1
  • pygeofilter ==0.2.4
  • pymgl ==0.5.0
  • pytest >=8.3.5
  • python-jose [cryptography]==3.4.0
  • redis ==5.2.0
  • requests ==2.32.3
  • rich ==13.9.4
  • scipy >=1.15.3
  • sentry-sdk ==2.18.0
  • shapely ==2.0.6
  • sqlalchemy [asyncio]==2.0.41
  • sqlmodel ==0.0.24
  • types-requests >=2.32.4.20250611
.github/workflows/build.yml actions
  • ./.github/actions/pnpm-cache-build * composite
  • actions/checkout v4 composite
  • plan4better/.github/.github/actions/pnpm-install main composite
  • plan4better/.github/.github/actions/pr-git-checkout main composite
.github/workflows/pr-base.yml actions
.github/workflows/test.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • astral-sh/setup-uv v7 composite
  • plan4better/.github/.github/actions/pnpm-install main composite
  • plan4better/.github/.github/actions/pr-git-checkout main composite
  • postgis/postgis 16-3.4 docker
apps/catalog/pyproject.toml pypi
  • duckdb >=1.5.4
  • fastapi >=0.115
  • goatlib *
  • goatobs *
  • mcp >=1.2
  • pydantic-settings >=2.4
  • pygeofilter >=0.2.0
  • uvicorn [standard]>=0.30
apps/catalog/Dockerfile docker
  • debian bookworm-slim build
  • linux-base latest build
.github/actions/helm-tools/action.yml actions
  • azure/setup-helm v5.0.0 composite
.github/actions/pnpm-install/action.yml actions
  • actions/cache v6 composite
  • actions/setup-node v7 composite
.github/workflows/helm.yml actions
  • ./.github/actions/helm-tools * composite
  • actions/checkout v7 composite
  • azure/setup-helm v5.0.0 composite
  • docker/login-action v4 composite
  • sigstore/cosign-installer v3 composite
.github/workflows/docs-links.yml actions
  • actions/checkout v7 composite
  • lycheeverse/lychee-action e7477775783ea5526144ba13e8db5eec57747ce8 composite
.github/workflows/e2e.yml actions
  • ./.github/actions/pnpm-install * composite
  • actions/cache v6 composite
  • actions/cache/restore v6 composite
  • actions/cache/save v6 composite
  • actions/checkout v7 composite
  • actions/upload-artifact v7 composite
  • astral-sh/setup-uv c18668ad3cf93ea998bef934396af7bb5c839dc7 composite
apps/geoapi/Dockerfile docker
  • debian bookworm-slim build
  • linux-base latest build
apps/processes/Dockerfile docker
  • debian bookworm-slim build
  • linux-base latest build
apps/processes/workers/Dockerfile docker
  • debian bookworm-slim build
  • ghcr.io/astral-sh/uv ${UV_VERSION} build
  • ghcr.io/windmill-labs/windmill ${WINDMILL_IMAGE_TAG} build
  • linux-base latest build
  • worker-base latest build
apps/storybook/Dockerfile docker
  • base latest build
  • nginx stable-alpine build
  • node 22-alpine build
apps/web/Dockerfile docker
  • base latest build
  • node 22-alpine build
apps/storybook/package.json npm
  • @p4b/tsconfig workspace:* development
  • @storybook/addon-a11y ^7.4.0 development
  • @storybook/addon-actions ^7.4.0 development
  • @storybook/addon-designs 7.0.4 development
  • @storybook/addon-docs ^7.4.0 development
  • @storybook/addon-essentials ^7.4.0 development
  • @storybook/addon-interactions ^7.4.0 development
  • @storybook/addon-links ^7.4.0 development
  • @storybook/blocks ^7.4.0 development
  • @storybook/manager-api ^7.4.0 development
  • @storybook/nextjs ^7.4.0 development
  • @storybook/node-logger ^7.4.0 development
  • @storybook/react ^7.4.0 development
  • @storybook/testing-library ^0.1.0 development
  • @storybook/theming ^7.4.0 development
  • @types/node ^20.1.5 development
  • @types/react ^18.3.27 development
  • @types/react-dom ^18.3.7 development
  • eslint-config-p4b workspace:* development
  • eslint-plugin-storybook ^0.6.12 development
  • file-system-cache 2.0.0 development
  • storybook ^7.4.0 development
  • storybook-dark-mode ^3.0.0 development
  • @p4b/keycloak-theme workspace:*
  • @p4b/types workspace:*
  • @p4b/ui workspace:*
  • next 14.2.35
  • react ^18.3.1
  • react-dom ^18.3.1
apps/geoapi/pyproject.toml pypi
  • asyncpg >=0.29.0
  • cachetools *
  • duckdb >=1.5.4
  • fastapi [standard-no-fastapi-cloud-cli]>=0.115.0
  • goatlib *
  • goatobs *
  • pmtiles >=3.5.0
  • pydantic >=2.0.0
  • pydantic-settings >=2.0.0
  • pygeofilter >=0.2.0
  • pyproj >=3.6.0
  • python-jose [cryptography]>=3.3.0
  • redis >=5.0.0
  • requests >=2.25.0
  • shapely >=2.0.0
  • sqlglot >=26.0.0
apps/processes/pyproject.toml pypi
  • asyncpg >=0.29.0
  • boto3 >=1.35.0
  • cachetools *
  • duckdb >=1.5.4
  • fastapi [standard-no-fastapi-cloud-cli]>=0.115.0
  • geopandas >=1.0.0
  • goatlib *
  • goatobs *
  • httpx >=0.27.0
  • numba >=0.60.0
  • pandas >=2.0.0,<3.0.0
  • pyarrow >=20.0.0
  • pydantic >=2.0.0
  • pydantic-settings >=2.0.0
  • pygeofilter >=0.2.0
  • pyproj >=3.6.0
  • python-jose [cryptography]>=3.3.0
  • pytz >=2024.1
  • requests >=2.25.0
  • shapely >=2.0.0
  • sqlglot >=26.0.0
  • wmill >=1.0.0

Score: 8.847072312567807