Skip to content

Commit 6493d27

Browse files
committed
chore: prepare repository for open-source release
- License the product under AGPL-3.0-or-later and the reusable libraries under Apache-2.0; add per-package LICENSE files, license fields, and a check-license-metadata pre-commit gate - Add a CLA and community-health docs (Code of Conduct, Contributing, Security, Support, CODEOWNERS, issue/PR templates, funding, trademark) - Add supply-chain and CI automation (Dependency Review, OpenSSF Scorecard, link checker, Dependabot auto-merge, gitleaks allowlist) - Tighten the legal pages: DPO, Art. 22, hosting and transfer disclosures, a dynamic email-provider disclosure, and a single-source privacy TOC - Require Terms and Privacy acceptance on sign-up
1 parent 90433f3 commit 6493d27

196 files changed

Lines changed: 7996 additions & 266 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Code owners for OpenMapX.
2+
# These owners are automatically requested for review on matching pull requests.
3+
# See https://docs.github.com/repositories/managing-your-repositories-permissions/about-code-owners
4+
#
5+
# More specific rules below override earlier ones for a given path.
6+
7+
# Default owner for everything in the repo.
8+
* @Medformatik
9+
10+
# Governance / legal / community-health files warrant extra care.
11+
/LICENSE @Medformatik
12+
/LICENSING.md @Medformatik
13+
/CLA.md @Medformatik
14+
/CODE_OF_CONDUCT.md @Medformatik
15+
/SECURITY.md @Medformatik
16+
/.github/ @Medformatik

.github/FUNDING.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Funding links shown on the repo's "Sponsor" button.
2+
# https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
3+
#
4+
# Each key maps to one platform; values are your account/slug there. A button
5+
# only appears for platforms you've actually set up, so unused keys can stay
6+
# commented out. `github` requires GitHub Sponsors to be enabled for the account.
7+
8+
github: [Medformatik]
9+
# patreon: openmapx
10+
# open_collective: openmapx
11+
# ko_fi: openmapx
12+
# liberapay: openmapx
13+
# buy_me_a_coffee: openmapx
14+
# tidelift: npm/@openmapx/core
15+
# polar: openmapx
16+
# custom: ["https://openmapx.org/donate"]
Lines changed: 73 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,109 @@
1-
name: Bug report
1+
name: 🐛 Bug report
22
description: Report a defect in OpenMapX
3+
title: "[Bug]: "
34
labels: [bug, needs-triage]
45
body:
56
- type: markdown
67
attributes:
78
value: |
8-
Thanks for the report. Please fill out as much as you can — incomplete reports get bounced.
9-
For security issues, do **not** file a public issue; see [SECURITY.md](../blob/main/SECURITY.md).
9+
Thanks for taking the time to file a bug. Please fill out as much as you can —
10+
incomplete reports are slower to act on and may be closed.
11+
12+
- 🔒 **Security issue?** Do **not** file it here — see [SECURITY.md](https://github.com/OpenMapX/openmapx/blob/main/SECURITY.md).
13+
- ❓ **Question or idea?** Please use [Discussions](https://github.com/OpenMapX/openmapx/discussions) instead.
14+
- type: checkboxes
15+
id: preflight
16+
attributes:
17+
label: Before you start
18+
options:
19+
- label: I searched [existing issues](https://github.com/OpenMapX/openmapx/issues?q=is%3Aissue) and this isn't a duplicate.
20+
required: true
21+
- label: I'm on the latest `main` or the most recent release (older versions aren't patched).
22+
required: true
23+
- label: This is a bug in OpenMapX itself, not in an upstream service (Valhalla, Nominatim, MOTIS, …) or a third-party API.
24+
required: true
1025
- type: textarea
1126
id: what-happened
1227
attributes:
1328
label: What happened?
14-
description: What did you do, what did you expect, what did you observe?
29+
description: A clear, concise description of the bug — what you expected and what actually occurred.
30+
validations:
31+
required: true
32+
- type: textarea
33+
id: repro
34+
attributes:
35+
label: Steps to reproduce
1536
placeholder: |
16-
Steps:
17-
1.
18-
2.
19-
3.
20-
Expected:
21-
Actual:
37+
1. Go to '...'
38+
2. Search for '...' / enable service '...' / run `openmapx ...`
39+
3. See error
2240
validations:
2341
required: true
24-
- type: input
42+
- type: dropdown
43+
id: where
44+
attributes:
45+
label: Where does it happen?
46+
options:
47+
- Self-hosted deployment (Docker Compose)
48+
- Local development (`pnpm dev`)
49+
- Hosted app (openmapx.com)
50+
- Not sure
51+
validations:
52+
required: true
53+
- type: dropdown
2554
id: component
2655
attributes:
27-
label: Affected component
28-
description: Which app, service, integration, or CLI command?
29-
placeholder: "apps/web, integrations/transit-hafas, packages/cli `openmapx services up`, ..."
56+
label: Affected area
57+
description: Which part of OpenMapX? Pick the closest.
58+
options:
59+
- Web app (apps/web)
60+
- API gateway (apps/api)
61+
- Admin panel
62+
- A specific integration (integrations/*)
63+
- A specific service / container (services/*)
64+
- CLI (`openmapx`)
65+
- Data pipeline (data-manager / MOTIS / Transitous)
66+
- Documentation
67+
- Other / not sure
3068
validations:
3169
required: true
70+
- type: input
71+
id: component-id
72+
attributes:
73+
label: Specific integration / service id
74+
description: If the area above is an integration or service, name it.
75+
placeholder: "integrations/transit-hafas, services/valhalla, …"
3276
- type: input
3377
id: version
3478
attributes:
3579
label: Version / commit
3680
description: Tag, release, or short SHA from `git rev-parse --short HEAD`.
3781
validations:
3882
required: true
83+
- type: input
84+
id: last-working
85+
attributes:
86+
label: Last working version
87+
description: If this used to work, the last version/commit where it did (helps us bisect). Leave blank if unknown.
3988
- type: textarea
4089
id: environment
4190
attributes:
4291
label: Environment
43-
description: OS, Node version, pnpm version, browser (if web), Docker version (if self-hosted), which services / integrations enabled.
92+
description: Required for self-hosted and local-dev reports. You can skip it for the hosted app.
4493
placeholder: |
4594
OS: macOS 15.0 / Ubuntu 24.04
4695
Node: 24.x
4796
pnpm: 11.x
48-
Browser: Chrome 132
49-
Services enabled: postgis, martin, valhalla, ...
50-
validations:
51-
required: true
97+
Browser: Chrome 132 (if a web issue)
98+
Docker: 27.x (if self-hosted)
99+
Services enabled: postgis, martin, valhalla, motis, …
100+
Integrations enabled: geocoding-photon, routing-valhalla, …
101+
render: text
52102
- type: textarea
53103
id: logs
54104
attributes:
55-
label: Logs / screenshots
56-
description: Paste any relevant log output (redact secrets) or attach screenshots.
105+
label: Relevant logs and/or screenshots
106+
description: |
107+
Paste relevant log output (`openmapx logs <service>`, browser console, API errors) or attach screenshots.
108+
**Redact secrets, tokens, and `.env` values.**
57109
render: shell

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
blank_issues_enabled: false
22
contact_links:
3-
- name: Security vulnerability
4-
url: https://github.com/OpenMapX/openmapx/security/advisories/new
5-
about: Please report security issues privately via a draft GitHub Security Advisory. See SECURITY.md for the full process.
6-
- name: Question or discussion
3+
- name: 📚 Documentation
4+
url: https://docs.openmapx.org
5+
about: Setup, self-hosting, CLI, and architecture guides — please check here first.
6+
- name: 💬 Question or discussion
77
url: https://github.com/OpenMapX/openmapx/discussions
88
about: For usage questions, integration ideas, and general discussion, please use Discussions instead of opening an issue.
9+
- name: 🔒 Security vulnerability
10+
url: https://github.com/OpenMapX/openmapx/security/advisories/new
11+
about: Report security issues privately via a draft GitHub Security Advisory. See SECURITY.md for the full process.
Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,67 @@
1-
name: Feature request
2-
description: Suggest a new feature, integration, or service
1+
name: ✨ Feature request
2+
description: Suggest a new capability or improvement
3+
title: "[Feature]: "
34
labels: [enhancement, needs-triage]
45
body:
56
- type: markdown
67
attributes:
78
value: |
8-
Thanks for the idea. If you plan to implement it yourself, please open the issue first so we can agree on the approach before you write code.
9+
Thanks for the idea! A few pointers first:
10+
11+
- 🧩 **Requesting a new data provider** (geocoder, router, transit feed, weather, POI source)?
12+
Use the **🧩 New integration / provider** template instead — it asks the right questions.
13+
- 💬 Not sure yet, or want to gauge interest? Float it in
14+
[Discussions](https://github.com/OpenMapX/openmapx/discussions) first.
15+
- 🛠️ Planning to implement it yourself? Please open this issue **before** writing code so we can
16+
agree on the approach.
17+
- type: checkboxes
18+
id: preflight
19+
attributes:
20+
label: Before you start
21+
options:
22+
- label: I searched existing issues and discussions and this isn't already proposed.
23+
required: true
924
- type: textarea
1025
id: problem
1126
attributes:
12-
label: Problem
13-
description: What user need or pain point does this address? Who is the user?
27+
label: What problem does this solve?
28+
description: The user need or pain point. Who hits it, and when?
29+
placeholder: "As a self-hoster / end user, I want … so that …"
1430
validations:
1531
required: true
1632
- type: textarea
1733
id: proposal
1834
attributes:
1935
label: Proposed solution
20-
description: What should OpenMapX do? Be concrete — UI, API, manifest field, CLI flag, etc.
36+
description: What should OpenMapX do? Be concrete — UI, API shape, manifest field, CLI flag, etc.
2137
validations:
2238
required: true
2339
- type: textarea
2440
id: alternatives
2541
attributes:
2642
label: Alternatives considered
27-
description: Other approaches you weighed and why you rejected them.
43+
description: Other approaches you weighed and why you set them aside.
2844
- type: dropdown
2945
id: scope
3046
attributes:
31-
label: Scope
47+
label: Area
3248
options:
33-
- New integration (`integrations/<id>/`)
34-
- New service (`services/<slug>/`)
35-
- Web UI change
36-
- API change
37-
- CLI change
38-
- Docs only
49+
- Web UI
50+
- API
51+
- CLI / self-hosting workflow
52+
- Admin panel
53+
- Data pipeline (data-manager / MOTIS / Transitous)
54+
- Documentation
3955
- Other / cross-cutting
4056
validations:
4157
required: true
42-
- type: checkboxes
58+
- type: dropdown
4359
id: contribution
4460
attributes:
45-
label: Contribution
61+
label: Would you like to work on this?
4662
options:
47-
- label: I'm willing to send a PR for this.
63+
- "Yes — I'd like to open a PR"
64+
- "Maybe, with some guidance"
65+
- "No — just suggesting"
66+
validations:
67+
required: true
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
name: 🧩 New integration / provider
2+
description: Request (or propose to build) support for a new data provider, source, or backend service
3+
title: "[Integration]: "
4+
labels: [enhancement, integration, needs-triage]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
OpenMapX integrates data providers (geocoders, routers, transit feeds, weather, POI
10+
sources, reviews, photos, …) and backend services. Use this form to request one, or to
11+
propose building it yourself.
12+
13+
Helpful background: [Integration system](https://docs.openmapx.org/developer/integration-system/)
14+
· [Writing an integration](https://docs.openmapx.org/developer/writing-an-integration/).
15+
- type: input
16+
id: provider-name
17+
attributes:
18+
label: Provider / source name
19+
placeholder: "e.g. Stadia Maps, GTFS feed for SNCF, Overpass, OpenWeatherMap"
20+
validations:
21+
required: true
22+
- type: input
23+
id: provider-url
24+
attributes:
25+
label: Provider website
26+
placeholder: "https://…"
27+
validations:
28+
required: true
29+
- type: dropdown
30+
id: domain
31+
attributes:
32+
label: Domain
33+
description: What kind of data or capability does it provide?
34+
multiple: true
35+
options:
36+
- Geocoding / search
37+
- Routing / directions
38+
- Public transit (transit / live-transit)
39+
- Mobility (bike / car / scooter sharing, parking, fuel)
40+
- Weather / air quality
41+
- POI / places
42+
- Map overlay (raster/vector layer)
43+
- Photos / street-level imagery
44+
- Reviews
45+
- Knowledge / enrichment
46+
- A backend service / container (services/*)
47+
- Other
48+
validations:
49+
required: true
50+
- type: input
51+
id: api-docs
52+
attributes:
53+
label: API / data documentation
54+
description: Link to the API reference, GTFS feed, or data format docs.
55+
placeholder: "https://…"
56+
- type: dropdown
57+
id: auth
58+
attributes:
59+
label: Access requirements
60+
options:
61+
- Fully open — no key required
62+
- Free API key required
63+
- Paid / metered API key required
64+
- Self-hosted backend (runs as a service container)
65+
- Unknown
66+
validations:
67+
required: true
68+
- type: input
69+
id: coverage
70+
attributes:
71+
label: Geographic coverage
72+
description: Global, or specific countries / regions?
73+
placeholder: "e.g. Global, Germany only, Nordic countries"
74+
- type: textarea
75+
id: licensing
76+
attributes:
77+
label: Data license & attribution terms
78+
description: |
79+
**Important.** OpenMapX is built on open data and tracks attribution per source. What license
80+
or terms of use govern the data, and what attribution does it require? Link the terms if you can.
81+
placeholder: "e.g. ODbL (requires '© OpenStreetMap contributors'), CC-BY-4.0, proprietary ToS at …"
82+
validations:
83+
required: true
84+
- type: input
85+
id: existing-service
86+
attributes:
87+
label: Maps to an existing service?
88+
description: If this provider is served by a backend already in `services/` (e.g. Valhalla, Pelias, MOTIS), name it.
89+
placeholder: "services/valhalla"
90+
- type: dropdown
91+
id: contribution
92+
attributes:
93+
label: Would you like to build it?
94+
options:
95+
- "Yes — I'd like to open a PR"
96+
- "Maybe, with some guidance"
97+
- "No — just requesting"
98+
validations:
99+
required: true

0 commit comments

Comments
 (0)