A self-hosted web application for uploading, viewing, and managing sticker locations worldwide — with automatic GPS extraction from photos.
Browse all sticker locations on a MapLibre GL powered world map with smooth zoom and pan.
Upload a photo and GPS coordinates are automatically read from EXIF metadata — no manual entry needed.
Keycloak-backed authentication with four hierarchical roles: viewer, uploader, editor, and admin.
Air-gap friendly Helm chart with CNPG database support and embedded Keycloak — no external dependencies.
Organise stickers into custom categories with admin tooling to manage, merge, and moderate.
AGPL-3.0 licensed. Run it on your own infrastructure — your data stays yours.
# Add repo helm repo add stickermap https://watskebart.github.io/stickermap helm repo update
helm install stickermap stickermap/stickermap \ --namespace stickermap --create-namespace \ --set ingress.hostname=stickers.example.com \ --set keycloak.url=https://auth.example.com \ --set database.host=postgres.example.com \ --set database.password=changeme
helm install stickermap \ oci://ghcr.io/watskebart/stickermap/stickermap-helm/stickermap \ --namespace stickermap --create-namespace
Full configuration reference and mandatory values: helm/README.md
| Layer | Technology |
|---|---|
| Frontend | Angular 21 (zoneless), TypeScript 5.9, MapLibre GL 5.24 |
| Backend | Python 3.14, FastAPI, Pydantic |
| Database | PostgreSQL with PostGIS (SRID 4326) |
| Authentication | Keycloak, JWT RS256 |
| Container | Podman / Docker, compose |
| Kubernetes | Helm v4 |