Add export recipe

Change-Id: I5dd2dce3a83fdab0702f11dea45287847a4e0b8b

Update Kalamar to v0.64

Change-Id: Ie5ea8d6bb02b8aa910e736ed04c4b63a9a628aed

Add CSP exception

Better add another stub in the future.

Change-Id: Id641b9679c00b76019e6b315e864e56566672f85

Pin export plugin to 0.3.4

Change-Id: I0fbd3af58474b6d3ce911ef5db79a620e1b2f5e4

Add export plugin config via env variables

Change-Id: I3a641142480568941b07d3039a030b3a0e49d99f

Fix export icon escaping

Change-Id: I893b4da02969e2040d9a43bc6998015ecd1679f0

Update Readme.md with explort plugin instructions

Change-Id: I38c1335f10c1b676f03e4d1a97985c27f29aad44

Bump actions/cache from 4 to 5

Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Closes #17

Change-Id: I7df4dc89e16985c88922b1d6607eb749f507e924

Bump actions/checkout from 4 to 6

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Closes #15

Change-Id: Iac23c6ef1526c0d18ae0d5fa715c137172149c6d
diff --git a/compose.yaml b/compose.yaml
index 46b318c..898ba0b 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -9,15 +9,38 @@
       - "example-index:/kustvakt/index"
     restart: "no"
   kalamar:
-    image: "korap/kalamar:latest"
+    image: "korap/kalamar:v0.64"
     ports:
       - "64543:64543"
     environment:
       KALAMAR_API: "http://kustvakt:8089/api/"
+      COMPOSE_PROFILES: ${COMPOSE_PROFILES}
     depends_on:
       - kustvakt
     profiles:
       - lite
+    entrypoint: []
+    command: >
+      sh -c '
+        if echo "$$COMPOSE_PROFILES" | grep -q "export"; then
+          echo "Hacking in selective CSP policy...";
+          if ! grep -q "script-src.*unsafe-inline" /kalamar/kalamar.production.conf; then
+            cat /kalamar/kalamar.production.conf | perl -pe "s/\\{/\\{CSP=>{q!frame-src!=>[q!self!]},/" > /kalamar/kalamar.production.tmp.conf;
+            mv /kalamar/kalamar.production.tmp.conf /kalamar/kalamar.production.conf;
+          fi;
+          # Should better be retrieved by the export plugin service using curl
+          PLUGINJSON="{ name => \"Export\", desc => \"Exports Kalamar results\", embed => [{ panel => \"result\", title => \"exports KWICs and snippets\" , icon => \"\134x{f019}\", classes => [\"button-icon\",\"plugin\"], onClick => { action => \"addWidget\", template => \"/plugin/export/export\", permissions => [\"forms\",\"scripts\", \"downloads\" ]}}]},";
+          PLUGINPROXY="{ root_path => \"/plugin/export/\", mount => \"http://kalamar-export:7777/\", service => \"export-plugin-proxy\" },";
+          if ! grep -F -q "/plugin/export/export" /kalamar/kalamar.production.conf; then
+            cat /kalamar/kalamar.production.conf | perl -pe "s!\047PLUGIN_STUB\047!$$PLUGINJSON\047PLUGIN_STUB\047!;" > /kalamar/kalamar.production.tmp.conf;
+            mv /kalamar/kalamar.production.tmp.conf /kalamar/kalamar.production.conf
+          fi;
+          if ! grep -F -q "export-plugin-proxy" /kalamar/kalamar.production.conf; then
+            cat /kalamar/kalamar.production.conf | perl -pe "s!\047PROXY_STUB\047!$$PLUGINPROXY\047PROXY_STUB\047!;" > /kalamar/kalamar.production.tmp.conf;
+            mv /kalamar/kalamar.production.tmp.conf /kalamar/kalamar.production.conf
+          fi;
+          cat /kalamar/kalamar.production.conf;
+        fi || true; perl script/kalamar daemon -l http://0.0.0.0:64543'
     restart: "unless-stopped"
   full-init:
     image: "korap/kalamar:latest"
@@ -50,6 +73,21 @@
       - full
     restart: "unless-stopped"
     user: root
+  kalamar-export:
+    image: "korap/kalamar-plugin-export:0.3.4"
+    environment:
+      KALAMAR_EXPORT_API_HOST: "kustvakt"
+      KALAMAR_EXPORT_API_PORT: "8089"
+      KALAMAR_EXPORT_API_SCHEME: "http"
+      KALAMAR_EXPORT_ASSET_HOST: "localhost"
+      KALAMAR_EXPORT_ASSET_PORT: "64543"
+      KALAMAR_EXPORT_ASSET_SCHEME: "http"
+      KALAMAR_EXPORT_SERVER_SCHEME: "http"
+      KALAMAR_EXPORT_SERVER_HOST: "0.0.0.0"
+      KALAMAR_EXPORT_SERVER_PORT: "7777"
+    profiles:
+      - export
+    restart: "unless-stopped"
   kustvakt:
     image: "korap/kustvakt:latest"
     expose: