Index: scripts/export-archive.mjs
===================================================================
--- scripts/export-archive.mjs	(revision 712b1615e6ae1b194be929712df713bcd9082041)
+++ scripts/export-archive.mjs	(revision 624849742199055f381a103d5eb576f6ad16dded)
@@ -6,4 +6,13 @@
 //     node scripts/export-archive.mjs <slug> --out boiert.zip
 //     node scripts/export-archive.mjs <slug> --dir ./archief
+//
+// Op een machine met meerdere instances leest hij de .env van die instance zelf
+// (standaard /var/lib/klonkt/<slug>/.env). Dat is niet netjesheid maar noodzaak:
+// zonder die .env opent hij de database die toevallig in de code-map ligt, en op
+// een server die ooit de enkelvoudige opzet draaide is dat een oude lege. Dan
+// komt er een archief uit dat MELDT dat het gelukt is en nul posts bevat.
+//
+//     --data-root <map>   waar de instances staan (standaard /var/lib/klonkt)
+//     --env <pad>         een .env rechtstreeks aanwijzen
 //
 // Het formaat staat in docs/EXPORT-FORMAT.md.
@@ -15,5 +24,5 @@
 import fs from 'fs';
 import path from 'path';
-import { buildArchive, zipArchive, writeArchiveDir } from '../src/services/ArchiveExportService.js';
+import { kiesInstance, eisOrigin } from './instance-env.mjs';
 
 const args = process.argv.slice(2);
@@ -22,11 +31,33 @@
 
 if (!slug) {
-  console.error('gebruik: node scripts/export-archive.mjs <slug> [--dry-run | --out <zip> | --dir <map>]');
+  console.error('gebruik: node scripts/export-archive.mjs <slug> [--data-root <map>] [--env <pad>] [--dry-run | --out <zip> | --dir <map>]');
   process.exit(1);
 }
 
-const uit = buildArchive(slug);
+// EERST de instance kiezen, DAN pas de service laden: src/config/database.js
+// leest DATABASE_PATH bij import en opent de database meteen.
+let gekozen;
+try {
+  gekozen = kiesInstance(slug, {
+    dataRoot: typeof vlag('--data-root') === 'string' ? vlag('--data-root') : null,
+    envPad: typeof vlag('--env') === 'string' ? vlag('--env') : null,
+  });
+} catch (e) { console.error(e.message); process.exit(1); }
+eisOrigin(gekozen.bron);
+
+const { buildArchive, zipArchive, writeArchiveDir } = await import('../src/services/ArchiveExportService.js');
+
+let uit;
+try { uit = buildArchive(slug); }
+catch (e) {
+  console.error(`${e.message}`);
+  if (gekozen.bron) console.error(`(gelezen uit ${gekozen.bron})`);
+  else console.error('(geen instance-.env gevonden -- op een split install: --data-root /var/lib/klonkt)');
+  process.exit(1);
+}
 const t = uit.counts;
-console.log(`site      : ${uit.manifest.site.slug} (${uit.manifest.origin || 'geen PUBLIC_BASE_URL'})`);
+console.log(`site      : ${uit.manifest.site.slug} (${uit.manifest.origin})`);
+console.log(`instellingen uit: ${gekozen.bron || 'de omgeving'}`);
+console.log(`database  : ${process.env.DATABASE_PATH || '(standaard in de code-map)'}`);
 console.log(`posts     : ${t.posts}`);
 console.log(`antwoorden: ${t.replies}   (alleen-lezen archief)`);
