// the find
GeoNode/geonode
GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.
GeoNode is a Django-based spatial data infrastructure platform that wraps GeoServer and PostGIS to provide a web UI for uploading, publishing, and sharing geospatial datasets. It's aimed at government agencies, NGOs, and research institutions that need a self-hosted geoportal without building one from scratch. Think 'GitHub for GIS data' with metadata management and access controls.
- Mature OSGeo-backed project with real production deployments worldwide, not a weekend experiment — the showcase gallery shows actual government and UN deployments.
- Docker Compose setup with the create-envfile.py script is genuinely useful; handles SSL cert provisioning, random secret generation, and dev/test/prod environment differentiation in one place.
- GeoServer integration via OAuth2 for unified auth means you get WMS/WFS/WCS endpoints for free on every uploaded dataset, which is non-trivial to wire up yourself.
- Celery-based async processing for data ingestion means large file uploads don't block the web process, and the harvesting subsystem lets you pull in remote OGC services.
- The dependency stack is heavy and fragile: Django + GeoServer (Java) + PostGIS + Celery + Redis + Nginx all need to be running correctly, and the OAuth2 dance between Django and GeoServer breaks in non-obvious ways when any piece is misconfigured.
- GeoServer is still the rendering backend, which means you inherit all of GeoServer's operational complexity (JVM tuning, SLD styling, GeoFence rules) — there's no path to a lighter tile server for simpler use cases.
- Customization via the geonode-project template works in theory, but the Django template inheritance and override patterns are poorly documented, and core upgrades frequently break downstream customizations.
- The frontend is a mix of legacy server-rendered templates and MapStore2 (a React/OpenLayers app), making UI customization require knowledge of two completely different stacks simultaneously.