Publieke Code — Open Source Publicatie voor de Overheid
Publiceer overheidssoftware als open source conform de Standard for Public Code en Nederlandse richtlijnen.
Bron: Standard for Public Code | REUSE | developer.overheid.nl
Waarom publieke code?
| Aspect |
Detail |
| Beleid |
"Open, tenzij" — overheidscode is openbaar tenzij er zwaarwegende redenen zijn |
| Wet |
Wet hergebruik overheidsinformatie (Who); Motie Vendrik (2002) |
| EU |
Interoperable Europe Act; EU OSPO; Joinup platform |
| Voordelen |
Hergebruik, transparantie, leveranciersonafhankelijkheid, samenwerking, innovatie |
| Kader |
Standard for Public Code (Foundation for Public Code) |
| Licentie |
EUPL-1.2 (aanbevolen), Apache-2.0, MIT |
Standard for Public Code — criteria
| Criterium |
Beschrijving |
Vereist |
| Code in the open |
Repository is publiek toegankelijk |
Ja |
| Bundle policy and source code |
Beleid en code in dezelfde repository |
Ja |
| Create reusable and portable code |
Configureerbaar, geen hardcoded aannames |
Ja |
| Welcome contributors |
CONTRIBUTING.md, CODE_OF_CONDUCT.md, issue templates |
Ja |
| Require review of contributions |
Code review via pull requests |
Ja |
| Document codebase objectives |
README met doel, installatie, gebruik |
Ja |
| Document the code |
Inline documentatie, API-docs |
Ja |
| Use plain English |
Documentatie in het Engels (of tweetalig) |
Aanbevolen |
| Use open standards |
Geen proprietary standaarden of formaten |
Ja |
| Use continuous integration |
CI/CD pipeline die automatisch test en valideert |
Ja |
| Publish with an open license |
Open-source licentie (EUPL, Apache, MIT) |
Ja |
| Make the codebase findable |
publiccode.yml, registratie op softwarecatalogus |
Ja |
| Use a coherent style |
Linting, formattering, style guide |
Ja |
| Document codebase maturity |
Lifecycle status (concept, beta, stable, deprecated) |
Ja |
publiccode.yml
Elke publieke codebase bevat een publiccode.yml in de root van de repository:
publiccodeYmlVersion: "0.4"
name: Open Zaak
url: "https://github.com/open-zaak/open-zaak"
releaseDate: "2026-02-01"
developmentStatus: stable
softwareType: standalone/backend
description:
nl:
shortDescription: "Zaakregistratiecomponent conform ZGW API-standaarden"
longDescription: >
Open Zaak is een moderne, open-source implementatie van de
ZGW API-standaarden voor zaakgericht werken bij gemeenten.
documentation: "https://open-zaak.readthedocs.io/"
features:
- Zaken API
- Documenten API
- Catalogi API
- Besluiten API
- Autorisaties API
legal:
license: EUPL-1.2
mainCopyrightOwner: Dimpact
repoOwner: open-zaak
maintenance:
type: community
contacts:
- name: Maykin Media
email: info@maykinmedia.nl
platforms:
- web
- linux
categories:
- case-management
- document-management
dependsOn:
open:
- name: Python
versionMin: "3.10"
- name: PostgreSQL
versionMin: "14"
- name: Redis
intendedAudience:
countries:
- nl
scope:
- government
localisation:
localisationReady: true
availableLanguages:
- nl
- en
REUSE-compliance
REUSE zorgt ervoor dat elke file in de repository duidelijke licentie-informatie heeft.
REUSE instellen
# Installeer de REUSE tool
pip install reuse
# Voeg licentie-headers toe aan alle bestanden
reuse annotate --license EUPL-1.2 --copyright "Gemeente Amsterdam" src/**/*.py
# Voeg de licentietekst toe
reuse download EUPL-1.2
# Controleer REUSE-compliance
reuse lint
Bestandsstructuur
project/
LICENSES/
EUPL-1.2.txt # Volledige licentietekst
CC-BY-4.0.txt # Voor documentatie
CC0-1.0.txt # Voor configuratie/data
.reuse/
dep5 # Bulk-licentie-toewijzing
src/
app.py # SPDX header in elk bestand
docs/
handleiding.md # CC-BY-4.0 licentie
publiccode.yml
README.md
CONTRIBUTING.md
CODE_OF_CONDUCT.md
CHANGELOG.md
SPDX-headers
# SPDX-FileCopyrightText: 2026 Gemeente Amsterdam
# SPDX-License-Identifier: EUPL-1.2
"""Zaakregistratie module."""
.reuse/dep5 (bulk-toewijzing)
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Files: *.json *.yaml *.yml *.toml
Copyright: 2026 Gemeente Amsterdam
License: EUPL-1.2
Files: docs/*
Copyright: 2026 Gemeente Amsterdam
License: CC-BY-4.0
Files: .gitignore .editorconfig
Copyright: 2026 Gemeente Amsterdam
License: CC0-1.0
Licentiekeuze
| Licentie |
Type |
Aanbevolen voor |
Copyleft |
| EUPL-1.2 |
Copyleft |
Overheidssoftware (aanbevolen) |
Ja (weak) |
| Apache-2.0 |
Permissive |
Libraries, API-clients |
Nee |
| MIT |
Permissive |
Kleine tools, scripts |
Nee |
| CC-BY-4.0 |
Creative Commons |
Documentatie |
N.v.t. |
| CC0-1.0 |
Public Domain |
Configuratie, open data |
N.v.t. |
Waarom EUPL-1.2?
| Voordeel |
Detail |
| Europees |
Officieel vertaald in alle EU-talen; rechtsgeldig in NL |
| Compatibel |
Upstream-compatible met GPL, LGPL, AGPL, MPL, EUPL |
| Copyleft |
Wijzigingen moeten ook open source zijn (beschermt investering) |
| SaaS |
EUPL copyleft geldt ook bij netwerk-interactie (zoals AGPL) |
| Geen patentoorlog |
Expliciet patentvergunning |
Repository-inrichting
Verplichte bestanden
| Bestand |
Inhoud |
README.md |
Doel, installatie, gebruik, bijdragen, licentie |
LICENSE of LICENSES/ |
Licentietekst(en) |
CONTRIBUTING.md |
Hoe bijdragen; review-proces; code of conduct |
CODE_OF_CONDUCT.md |
Gedragscode (bijv. Contributor Covenant) |
CHANGELOG.md |
Wijzigingslog (Keep a Changelog) |
publiccode.yml |
Machine-leesbare metadata |
.reuse/dep5 |
REUSE bulk-licentietoewijzing |
SECURITY.md |
Responsible disclosure beleid |
GitHub repository template
# Security policy
cat > SECURITY.md << 'EOF'
# Security Policy
## Responsible Disclosure
Meld beveiligingsproblemen via [security@organisatie.nl](mailto:security@organisatie.nl).
Maak **geen** GitHub issue aan voor beveiligingsproblemen.
## Supported Versions
| Version | Supported |
|---------|-----------|
| 2.x | Yes |
| 1.x | No |
## Response Time
We streven ernaar om binnen 5 werkdagen te reageren.
EOF
CI/CD voor publieke code
# .github/workflows/public-code.yml
name: Public Code Compliance
on: [push, pull_request]
jobs:
reuse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: fsfe/reuse-action@v4
publiccode:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate publiccode.yml
uses: italia/publiccode-parser-action@v2
with:
publiccode: publiccode.yml
standard-for-public-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check Standard for Public Code
run: |
# Controleer verplichte bestanden
for f in README.md LICENSE CONTRIBUTING.md CODE_OF_CONDUCT.md CHANGELOG.md publiccode.yml SECURITY.md; do
if [ ! -f "$f" ] && [ ! -d "LICENSES" ]; then
echo "ONTBREEKT: $f"
exit 1
fi
done
echo "Alle verplichte bestanden aanwezig"
Publicatie en vindbaarheid
| Platform |
Doel |
URL |
| developer.overheid.nl |
API- en softwarecatalogus |
developer.overheid.nl |
| Softwarecatalogus (VNG) |
Gemeentelijke software |
softwarecatalogus.nl |
| Joinup (EU) |
Europees hergebruik |
joinup.ec.europa.eu |
| GitHub/GitLab |
Broncode hosting |
github.com / gitlab.com |
Implementatie-checklist
Gerelateerde skills
| Skill |
Wanneer te gebruiken |
| nora-architectuur |
Verplichte open standaarden en architectuurprincipes |
| digitoegankelijk |
WCAG-toegankelijkheid voor publieke interfaces |
| nl-design-system |
Herbruikbare UI-componenten als open source |
| gemma-common-ground |
Common Ground open-source componenten |
Meer informatie
1---2name: publieke-code3description: Helpt bij het open-source publiceren van overheidssoftware conform de Standard for Public Code, publiccode.yml, REUSE-compliance en de Nederlandse open-sourcerichtlijnen. Biedt richtlijnen voor codebase governance, licentiekeuze, community-opbouw en publicatie op developer.overheid.nl. Gebruik deze skill wanneer de gebruiker vraagt over 'publieke code', 'public code', 'Standard for Public Code', 'publiccode.yml', 'publiccode yaml', 'REUSE', 'REUSE compliance', 'REUSE-compliant', 'open source overheid', 'open source government', 'EUPL', 'EUPL licentie', 'EUPL-1.2', 'open source licentie overheid', 'code publiceren overheid', 'broncode publiceren', 'source code publish', 'softwarecatalogus', 'developer overheid', 'code.overheid.nl', 'GitHub overheid', 'GitLab overheid', 'open source compliance', 'licentiekeuze overheid', 'open source beleid', 'open source policy', 'hergebruik software', 'software reuse government', 'community management open source', 'OSPO', 'OSPO overheid', 'CONTRIBUTING.md', 'CODE_OF_CONDUCT.4---5
6# Publieke Code — Open Source Publicatie voor de Overheid
7
8Publiceer overheidssoftware als open source conform de Standard for Public Code en Nederlandse richtlijnen.
9
10Bron: [Standard for Public Code](https://standard.publiccode.net/) | [REUSE](https://reuse.software/) | [developer.overheid.nl](https://developer.overheid.nl/)
11
12## Waarom publieke code?
13
14| Aspect | Detail |
15|--------|--------|
16| **Beleid** | "Open, tenzij" — overheidscode is openbaar tenzij er zwaarwegende redenen zijn |
17| **Wet** | Wet hergebruik overheidsinformatie (Who); Motie Vendrik (2002) |
18| **EU** | Interoperable Europe Act; EU OSPO; Joinup platform |
19| **Voordelen** | Hergebruik, transparantie, leveranciersonafhankelijkheid, samenwerking, innovatie |
20| **Kader** | Standard for Public Code (Foundation for Public Code) |
21| **Licentie** | EUPL-1.2 (aanbevolen), Apache-2.0, MIT |
22
23## Standard for Public Code — criteria
24
25| Criterium | Beschrijving | Vereist |
26|----------|-------------|---------|
27| **Code in the open** | Repository is publiek toegankelijk | Ja |
28| **Bundle policy and source code** | Beleid en code in dezelfde repository | Ja |
29| **Create reusable and portable code** | Configureerbaar, geen hardcoded aannames | Ja |
30| **Welcome contributors** | CONTRIBUTING.md, CODE_OF_CONDUCT.md, issue templates | Ja |
31| **Require review of contributions** | Code review via pull requests | Ja |
32| **Document codebase objectives** | README met doel, installatie, gebruik | Ja |
33| **Document the code** | Inline documentatie, API-docs | Ja |
34| **Use plain English** | Documentatie in het Engels (of tweetalig) | Aanbevolen |
35| **Use open standards** | Geen proprietary standaarden of formaten | Ja |
36| **Use continuous integration** | CI/CD pipeline die automatisch test en valideert | Ja |
37| **Publish with an open license** | Open-source licentie (EUPL, Apache, MIT) | Ja |
38| **Make the codebase findable** | publiccode.yml, registratie op softwarecatalogus | Ja |
39| **Use a coherent style** | Linting, formattering, style guide | Ja |
40| **Document codebase maturity** | Lifecycle status (concept, beta, stable, deprecated) | Ja |
41
42## publiccode.yml
43
44Elke publieke codebase bevat een `publiccode.yml` in de root van de repository:
45
46```yaml
47publiccodeYmlVersion: "0.4"
48
49name: Open Zaak
50url: "https://github.com/open-zaak/open-zaak"
51releaseDate: "2026-02-01"
52developmentStatus: stable
53softwareType: standalone/backend
54
55description:
56 nl:
57 shortDescription: "Zaakregistratiecomponent conform ZGW API-standaarden"
58 longDescription: >
59 Open Zaak is een moderne, open-source implementatie van de
60 ZGW API-standaarden voor zaakgericht werken bij gemeenten.
61 documentation: "https://open-zaak.readthedocs.io/"
62 features:
63 - Zaken API
64 - Documenten API
65 - Catalogi API
66 - Besluiten API
67 - Autorisaties API
68
69legal:
70 license: EUPL-1.2
71 mainCopyrightOwner: Dimpact
72 repoOwner: open-zaak
73
74maintenance:
75 type: community
76 contacts:
77 - name: Maykin Media
78 email: info@maykinmedia.nl
79
80platforms:
81 - web
82 - linux
83
84categories:
85 - case-management
86 - document-management
87
88dependsOn:
89 open:
90 - name: Python
91 versionMin: "3.10"
92 - name: PostgreSQL
93 versionMin: "14"
94 - name: Redis
95
96intendedAudience:
97 countries:
98 - nl
99 scope:
100 - government
101
102localisation:
103 localisationReady: true
104 availableLanguages:
105 - nl
106 - en
107```
108
109## REUSE-compliance
110
111REUSE zorgt ervoor dat elke file in de repository duidelijke licentie-informatie heeft.
112
113### REUSE instellen
114
115```bash
116# Installeer de REUSE tool
117pip install reuse
118
119# Voeg licentie-headers toe aan alle bestanden
120reuse annotate --license EUPL-1.2 --copyright "Gemeente Amsterdam" src/**/*.py
121
122# Voeg de licentietekst toe
123reuse download EUPL-1.2
124
125# Controleer REUSE-compliance
126reuse lint
127```
128
129### Bestandsstructuur
130
131```
132project/
133 LICENSES/
134 EUPL-1.2.txt # Volledige licentietekst
135 CC-BY-4.0.txt # Voor documentatie
136 CC0-1.0.txt # Voor configuratie/data
137 .reuse/
138 dep5 # Bulk-licentie-toewijzing
139 src/
140 app.py # SPDX header in elk bestand
141 docs/
142 handleiding.md # CC-BY-4.0 licentie
143 publiccode.yml
144 README.md
145 CONTRIBUTING.md
146 CODE_OF_CONDUCT.md
147 CHANGELOG.md
148```
149
150### SPDX-headers
151
152```python
153# SPDX-FileCopyrightText: 2026 Gemeente Amsterdam
154# SPDX-License-Identifier: EUPL-1.2
155
156"""Zaakregistratie module."""
157```
158
159### .reuse/dep5 (bulk-toewijzing)
160
161```
162Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
163
164Files: *.json *.yaml *.yml *.toml
165Copyright: 2026 Gemeente Amsterdam
166License: EUPL-1.2
167
168Files: docs/*
169Copyright: 2026 Gemeente Amsterdam
170License: CC-BY-4.0
171
172Files: .gitignore .editorconfig
173Copyright: 2026 Gemeente Amsterdam
174License: CC0-1.0
175```
176
177## Licentiekeuze
178
179| Licentie | Type | Aanbevolen voor | Copyleft |
180|----------|------|----------------|----------|
181| **EUPL-1.2** | Copyleft | Overheidssoftware (aanbevolen) | Ja (weak) |
182| **Apache-2.0** | Permissive | Libraries, API-clients | Nee |
183| **MIT** | Permissive | Kleine tools, scripts | Nee |
184| **CC-BY-4.0** | Creative Commons | Documentatie | N.v.t. |
185| **CC0-1.0** | Public Domain | Configuratie, open data | N.v.t. |
186
187### Waarom EUPL-1.2?
188
189| Voordeel | Detail |
190|---------|--------|
191| **Europees** | Officieel vertaald in alle EU-talen; rechtsgeldig in NL |
192| **Compatibel** | Upstream-compatible met GPL, LGPL, AGPL, MPL, EUPL |
193| **Copyleft** | Wijzigingen moeten ook open source zijn (beschermt investering) |
194| **SaaS** | EUPL copyleft geldt ook bij netwerk-interactie (zoals AGPL) |
195| **Geen patentoorlog** | Expliciet patentvergunning |
196
197## Repository-inrichting
198
199### Verplichte bestanden
200
201| Bestand | Inhoud |
202|---------|--------|
203| `README.md` | Doel, installatie, gebruik, bijdragen, licentie |
204| `LICENSE` of `LICENSES/` | Licentietekst(en) |
205| `CONTRIBUTING.md` | Hoe bijdragen; review-proces; code of conduct |
206| `CODE_OF_CONDUCT.md` | Gedragscode (bijv. Contributor Covenant) |
207| `CHANGELOG.md` | Wijzigingslog (Keep a Changelog) |
208| `publiccode.yml` | Machine-leesbare metadata |
209| `.reuse/dep5` | REUSE bulk-licentietoewijzing |
210| `SECURITY.md` | Responsible disclosure beleid |
211
212### GitHub repository template
213
214```bash
215# Security policy
216cat > SECURITY.md << 'EOF'
217# Security Policy
218
219## Responsible Disclosure
220
221Meld beveiligingsproblemen via [security@organisatie.nl](mailto:security@organisatie.nl).
222
223Maak **geen** GitHub issue aan voor beveiligingsproblemen.
224
225## Supported Versions
226
227| Version | Supported |
228|---------|-----------|
229| 2.x | Yes |
230| 1.x | No |
231
232## Response Time
233
234We streven ernaar om binnen 5 werkdagen te reageren.
235EOF
236```
237
238## CI/CD voor publieke code
239
240```yaml
241# .github/workflows/public-code.yml
242name: Public Code Compliance
243
244on: [push, pull_request]
245
246jobs:
247 reuse:
248 runs-on: ubuntu-latest
249 steps:
250 - uses: actions/checkout@v4
251 - uses: fsfe/reuse-action@v4
252
253 publiccode:
254 runs-on: ubuntu-latest
255 steps:
256 - uses: actions/checkout@v4
257 - name: Validate publiccode.yml
258 uses: italia/publiccode-parser-action@v2
259 with:
260 publiccode: publiccode.yml
261
262 standard-for-public-code:
263 runs-on: ubuntu-latest
264 steps:
265 - uses: actions/checkout@v4
266 - name: Check Standard for Public Code
267 run: |
268 # Controleer verplichte bestanden
269 for f in README.md LICENSE CONTRIBUTING.md CODE_OF_CONDUCT.md CHANGELOG.md publiccode.yml SECURITY.md; do
270 if [ ! -f "$f" ] && [ ! -d "LICENSES" ]; then
271 echo "ONTBREEKT: $f"
272 exit 1
273 fi
274 done
275 echo "Alle verplichte bestanden aanwezig"
276```
277
278## Publicatie en vindbaarheid
279
280| Platform | Doel | URL |
281|----------|------|-----|
282| **developer.overheid.nl** | API- en softwarecatalogus | developer.overheid.nl |
283| **Softwarecatalogus (VNG)** | Gemeentelijke software | softwarecatalogus.nl |
284| **Joinup (EU)** | Europees hergebruik | joinup.ec.europa.eu |
285| **GitHub/GitLab** | Broncode hosting | github.com / gitlab.com |
286
287## Implementatie-checklist
288
289- [ ] **Repository publiek**: code is openbaar op GitHub/GitLab
290- [ ] **Licentie**: EUPL-1.2 (of Apache-2.0/MIT) toegepast
291- [ ] **REUSE-compliant**: elke file heeft SPDX-header; `reuse lint` slaagt
292- [ ] **publiccode.yml**: machine-leesbare metadata in repo-root
293- [ ] **README.md**: doel, installatie, gebruik, bijdragen, licentie
294- [ ] **CONTRIBUTING.md**: bijdrage-richtlijnen en review-proces
295- [ ] **CODE_OF_CONDUCT.md**: gedragscode (Contributor Covenant)
296- [ ] **CHANGELOG.md**: wijzigingslog (Keep a Changelog)
297- [ ] **SECURITY.md**: responsible disclosure beleid
298- [ ] **CI/CD**: pipeline die test, lint en valideert
299- [ ] **Code review**: pull request vereist voor alle wijzigingen
300- [ ] **Catalogus**: geregistreerd op developer.overheid.nl en/of softwarecatalogus
301- [ ] **Documentatie**: installatie, configuratie, API-docs bijgewerkt
302
303## Gerelateerde skills
304
305| Skill | Wanneer te gebruiken |
306|-------|---------------------|
307| **nora-architectuur** | Verplichte open standaarden en architectuurprincipes |
308| **digitoegankelijk** | WCAG-toegankelijkheid voor publieke interfaces |
309| **nl-design-system** | Herbruikbare UI-componenten als open source |
310| **gemma-common-ground** | Common Ground open-source componenten |
311
312## Meer informatie
313
314- [Standard for Public Code](https://standard.publiccode.net/) | [Criteria](https://standard.publiccode.net/criteria/)
315- [Foundation for Public Code](https://publiccode.net/)
316- [REUSE](https://reuse.software/) | [REUSE FAQ](https://reuse.software/faq/)
317- [EUPL-1.2](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12)
318- [publiccode.yml standaard](https://yml.publiccode.tools/)
319- [developer.overheid.nl](https://developer.overheid.nl/)
320- [Joinup (EU)](https://joinup.ec.europa.eu/) — Europees hergebruik platform
321- [Open Source beleid Rijksoverheid](https://www.digitaleoverheid.nl/overzicht-van-alle-onderwerpen/open-source/)