blob: 57b31f3068b4cba696de6eba29a2a35cf0cf4533 [file] [log] [blame]
Marc Kupietzee60e002026-02-25 14:27:28 +01001x-kalamar-export-setup: &export-setup
2 entrypoint: []
3 command: >
4 sh -c '
5 if [ "$$KALAMAR_EXPORT" != "false" ]; then
6 echo "Hacking in selective CSP policy...";
7 if ! grep -q "script-src.*unsafe-inline" /kalamar/kalamar.production.conf; then
8 cat /kalamar/kalamar.production.conf | perl -pe "s/\\{/\\{CSP=>{q!frame-src!=>[q!self!]},/" > /kalamar/kalamar.production.tmp.conf;
9 mv /kalamar/kalamar.production.tmp.conf /kalamar/kalamar.production.conf;
10 fi;
11 # Should better be retrieved by the export plugin service using curl
12 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\" ]}}]},";
13 PLUGINPROXY="{ root_path => \"/plugin/export/\", mount => \"http://kalamar-export:7777/\", service => \"export-plugin-proxy\" },";
14 if ! grep -F -q "/plugin/export/export" /kalamar/kalamar.production.conf; then
15 cat /kalamar/kalamar.production.conf | perl -pe "s!\047PLUGIN_STUB\047!$$PLUGINJSON\047PLUGIN_STUB\047!;" > /kalamar/kalamar.production.tmp.conf;
16 mv /kalamar/kalamar.production.tmp.conf /kalamar/kalamar.production.conf
17 fi;
18 if ! grep -F -q "export-plugin-proxy" /kalamar/kalamar.production.conf; then
19 cat /kalamar/kalamar.production.conf | perl -pe "s!\047PROXY_STUB\047!$$PLUGINPROXY\047PROXY_STUB\047!;" > /kalamar/kalamar.production.tmp.conf;
20 mv /kalamar/kalamar.production.tmp.conf /kalamar/kalamar.production.conf
21 fi;
22 cat /kalamar/kalamar.production.conf;
23 fi || true; perl script/kalamar daemon -l http://0.0.0.0:64543'
Akron48407a42023-10-24 12:37:04 +020024volumes:
25 example-index:
Akronb03d67b2022-02-02 11:54:53 +010026services:
Akron48407a42023-10-24 12:37:04 +020027 examplecontainer:
Akron392bc872024-02-20 15:31:58 +010028 image: "korap/example-index:0.1"
Akron48407a42023-10-24 12:37:04 +020029 profiles:
30 - example
31 volumes:
32 - "example-index:/kustvakt/index"
33 restart: "no"
Akronb03d67b2022-02-02 11:54:53 +010034 kalamar:
Akronb3979222025-10-02 12:18:09 +020035 image: "korap/kalamar:v0.64"
Akronb03d67b2022-02-02 11:54:53 +010036 ports:
37 - "64543:64543"
38 environment:
39 KALAMAR_API: "http://kustvakt:8089/api/"
Marc Kupietzee60e002026-02-25 14:27:28 +010040 KALAMAR_EXPORT: ${KALAMAR_EXPORT:-true}
Akron62f16082022-11-21 16:36:58 +010041 depends_on:
42 - kustvakt
43 profiles:
Marc Kupietzee60e002026-02-25 14:27:28 +010044 - open
45 <<: *export-setup
Akron0268a9f2023-02-06 09:50:54 +010046 restart: "unless-stopped"
Marc Kupietzee60e002026-02-25 14:27:28 +010047 auth-init:
Akronf18b5a82024-08-12 10:38:04 +020048 image: "korap/kalamar:latest"
Akron62f16082022-11-21 16:36:58 +010049 command: super_client_info kalamar /kalamar/data/super_client_info
50 volumes:
51 - type: bind
Akron035ec442023-12-13 13:28:29 +010052 source: "${PWD}/data/"
Akron62f16082022-11-21 16:36:58 +010053 target: "/kalamar/data"
54 profiles:
Marc Kupietzee60e002026-02-25 14:27:28 +010055 - auth
Akron62f16082022-11-21 16:36:58 +010056 - init
57 user: root
Akron0268a9f2023-02-06 09:50:54 +010058 restart: "no"
Marc Kupietzee60e002026-02-25 14:27:28 +010059 kalamar-auth:
Akronf18b5a82024-08-12 10:38:04 +020060 image: "korap/kalamar:latest"
Akron62f16082022-11-21 16:36:58 +010061 ports:
62 - "64543:64543"
63 environment:
Marc Kupietzee60e002026-02-25 14:27:28 +010064 KALAMAR_API: "http://kustvakt-auth:8089/api/"
Akron80f22522024-09-02 12:35:21 +020065 KALAMAR_PLUGINS: "Auth"
66 KALAMAR_CLIENT_FILE: "/kalamar/super_client_info"
Marc Kupietzee60e002026-02-25 14:27:28 +010067 KALAMAR_EXPORT: ${KALAMAR_EXPORT:-true}
Akron62f16082022-11-21 16:36:58 +010068 volumes:
Akronf24a6182024-09-03 17:20:32 +020069 - ${PWD}/data/super_client_info:/kalamar/super_client_info:z
Akron62f16082022-11-21 16:36:58 +010070 depends_on:
Marc Kupietzee60e002026-02-25 14:27:28 +010071 kustvakt-auth:
Akron62f16082022-11-21 16:36:58 +010072 condition: service_started
Marc Kupietzee60e002026-02-25 14:27:28 +010073 auth-init:
Akron62f16082022-11-21 16:36:58 +010074 condition: service_completed_successfully
75 profiles:
Marc Kupietzee60e002026-02-25 14:27:28 +010076 - auth
77 <<: *export-setup
Akron0268a9f2023-02-06 09:50:54 +010078 restart: "unless-stopped"
Akron035ec442023-12-13 13:28:29 +010079 user: root
Akronb3979222025-10-02 12:18:09 +020080 kalamar-export:
Marc Kupietzb1b1f452026-02-25 10:26:25 +010081 image: "korap/kalamar-plugin-export:0.4.1"
Akronb3979222025-10-02 12:18:09 +020082 environment:
Marc Kupietzee60e002026-02-25 14:27:28 +010083 KALAMAR_EXPORT_API_HOST: "kustvakt-api"
Akronb3979222025-10-02 12:18:09 +020084 KALAMAR_EXPORT_API_PORT: "8089"
85 KALAMAR_EXPORT_API_SCHEME: "http"
86 KALAMAR_EXPORT_ASSET_HOST: "localhost"
87 KALAMAR_EXPORT_ASSET_PORT: "64543"
88 KALAMAR_EXPORT_ASSET_SCHEME: "http"
89 KALAMAR_EXPORT_SERVER_SCHEME: "http"
90 KALAMAR_EXPORT_SERVER_HOST: "0.0.0.0"
91 KALAMAR_EXPORT_SERVER_PORT: "7777"
92 profiles:
Marc Kupietzee60e002026-02-25 14:27:28 +010093 - open
94 - auth
Akronb3979222025-10-02 12:18:09 +020095 - export
96 restart: "unless-stopped"
Akronb03d67b2022-02-02 11:54:53 +010097 kustvakt:
Akron0336ea02022-04-03 21:44:12 +020098 image: "korap/kustvakt:latest"
Akronb03d67b2022-02-02 11:54:53 +010099 expose:
Akron62f16082022-11-21 16:36:58 +0100100 - 8089
Akronb03d67b2022-02-02 11:54:53 +0100101 volumes:
Marc Kupietz67b47112022-05-29 10:16:26 +0200102 - "${INDEX}:/kustvakt/index:z"
Akron62f16082022-11-21 16:36:58 +0100103 profiles:
Marc Kupietzee60e002026-02-25 14:27:28 +0100104 - open
105 networks:
106 default:
107 aliases:
108 - kustvakt-api
Akron0268a9f2023-02-06 09:50:54 +0100109 restart: "unless-stopped"
Marc Kupietzee60e002026-02-25 14:27:28 +0100110 kustvakt-auth:
Akron62f16082022-11-21 16:36:58 +0100111 image: "korap/kustvakt:latest-full"
112 expose:
113 - 8089
Akron035ec442023-12-13 13:28:29 +0100114 user: root
Akron62f16082022-11-21 16:36:58 +0100115 volumes:
116 - "${INDEX}:/kustvakt/index:z"
Akron5c859012022-12-06 11:03:32 +0100117 - type: bind
Akron035ec442023-12-13 13:28:29 +0100118 source: "${PWD}/data/"
119 target: /kustvakt/data/
Akron62f16082022-11-21 16:36:58 +0100120 profiles:
Marc Kupietzee60e002026-02-25 14:27:28 +0100121 - auth
Akron62f16082022-11-21 16:36:58 +0100122 depends_on:
Marc Kupietzee60e002026-02-25 14:27:28 +0100123 auth-init:
Akron62f16082022-11-21 16:36:58 +0100124 condition: service_completed_successfully
Marc Kupietzee60e002026-02-25 14:27:28 +0100125 networks:
126 default:
127 aliases:
128 - kustvakt-api
Akron0268a9f2023-02-06 09:50:54 +0100129 restart: "unless-stopped"
Akron62f16082022-11-21 16:36:58 +0100130configs:
131 super_client_info:
Akron5c859012022-12-06 11:03:32 +0100132 external: true