back to home

plan4better / goat

WebGIS with Planning Intelligence

126 stars
62 forks
52 issues
TypeScriptPythonPLpgSQL

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing plan4better/goat in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/plan4better/goat)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

GOAT Intelligent software for modern web mapping and integrated planning Website ✨ 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 • 🗺️ Maplibre GL JS • ⚛️ React • 🎨 MUI • 🔒 Auth.js • 🧘‍♂️ Zod Backend & API Services • 🐍 Python • ⚡️ FastAPI • 📦 Pydantic • 🗄️ SQLAlchemy • 📊 PostgreSQL with PostGIS • 🔐 Keycloak 🚀 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 (Docker) **Official support:** We provide a maintained for running the full GOAT stack in a production‑like environment. **Important:** While we provide Docker resources, **self‑hosted deployments are community‑supported**. We do not offer official support for managing your infrastructure. The images for each GOAT service are published on GitHub Container Registry. Requirements Make sure the following are installed on your server or local machine: • Docker • Docker Compose (plugin syntax: ) • At least 12 GB RAM recommended Docker Compose Profiles The uses profiles to control which services start: | Profile | Description | |---------|-------------| | (none) | Infrastructure only: PostgreSQL, MinIO, Redis, RabbitMQ, Windmill server/worker | | | Infrastructure + devcontainer with local code mounts for development | | | Infrastructure + all production services (core, geoapi, web, processes, workers) | Running GOAT with Docker Compose (recommended for most users) The profile provisions: • PostgreSQL with PostGIS • MinIO (S3 compatible storage) • Redis & RabbitMQ • Windmill (workflow engine for analytics tools) • GOAT Core (FastAPI backend) • GOAT GeoAPI (FastAPI backend for geodata) • GOAT Processes (OGC API Processes) • GOAT Web (Next.js frontend) • Clone the repository • Create your configuration file Copy to : Update environment variables as needed (see "Environment Variables" section below). • Start the GOAT stack This will automatically pull the latest images and start all services. • Access GOAT | Service | URL | |---------|-----| | Web UI | http://localhost:3000 | | Core API | http://localhost:8000/api | | GeoAPI | http://localhost:8100 | | Processes API | http://localhost:8300 | | Windmill UI | http://localhost:8110 | | MinIO Console | http://localhost:9001 | Updating GOAT To update an existing installation: Clean Restart (reset all data) To completely reset the installation including all data: Build Images Locally If you are developing the GOAT codebase or making changes to , , or , you may need to build images manually. Only use this if you're modifying the GOAT source code. Required Environment Variables | Variable | Description | |---------|-------------| | | Username for PostgreSQL authentication | | | Password for PostgreSQL authentication | | | Hostname of the Postgres service (usually ) | | | Storage provider (e.g., ) | | | Access key for S3 / MinIO | | | Secret key for S3 / MinIO | | | Internal S3 endpoint ( ) | | | Name of the S3 bucket to create/use | | | Region (may remain empty for MinIO) | | | Public URL for accessing S3 objects | | | Keycloak admin username | | | Keycloak admin password | | | Backend auth flag (True/False) | | | Public URL of the Web UI | | | Public URL of the Core API | | | Public URL of the GeoAPI (tiles/features) | | | Public URL of the Processes API | | | Public URL of Accounts API (optional) | | | URL for documentation | | | MapLibre/Mapbox token | | | Keycloak OpenID issuer URL | | | Keycloak client ID | | | Keycloak client secret | | | Sentry DSN (optional) | | | Enable/disable auth in frontend | | | Enable/disable accounts features | | | URL for Auth.js backend | | | Secret key for Auth.js sessions | 👩‍⚖️ 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. Some components, such as the Accounts API and features related to user management, teams, or organizations, are not open source and are provided under a commercial license. These components are not required for running the core platform but are available for organizations that need advanced functionality, hosted deployments, or enterprise‑level capabilities. This structure makes GOAT accessible for everyone, while providing extended functionalities through optional commercial services. | | GPLv3 | Commercial | | --------------------------------- | ----- | ---------- | | Self‑host the core platform | ✅ | ✅ | | Use for commercial purposes | ✅ | ✅ | | Clone privately | ✅ | ✅ | | Fork publicly | ✅ | ✅ | | Modify and redistribute | ✅ | ❌ (closed parts excluded) | | Official support | ❌ | ✅ | | Derivative work kept private | ❌ | ✅ (for commercial components only) | | Teams / Organizations API | ❌ | ✅ | | Authentication integrations | ❌ | ✅ | | Hosted SaaS version | ❌ | ✅ | ✍️ 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.