Wiki-Quellcode von Installation ONYX Editor

Version 424.1 von Carina Enke am 19.12.2023

Zeige letzte Bearbeiter
1
2 {{layout}}
3 {{layout-section ac:type="single"}}
4 {{layout-cell}}
5 \\
6 {{/layout-cell}}
7 {{/layout-section}}
8
9 {{layout-section ac:type="single"}}
10 {{layout-cell}}
11 Documentation to install ONYX Editor as a productive instance on a Linux server.
12
13 {{scroll-ignore}}
14 {{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}}
15
16
17 {{toc maxLevel="4"/}}
18
19 **
20 **
21 {{/panel}}
22 {{/scroll-ignore}}
23
24 \\
25
26 \\
27
28 \\
29 {{/layout-cell}}
30 {{/layout-section}}
31
32 {{layout-section ac:type="single"}}
33 {{layout-cell}}
34 == Requirements ==
35
36 * Java 17 (Oracle or OpenJDK)
37 * Apache Tomcat 9
38 * PostgreSQL 12
39 * MAXIMA for the use of calculations (mandatory)
40 * libraries
41
42 == Download and installation of requirements ==
43
44 Download and install OpenJDK 17 ([[https:~~/~~/jdk.java.net/java-se-ri/17>>url:https://jdk.java.net/java-se-ri/17||shape="rect"]] ) or Oracle JDK17 ([[https:~~/~~/jdk.java.net/17>>url:https://jdk.java.net/17/||shape="rect"]])\\
45
46 {{code language="powershell"}}
47 tar xfz jdk-xyz-linux-x64.tar.gz -C /opt
48 {{/code}}
49
50 **Let the environment variable $JAVA_HOME point to the JDK directory:**
51
52 {{code language="powershell"}}
53 export JAVA_HOME=/opt/jdkX.Y..Z
54 {{/code}}
55
56 === Download and install Tomcat ===
57
58 [[https:~~/~~/tomcat.apache.org/download-90.cgi>>url:https://tomcat.apache.org/download-90.cgi||shape="rect"]]
59
60 {{code language="powershell"}}
61 tar xfz apache-tomcat-X.Y.Z.tar.gz -C /opt
62 {{/code}}
63
64 === Download and install PostgreSQL ===
65
66 [[http:~~/~~/www.enterprisedb.com/products-services-training/pgdownload>>url:http://www.enterprisedb.com/products-services-training/pgdownload||title="Verknüpfung folgen" rel="nofollow" shape="rect"]]
67
68 {{code language="powershell"}}
69 chmod u+x postgresql-12.X-linux-x64.run
70 {{/code}}
71
72 === Download and install libraries ===
73
74 (% class="Y2IQFc" lang="en" %){{code language="powershell"}}yum install atk nss at-spi2-atk libXcomposite alsa-lib libXrandr libxkbcommon libXdamage cups-libs{{/code}}
75
76
77 {{{}}}
78
79 == Deployment ==
80
81 === New installation ===
82
83 Extract the webeditor-X.X.war to $ {TOMCAT_HOME}/webapps/webeditor
84
85 {{code language="powershell"}}
86 unzip webeditor-X.X.war -d /opt/apache-tomcat-X.X.XX/webapps/webeditor
87 {{/code}}
88
89 Create database user and database
90
91 {{code language="powershell"}}
92 su postgres
93 /opt/PostgreSQL/X.X/bin/createuser -P onyxeditor
94 /opt/PostgreSQL/X.X/bin/createdb -O onyxeditor onyxeditor 
95 {{/code}}
96
97 Initialize database
98
99 {{code language="sql"}}
100 psql -h localhost -U onyxeditor onyxeditor < /opt/apache-tomcat-X.X.XX/webapps/webeditor/WEB-INF/classes/database/setupdatabase.sql
101 {{/code}}
102
103 === Installation update ===
104
105 Delete old ONYX war-files and dirs from ${TOMCAT_HOME}/webapps
106
107 It might be useful to clear the work and temp directory of the Tomcat Server:
108
109 {{code}}
110 rm -rf ${TOMCAT_HOME}/temp/* ${TOMCAT_HOME}/work/*
111 {{/code}}
112
113 Start your Tomcat
114
115 {{code}}
116 /opt/apache-tomcat-X.X.XX/bin/startup.sh
117 {{/code}}
118
119 Open the following URL in your browser: [[http:~~/~~/localhost:8080/webeditor>>url:http://localhost:8080/webeditor||shape="rect"]]
120
121 === Creation of super user account ===
122
123 Register a new user on homescreen
124
125 Connect to database and select the new user
126
127 {{code}}
128 select * from users;
129 UPDATE users SET role=0 WHERE ID = XXX;
130 {{/code}}
131
132 == Configuration ==
133
134 The configuration files can be found inside the webeditor folder in your tomcat installation (see "/opt/apache-tomcat-X.X.XX/webapps/webeditor/").
135
136 === Repository Configuration ===
137
138 {{code language="xml"}}
139 WEB-INF/classes/de/bps/onyx/context/moduleConfigurationContext.xml 
140 {{/code}}
141
142 This file is the config for ONYX Editor repository configurations.
143
144 {{code language="xml"}}
145 ...
146 <bean id="de.bps.onyx.manager.RepositoryConfigurationManager" class="de.bps.onyx.manager.RepositoryConfigurationManager">
147 <property name="modules">
148 <map>
149 <entry key="FileSystemModule" value-ref="de.bps.onyx.manager.modules.FileSystemModule" />
150 <entry key="OLATRepoModule" value-ref="de.bps.onyx.manager.modules.OPALRepoModule" />
151 <entry key="PREOLATCERepoConfiguration" value-ref="de.bps.onyx.manager.modules.PREOLATCERepoConfiguration" />
152 </map>
153 </property>
154 <property name="defaultModule" ref="de.bps.onyx.manager.modules.OPALRepoModule" />
155 </bean>
156 ... 
157 {{/code}}
158
159 * defines the repositories available:
160 ** key defines the internal repository ID. It may be named as you want.
161 ** value-ref references the bean which defines the repository configuration:
162
163 {{code language="xml"}}
164 ...
165 <bean id="de.bps.onyx.manager.modules.FileSystemModule" class="de.bps.onyx.manager.modules.FileSystemModule">
166 <constructor-arg index="0" ref="FileSystemConfiguration" />
167 </bean>
168 ... 
169 {{/code}}
170
171 * instantiates the repository configuration depending on repository type:
172 ** de.bps.onyx.manager.modules.FileSystemModule: value-ref from above
173 ** class="...": One of:
174 *** de.bps.onyx.manager.modules.FileSystemModule (local file system repository)
175 *** de.bps.onyx.manager.modules.OPALRepoModule (uses an OLAT LMS as repository)
176 ** constructor-arg: ref references the configuration bean as follows:
177
178 ==== File system repository ====
179
180 {{code language="xml"}}
181 ...
182 <bean id="FileSystemConfiguration" class="de.bps.onyx.model.repo.RepositoryModuleConfiguration">
183 <property name="name" value="FileSystemModule" />
184 <property name="typeKey" value="FileSystemModule" />
185 <property name="description" value="File system module" />
186 <property name="canHandleGuest" value="true" />
187 <property name="serviceTarget" value="/opt/owe/fsr" />
188 <property name="displayname" value="Repository PRE/OLATCE" />
189 </bean>
190 ... 
191 {{/code}}
192
193 * name: Name which is used internal in ONYX Editor as identifier (**must** match key in line <entry key="FileSystemModule" value-ref="de.bps.onyx.manager.modules.FileSystemModule" /> above)
194 * typeKey: Repository type definition
195 * description: Some description (not used at the moment)
196 * canHandleGuest: set to true if this repository can handle guest users (without logon)
197 * serviceTarget: File system path
198 * displayname: String to show as repository name in ONYX Editor (if not given, some internal translation will be done to show a generic and type dependent name)
199
200 ==== OPAL repository ====
201
202 {{code language="powershell"}}
203 ...
204 <bean id="OPALRepoConfiguration" class="de.bps.onyx.model.repo.RepositoryModuleConfiguration">
205 <property name="name" value="OLATRepoModule" />
206 <property name="typeKey" value="OLATRepoModule" />
207 <property name="serviceTarget" value="https://my.server.edu/opal/services/" />
208 ...
209 </bean>
210 ... 
211 {{/code}}
212
213 * name: Repo name as configured in OPAL
214 * typeKey: Must be OLATRepoModule
215 * serviceTarget: OPAL URL
216 * Other properties as stated above for File system repository
217
218 === General configuration ===
219
220 {{code language="xml"}}
221 WEB-INF/classes/de/bps/onyx/context/applicationContext.xml
222 {{/code}}
223
224 This file contains the main configuration for the application.
225
226 ==== General stuff, preview, self-registration, licence ====
227
228 This section contains the configuration for: the connection to the ONYX Player (used for preview) as well as some other configuration.
229
230 {{code language="xml"}}
231 ...
232 <property name="system" value="myonyxeditor" />
233 <property name="previewAddress" value="http://my.server.edu/onyx"/>
234 <property name="selfRegistrationEnabled" value="false" />
235 <property name="defaultLicences">
236 <list>
237 <value>YourRepoConfiguration;SINGLE;20270731</value>
238 </list>
239 </property>
240 <!-- URL of Onyx reporter for statistics -->
241 <property name="reporterUrl" value="https://demo.bps-system.de/onyx"/>
242 <!-- ID of Onyx Editors registration at Onyx reporter for statistics -->
243 <property name="reporterProviderId" value="myInstanceId"/>
244 <!-- Source for HTML entities list. This is used to transform users unicode input in valid XML. -->
245 <property name="htmlEntitiesList" value="https://html.spec.whatwg.org/multipage/entities.json" />
246  ...
247 {{/code}}
248
249 Explanation:
250
251 (% class="wrapped" %)
252 |=(((
253 Key
254 )))|=(((
255 Example
256 )))|=(% colspan="1" %)(% colspan="1" %)
257 (((
258 Since version
259 )))|=(((
260 Description
261 )))
262 |(((
263 system
264 )))|(((
265 myonyxeditor
266 )))|(% colspan="1" %)(% colspan="1" %)
267 (((
268 3.0
269 )))|(((
270 Mandatory. The serviceprovider name (used by ONYX Player)and must be adopted to your Onyx Player configuration.
271 )))
272 |(((
273 previewAddress
274 )))|(((
275 (% class="nolink" %)https:~/~/demo.bps-system.de/onyx
276 )))|(% colspan="1" %)(% colspan="1" %)
277 (((
278 3.0
279 )))|(((
280 Mandatory. The ONYX Player to use as preview component. In this example is the ONYX Player used at URL (% class="external free nolink" %)https:~/~/demo.bps-system.de/onyx
281 )))
282 |(((
283 selfRegistrationEnabled
284 )))|(((
285 false
286 )))|(% colspan="1" %)(% colspan="1" %)
287 (((
288 6.0
289 )))|(((
290 Optional. Should users be able to register themselves? Default is true.
291 )))
292 |(% colspan="1" %)(% colspan="1" %)
293 (((
294 defaultLicences
295 )))|(% colspan="1" %)(% colspan="1" %)
296 (((
297 see above
298 )))|(% colspan="1" %)(% colspan="1" %)
299 (((
300 6.0
301 )))|(% colspan="1" %)(% colspan="1" %)
302 (((
303 Optional. This defines whether or not new users should automatically be assigned to a licence, and if, of which type that licence should be.
304
305 This only works with the integrated login e.g. with OLAT, which come with a repository parameter in the ONYX Editor call. This repository name is the key and must match to the //name// attribute of one of the repository definitions in //moduleConfigurationContext.xml//.
306
307 **Format:** There are three parts per line, separates by semicolons
308 //Repository name~:// As stated. In Example above: YourRepoConfiguration
309 //Licence type~:// One of DEMO, SINGLE, CAMPUS, PUBLISHER
310 //Valid until date~:// Date in format yyyyMMdd, e.g. 20270731. This will be the date until which the licence is valid for the user.
311 )))
312 |(% colspan="1" %)(% colspan="1" %)
313 (((
314 reporterUrl
315 )))|(% colspan="1" %)(% colspan="1" %)
316 (((
317 https:~/~/demo.bps-system.de/onyx
318 )))|(% colspan="1" %)(% colspan="1" %)
319 (((
320 6.3
321 )))|(% colspan="1" %)(% colspan="1" %)
322 (((
323 URL of an ONYX Reporter. This is used for all statistics and evaluation views. The ONYX Reporter instance needs to be configured to be usabe as such, especially the reporterProviderId (see next line) must be known.
324 )))
325 |(% colspan="1" %)(% colspan="1" %)
326 (((
327 reporterProviderId
328 )))|(% colspan="1" %)(% colspan="1" %)
329 (((
330 myInstanceId
331 )))|(% colspan="1" %)(% colspan="1" %)
332 (((
333 6.3
334 )))|(% colspan="1" %)(% colspan="1" %)
335 (((
336 Config name of this ONYX Editors instance in the ONYX Reporter configuration. This configuration contains ONYX Editor data as the URL to send results to. Please contact the ONYX Reporters administrator and negotiate this value.
337
338 Note: In earlier versions of the ONYX Editor this was configured in an addtional config file (webServiceContext.xml), which was removed in version 6.3
339 )))
340 |(% colspan="1" %)(% colspan="1" %)
341 (((
342 htmlEntitiesList
343 )))|(% colspan="1" %)(% colspan="1" %)
344 (((
345 (% class="nolink nolink" %)https:~/~/html.spec.whatwg.org/multipage/entities.json(%%)
346 or /tmp/entities.json
347 )))|(% colspan="1" %)(% colspan="1" %)
348 (((
349 6.3
350 )))|(% colspan="1" %)(% colspan="1" %)
351 (((
352 Optional. Source for HTML entities list. This is used to transform users unicode input in valid XML. Provide a valid URL or file path here.
353
354 To avoid Onyx from downloading this file from an external server just do this by yourself and configure the absolute path to this file. Please always keep this file up-to-date since entities may change and non-existent entities will cause XML failures which will destroy user contents.
355
356 Default is (% class="nolink nolink" %)[[https:~~/~~/html.spec.whatwg.org/multipage/entities.json>>url:https://html.spec.whatwg.org/multipage/entities.json||shape="rect"]]
357 )))
358
359 ==== System message ====
360
361 The next section contains the system message configuration which can be used to display a static informational message to inform all users about nightly application restarts. Remove all keys to not show anything.
362
363 {{code language="xml"}}
364 ...
365 <!-- -->
366 <!-- System message -->
367 <!-- -->
368 <!-- May be a localstring key or a final message (without localization). May contain escaped HTML. -->
369 <property name="message" value="sysmsg.nightly" />
370 <!-- Parameters for localization if message above is a localstring key. Optional. -->
371 <property name="messageParams"><list><value>3</value></list></property>
372 <!-- When should the message be displayed? Date in form yyyyMMdd HHmm or only HHmm. Optional. -->
373 <property name="messageFrom" value="2359" />
374 <!-- Duration of display starting from value given in <from> (in minutes). Optional. -->
375 <property name="messageDurationInMinutes" value="1" />
376 ...
377 {{/code}}
378
379 Explanation:
380
381 (% class="wrapped" %)
382 |=(((
383 Key
384 )))|=(((
385 Example
386 )))|=(((
387 Description
388 )))
389 |(((
390 message
391 )))|(((
392 Attention! Application restarts at 3 pm!
393 )))|(((
394 The fully localized message or a localization key defined in the messages_xy.properties files.
395 )))
396 |(((
397 messageParams
398 )))|(((
399 3
400 )))|(((
401 If //message// is a localization key defined in the messages_xy.properties files, this option can be used to populate variable placeholders. If the key maps th a localized string "Attention! Application restarts at {1} pm!" and //messageParams// contains a value "3", the user will see the message as given as example at the //message// option. This way you are able to show fully localized messages.
402 )))
403 |(((
404 messageFrom
405 )))|(((
406 0300
407 )))|(((
408 A time in Java defined format HHmm (this means two digits hours in 24 hours format, immediately followed by the minutes value). This defines the point in time from which user will see the //message//. Must have exactly 4 digits.
409
410 If not given the //message// will be shown all the time.
411 )))
412 |(((
413 messageDurationInMinutes
414 )))|(((
415 90
416 )))|(((
417 Defines how long the message will be shown, starting at //messageFrom//.
418 )))
419
420 All keys are optional. If message is missing, no message will be show at all. Changes to the values configured require a restart of the application to be acknowledged.
421
422 ==== Publish ====
423
424 All property keys starting with //publish// are used in the context of the **publish functionality**. Publish functionality can be disabled by completely remove all of the //publish// keys.
425
426 {{code language="xml"}}
427 ...
428 <!-- Directory to publish the published tests to. Leave empty to deactivate publish. Must end with / -->
429 <property name="publishDirectory" value="/intern/instances/onyxeditor/data/publish/" />
430 <!-- Prefix to use for test runs in player registration. An underscore will be appended automatically. -->
431 <property name="publishUniqueIdPrefix" value="owe" />
432 <!-- Service provider Onyx WS location. No trailing slash! -->
433 <property name="publishProviderWs" value="http://my.hot.system.edu/onyx" />
434 <!-- Service provider name referenced in Onyx configuration -->
435 <property name="publishProviderId" value="owePublishedRun" />
436 <!-- Path in URI to published tests. As the "published" in http://my.hot.system.edu/owe/published/ -->
437 <property name="publishPath" value="published" />
438 <!-- License dependent published test starts limits -->
439 <property name="publishLimitBase" value="20" />
440 <property name="publishLimitDemo" value="200" />
441 <property name="publishLimitPro" value="200" />
442 <property name="publishLimitCampus" value="200" />
443 <property name="publishLimitPublisher" value="2500" />
444 ...
445 {{/code}}
446
447 Explanation:
448
449 (% class="wrapped" %)
450 |=(((
451 **Key**
452 )))|=(% colspan="1" %)(% colspan="1" %)
453 (((
454 Example
455 )))|=(((
456 **Description**
457 )))
458 |(% colspan="1" %)(% colspan="1" %)
459 (((
460 publishDirectory
461 )))|(% colspan="1" %)(% colspan="1" %)
462 (((
463 /intern/instances/onyxeditor/data/publish/
464 )))|(% colspan="1" %)(% colspan="1" %)
465 (((
466 Hard disc directory to copy the published tests to.
467
468 Leave empty to deactivate publish. Must end with / and must be writable for tomcat user.
469 )))
470 |(% colspan="1" %)(% colspan="1" %)
471 (((
472 publishUniqueIdPrefix
473 )))|(% colspan="1" %)(% colspan="1" %)
474 (((
475 owe
476 )))|(% colspan="1" %)(% colspan="1" %)
477 (((
478 Prefix to use for test runs in player registration. An underscore will be appended automatically.
479
480 These keys will be used in communication with Onyx player. This is configurable to adopt this according to your needs, e.g. to be able to distinguish published test runs from other ones in the Onyx player. If you do not need this just leave to value //owe//.
481 )))
482 |(% colspan="1" %)(% colspan="1" %)
483 (((
484 publishProviderWs
485 )))|(% colspan="1" %)(% colspan="1" %)
486 (((
487 [[http:~~/~~/my.hot.system.edu/onyx>>url:http://my.hot.system.edu/onyx||shape="rect"]]
488 )))|(% colspan="1" %)(% colspan="1" %)
489 (((
490 Service provider Onyx WS location. If not there the preview player instance will be used.
491
492 This is the URL to the Onyx player. May be the same as the preview player instance. Please do not enter a trailing slash!
493 )))
494 |(% colspan="1" %)(% colspan="1" %)
495 (((
496 publishProviderId
497 )))|(% colspan="1" %)(% colspan="1" %)
498 (((
499 owePublishedRun
500 )))|(% colspan="1" %)(% colspan="1" %)
501 (((
502 Service provider name referenced in Onyx configuration.
503
504 This value must be configured in Onyx player configuration as a valid service provider and with the Onyx Editor URL as results destination.
505 )))
506 |(% colspan="1" %)(% colspan="1" %)
507 (((
508 publishPath
509 )))|(% colspan="1" %)(% colspan="1" %)
510 (((
511 published
512 )))|(% colspan="1" %)(% colspan="1" %)
513 (((
514 Path in URI to published tests. As the "published" in [[http:~~/~~/my.hot.system.edu/owe/published/>>url:http://my.hot.system.edu/owe/published/||shape="rect"]]
515
516 This the last part of the URLs communicated to the users to use the published tests. The server domain is automatically taken from the current system.
517 )))
518 |(% colspan="1" %)(% colspan="1" %)
519 (((
520 publishLimitBase
521 publishLimitDemo
522 publishLimitPro
523 publishLimitCampus
524 publishLimitPublisher
525 )))|(% colspan="1" %)(% colspan="1" %)
526 (((
527 200
528 )))|(% colspan="1" %)(% colspan="1" %)
529 (((
530 License dependent published test starts limits.
531
532 The test start count of published tests is restricted according to the publishing users license. The default values are configurable here.
533 )))
534
535 ===== Check of the publish configuration =====
536
537 Few seconds after application startup there is a publish functionality check log printed to webeditor.log looking like this:
538
539 {{code}}
540 04:26:59,301-[localhost-startStop-1] INFO -PublishManager -***************************************************************
541 04:26:59,301-[localhost-startStop-1] INFO -PublishManager -* Publish functionality initialization *
542 04:26:59,301-[localhost-startStop-1] INFO -PublishManager -* °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° *
543 04:26:59,301-[localhost-startStop-1] INFO -PublishManager -* *
544 04:26:59,301-[localhost-startStop-1] INFO -PublishManager -* Directory: /.../onyxeditor/data/publish/
545 04:26:59,301-[localhost-startStop-1] INFO -PublishManager -* *
546 04:26:59,301-[localhost-startStop-1] INFO -PublishManager -* Statistics from file system (may differ from DB): *
547 04:26:59,304-[localhost-startStop-1] INFO -PublishManager -* * Published tests: 18
548 04:26:59,306-[localhost-startStop-1] INFO -PublishManager -* * Stored results : 15
549 04:26:59,306-[localhost-startStop-1] INFO -PublishManager -* *
550 04:26:59,306-[localhost-startStop-1] INFO -PublishManager -***************************************************************
551 {{/code}}
552
553 If there were problems with publish configuration or initialization such as missing write access rights this will be mentioned here.
554
555 ==== LTI ====
556
557 LTI functionality can be configured using the following XML:
558
559 {{code language="xml"}}
560 ...
561 <!-- -->
562 <!-- LTI -->
563 <!-- -->
564 <!-- For documentation of LTI parameters see https://www.imsglobal.org/specs/ltiv2p0/implementation-guide -->
565 <!-- -->
566 <!-- All parameters are mandatory unless explicitly stated otherwise. -->
567 <!-- -->
568 <!-- Name of the product instance. Must be unique for every ONYX Editor instances acting as LTI tool provider. -->
569 <property name="ltiProductInstance" value="ONYX Testsuite (Live)" />
570 <!-- Name of the tool as can be displayed by tool consumer. -->
571 <property name="ltiProductInfoToolName" value="ONYX Testsuite" />
572 <!-- Description of the tool as can be displayed by tool consumer. -->
573 <property name="ltiProductInfoToolDescription" value="ONYX Testsuite is a professional IMS QTI 2.1 assessment system for authoring, delivery and reporting exercises and exams." />
574 <!-- Optional. If not configured the ONYX version will be used -->
575 <!-- <property name="ltiProductInfoVersion" value="10.0" /> -->
576 <!-- Technical description of the tool as can be displayed by tool consumer. -->
577 <property name="ltiProductInfoToolTechnical" value="ONYX Testsuite is an IMS QTI 2.1 delivery engine. It integrates the ONYX Editor for authoring IMS QTI 2.1 item and test files." />
578 <!-- LTI tool provider product family id -->
579 <property name="ltiProductFamilyId" value="ONYX" />
580 <!-- LTI tool provider product family code. -->
581 <property name="ltiProductFamilyCode" value="ONYX" />
582 <!-- LTI tool providers vendor code -->
583 <property name="ltiVendorCode" value="BPS" />
584 <!-- LTI tool providers vendor name -->
585 <property name="ltiVendorName" value="BPS Bildungsportal Sachsen GmbH" />
586 <!-- LTI tool providers vendor description -->
587 <property name="ltiVendorDescription" value="BPS Bildungsportal Sachsen GmbH develops professional e-learning services for educational organizations, companies and public institutions. We assist you with our high-quality products and services." />
588 <!-- LTI tool providers vendor website -->
589 <property name="ltiVendorWebsite" value="https://www.onyx-testsuite.de/" />
590 <!-- LTI tool providers resource handler name. This is what the end users in LTI tool consumer can select from. -->
591 <property name="ltiResourceHandlerName" value="ONYX Testsuite" />
592 <!-- LTI tool provider URI. This is transmitted from LTI tool provider to tool consumer for backend communication. -->
593 <property name="ltiUrl" value="https://onyx-editor.de/editor" />
594 <!-- LTI tool providers internal port (the one listening on server side). Must be given. -->
595 <property name="ltiInternalPort" value="20000" />
596 <!-- LTI tool providers external port (the one which is SSL enabled and will be communicated by LTI TP to TC to use in GUI. Must be given, but may be the same as internal port if this is already SSL enabled. -->
597 <property name="ltiExternalPort" value="8443" />
598 ...
599 {{/code}}
600
601 Explanation:
602
603 (% class="wrapped" %)
604 |=(((
605 Key
606 )))|=(((
607 Example
608 )))|=(((
609 Description
610 )))
611 |(((
612 {{{ltiProductInstance}}}
613 )))|(((
614 ONYX Customer X
615 )))|(((
616 Name of the product instance. Must be unique for every ONYX Editor instances acting as LTI tool provider.
617
618 **This is also the main config key. If this is not given, the whole LTI functionality will be disabled.**
619 )))
620 |(((
621 {{{ltiProductInfoToolName}}}
622 )))|(((
623 ONYX
624 )))|(((
625 Name of the tool as can be displayed by tool consumer.
626 )))
627 |(((
628 {{{ltiProductInfoToolDescription}}}
629 )))|(((
630 ONYX shows and automatically evaluates tests.
631 )))|(((
632 Description of the tool as can be displayed by tool consumer.
633 )))
634 |(((
635 {{{ltiProductInfoVersion}}}
636 )))|(((
637 10.0
638 )))|(((
639 Optional. If not configured the ONYX version will be used
640 )))
641 |(((
642 {{{ltiProductInfoToolTechnical}}}
643 )))|(((
644 ONYX imports QTI test files and show them to users very fancyly.
645 )))|(((
646 Technical description of the tool as can be displayed by tool consumer.
647 )))
648 |(% colspan="1" %)(% colspan="1" %)
649 (((
650 {{{ltiProductFamilyId}}}
651 )))|(% colspan="1" %)(% colspan="1" %)
652 (((
653 {{{https://www.bps-system.de/cms/index.php?id=43&#x26;amp;L=1}}}
654 )))|(% colspan="1" %)(% colspan="1" %)
655 (((
656 LTI tool provider product family id
657 )))
658 |(% colspan="1" %)(% colspan="1" %)
659 (((
660 {{{ltiProductFamilyCode}}}
661 )))|(% colspan="1" %)(% colspan="1" %)
662 (((
663 onyx
664 )))|(% colspan="1" %)(% colspan="1" %)
665 (((
666 LTI tool provider product family code.
667 )))
668 |(% colspan="1" %)(% colspan="1" %)
669 (((
670 {{{ltiVendorCode}}}
671 )))|(% colspan="1" %)(% colspan="1" %)
672 (((
673 BPS
674 )))|(% colspan="1" %)(% colspan="1" %)
675 (((
676 LTI tool providers vendor code.
677 )))
678 |(% colspan="1" %)(% colspan="1" %)
679 (((
680 {{{ltiVendorName}}}
681 )))|(% colspan="1" %)(% colspan="1" %)
682 (((
683 BPS Bildungsportal Sachsen GmbH
684 )))|(% colspan="1" %)(% colspan="1" %)
685 (((
686 LTI tool providers vendor name
687 )))
688 |(% colspan="1" %)(% colspan="1" %)
689 (((
690 {{{ltiVendorDescription}}}
691 )))|(% colspan="1" %)(% colspan="1" %)
692 (((
693 BPS GmbH develops professional e-learning services...
694 )))|(% colspan="1" %)(% colspan="1" %)
695 (((
696 LTI tool providers vendor description
697 )))
698 |(% colspan="1" %)(% colspan="1" %)
699 (((
700 {{{ltiVendorWebsite}}}
701 )))|(% colspan="1" %)(% colspan="1" %)
702 (((
703 {{{https://www.bps-system.de/cms/en/welcome/}}}
704 )))|(% colspan="1" %)(% colspan="1" %)
705 (((
706 LTI tool providers vendor website
707 )))
708 |(% colspan="1" %)(% colspan="1" %)
709 (((
710 {{{ltiResourceHandlerName}}}
711 )))|(% colspan="1" %)(% colspan="1" %)
712 (((
713 ONYX
714 )))|(% colspan="1" %)(% colspan="1" %)
715 (((
716 LTI tool providers resource handler name. This is what the end users in LTI tool consumer can select from.
717 )))
718 |(% colspan="1" %)(% colspan="1" %)
719 (((
720 {{{ltiUrl}}}
721 )))|(% colspan="1" %)(% colspan="1" %)
722 (((
723 {{{https://next.bps-system.de}}}
724 )))|(% colspan="1" %)(% colspan="1" %)
725 (((
726 LTI tool provider URI. This is transmitted from LTI tool provider to tool consumer for backend communication.
727 )))
728 |(% colspan="1" %)(% colspan="1" %)
729 (((
730 {{{ltiInternalPort}}}
731 )))|(% colspan="1" %)(% colspan="1" %)
732 (((
733 20000
734 )))|(% colspan="1" %)(% colspan="1" %)
735 (((
736 LTI tool providers internal port (the one listening on server side). Must be given.
737 )))
738 |(% colspan="1" %)(% colspan="1" %)
739 (((
740 {{{ltiExternalPort}}}
741 )))|(% colspan="1" %)(% colspan="1" %)
742 (((
743 8443
744 )))|(% colspan="1" %)(% colspan="1" %)
745 (((
746 LTI tool providers external port (the one which is SSL enabled and will be communicated by LTI TP to TC to use in GUI. Must be given, but may be the same as internal port if this is already SSL enabled.
747 )))
748
749 For documentation of LTI specific parameters as product info tool name, see [[https:~~/~~/www.imsglobal.org/specs/ltiv2p0/implementation-guide>>url:https://www.imsglobal.org/specs/ltiv2p0/implementation-guide||shape="rect"]]
750
751 ==== Database connection ====
752
753 The connection to database example:
754
755 {{code language="xml"}}
756 <property name="dbDriverClass" value="org.postgresql.Driver" />
757 <property name="dbConnectionUrl" value="jdbc:postgresql://localhost:5432/dbname" />
758 <property name="dbUserName" value="username" />
759 <property name="dbPassword" value="userpassword" />
760 <property name="dbDialect" value="org.hibernate.dialect.PostgreSQLDialect" /> 
761 {{/code}}
762
763 === Reporter configuration**
764 ** ===
765
766 {{code language="xml"}}
767 WEB-INF/classes/de/bps/onyx/context/webServiceContext.xml
768 {{/code}}
769
770 This file contains the configuration for the connection of the ONYX Player (include the ONYX Reporter). This ONYX Reporter is used for statistic issues.
771
772 Example:
773
774 {{code language="xml"}}
775 ...
776 <bean id="OnyxReporterTarget" class="de.bps.onyx.manager.reporter.service.OnyxReporterTarget">
777 <constructor-arg name="target" value="https://onyx.bps-system.de/preview/reporterservices" />
778 </bean>
779
780 <bean id="OnyxReporterProvider" class="de.bps.onyx.manager.reporter.service.OnyxReporterProvider">
781 <constructor-arg name="id" value="previewid" />
782 </bean>
783 ...
784 {{/code}}
785
786 In this example is the ONYX Player used at URL [[https:~~/~~/onyx.bps-system.de/preview/ .>>url:https://onyx.bps-system.de/preview/.&nbsp||rel="nofollow" shape="rect" class="external text"]] The serviceprovider name (used by ONYX Player) is: previewed
787
788 == MAXIMA for calculations ==
789
790 Install MAXIMA, if you like to use calculations. MAXIMA is used for the interaction types [[calculation >>doc:Berechnungsaufgabe]]and [[formula comparison>>doc:Formelvergleich]] and also for(% class="confluence-link" %)variable[[ >>doc:Variablen verwenden]] (%%)support.
791
792 Installation on RHEL/Fedora/CentOS:
793
794 {{code language="powershell"}}
795 sudo yum install maxima
796 {{/code}}
797
798 Installation on Debian/Ubuntu/Mint:
799
800 {{code language="powershell"}}
801 sudo aptitude install maxima
802 {{/code}}
803
804 Or visit [[http:~~/~~/maxima.sourceforge.net/>>url:http://maxima.sourceforge.net/||shape="rect"]] and download the MAXIMA files
805
806 == Log files ==
807
808 {{code}}
809 [root@bps0206 logs]# less /opt/apache-tomcat-X.X.X/logs/webeditor.log
810 [root@bps0206 logs]# less /opt/apache-tomcat-X.X.X/logs/catalina.out
811 {{/code}}
812 {{/layout-cell}}
813 {{/layout-section}}
814 {{/layout}}
815
816
817 {{sv-translation language="en"}}
818 Documentation to install ONYX Editor as a productive instance on a Linux server.
819
820 {{scroll-ignore}}
821 {{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}}
822
823
824 {{toc maxLevel="4"/}}
825
826 **
827 **
828 {{/panel}}
829 {{/scroll-ignore}}
830
831 == Requirements ==
832
833 * Java 17 (Oracle or OpenJDK)
834 * Apache Tomcat 9
835 * PostgreSQL 12
836 * MAXIMA for the use of calculations (mandatory)
837 * (((
838 (% class="tw-data-text tw-text-large tw-ta" %)
839 (% class="Y2IQFc" lang="en" %)libraries
840 )))
841
842 == Download and installation of requirements ==
843
844 === Download and install Java ===
845
846 * Download and install OpenJDK 17 ([[https:~~/~~/jdk.java.net/java-se-ri/17>>url:https://jdk.java.net/java-se-ri/17||shape="rect"]] ) or Oracle JDK17 ([[https:~~/~~/jdk.java.net/17>>url:https://jdk.java.net/17||shape="rect"]])
847
848 {{code language="powershell"}}
849 tar xfz jdk-8uX-linux-x64.tar.gz -C /opt
850 {{/code}}
851
852 \\
853
854 * **Let the environment variable $JAVA_HOME point to the JDK directory:**
855
856 {{code language="powershell"}}
857 export JAVA_HOME=/opt/jdkX.Y..Z
858 {{/code}}
859
860 === Download and install Tomcat ===
861
862 * [[http:~~/~~/tomcat.apache.org/download-80.cgi>>url:http://tomcat.apache.org/download-80.cgi||title="Verknüpfung folgen" rel="nofollow" shape="rect" class="external-link"]] ~-~-> [[https:~~/~~/tomcat.apache.org/download-90.cgi>>url:https://tomcat.apache.org/download-90.cgi||title="Verknüpfung folgen" rel="nofollow" shape="rect" class="external-link"]]
863
864 {{code language="powershell"}}
865 tar xfz apache-tomcat-X.Y.Z.tar.gz -C /opt
866 {{/code}}
867
868 === Download and install PostgreSQL ===
869
870 * [[http:~~/~~/www.enterprisedb.com/products-services-training/pgdownload>>url:http://www.enterprisedb.com/products-services-training/pgdownload||title="Verknüpfung folgen" rel="nofollow" shape="rect"]]
871
872 {{code language="powershell"}}
873 chmod u+x postgresql-12.X-linux-x64.run
874 {{/code}}
875
876 === Download and install libraries ===
877
878 {{code language="powershell"}}
879 yum install atk nss at-spi2-atk libXcomposite alsa-lib libXrandr libxkbcommon libXdamage cups-libs
880 {{/code}}
881
882 == Deployment ==
883
884 === New installation ===
885
886 * Extract the webeditor-X.X.war to $ {TOMCAT_HOME}/webapps/webeditor
887
888 {{code language="powershell"}}
889 unzip webeditor-X.X.war -d /opt/apache-tomcat-X.X.XX/webapps/webeditor
890 {{/code}}
891
892 * Create database user and database
893
894 {{code language="powershell"}}
895 su postgres
896 /opt/PostgreSQL/X.X/bin/createuser -P onyxeditor
897 /opt/PostgreSQL/X.X/bin/createdb -O onyxeditor onyxeditor 
898 {{/code}}
899
900 * Initialize database
901
902 {{code language="sql"}}
903 psql -h localhost -U onyxeditor onyxeditor < /opt/apache-tomcat-X.X.XX/webapps/webeditor/WEB-INF/classes/database/setupdatabase.sql
904 {{/code}}
905
906 === Installation update ===
907
908 * Delete old ONYX war-files and dirs from ${TOMCAT_HOME}/webapps . It might be useful to clear the work and temp directory of the Tomcat Server:
909
910 {{code}}
911 rm -rf ${TOMCAT_HOME}/temp/* ${TOMCAT_HOME}/work/*
912 {{/code}}
913
914 * Start your Tomcat
915
916 {{code}}
917 /opt/apache-tomcat-X.X.XX/bin/startup.sh
918 {{/code}}
919
920 * Open the following URL in your browser: [[http:~~/~~/localhost:8080/webeditor>>url:http://localhost:8080/webeditor||shape="rect"]]
921
922 === Creation of super user account ===
923
924 Register a new user on homescreen:
925
926 * Connect to database and select the new user
927
928 {{code}}
929 select * from users;
930 UPDATE users SET role=0 WHERE ID = XXX;
931 {{/code}}
932
933 === Configuration ===
934
935 The configuration files can be found inside the webeditor folder in your tomcat installation (see "/opt/apache-tomcat-X.X.XX/webapps/webeditor/").
936
937 **WEB-INF/classes/de/bps/onyx/context/moduleConfigurationContext.xml**
938
939 This file is the config for ONYX Editor repository configurations.
940
941 {{code language="xml"}}
942 ...
943 <bean id="de.bps.onyx.manager.RepositoryConfigurationManager" class="de.bps.onyx.manager.RepositoryConfigurationManager">
944 <property name="modules">
945 <map>
946 <entry key="FileSystemModule" value-ref="de.bps.onyx.manager.modules.FileSystemModule" />
947 <entry key="OLATRepoModule" value-ref="de.bps.onyx.manager.modules.OPALRepoModule" />
948 <entry key="PREOLATCERepoConfiguration" value-ref="de.bps.onyx.manager.modules.PREOLATCERepoConfiguration" />
949 </map>
950 </property>
951 <property name="defaultModule" ref="de.bps.onyx.manager.modules.OPALRepoModule" />
952 </bean>
953 ... 
954 {{/code}}
955
956 * defines the repositories available:
957 ** key defines the internal repository ID. It may be named as you want.
958 ** value-ref references the bean which defines the repository configuration:
959
960 {{code language="xml"}}
961 ...
962 <bean id="de.bps.onyx.manager.modules.FileSystemModule" class="de.bps.onyx.manager.modules.FileSystemModule">
963 <constructor-arg index="0" ref="FileSystemConfiguration" />
964 </bean>
965 ... 
966 {{/code}}
967
968 * instantiates the repository configuration depending on repository type:
969 ** de.bps.onyx.manager.modules.FileSystemModule: value-ref from above
970 ** class="...": One of:
971 *** de.bps.onyx.manager.modules.FileSystemModule (local file system repository)
972 *** de.bps.onyx.manager.modules.OPALRepoModule (uses an OLAT LMS as repository)
973 ** constructor-arg: ref references the configuration bean as follows:
974
975 ===== File system repository =====
976
977 {{code language="xml"}}
978 ...
979 <bean id="FileSystemConfiguration" class="de.bps.onyx.model.repo.RepositoryModuleConfiguration">
980 <property name="name" value="FileSystemModule" />
981 <property name="typeKey" value="FileSystemModule" />
982 <property name="description" value="File system module" />
983 <property name="canHandleGuest" value="true" />
984 <property name="serviceTarget" value="/opt/owe/fsr" />
985 <property name="displayname" value="Repository PRE/OLATCE" />
986 </bean>
987 ... 
988 {{/code}}
989
990 * name: Name which is used internal in ONYX WebEditor as identifier (**must** match key in line <entry key="FileSystemModule" value-ref="de.bps.onyx.manager.modules.FileSystemModule" /> above)
991 * typeKey: Repository type definition
992 * description: Some description (not used at the moment)
993 * canHandleGuest: set to true if this repository can handle guest users (without logon)
994 * serviceTarget: File system path
995 * displayname: String to show as repository name in ONYX Editor (if not given, some internal translation will be done to show a generic and type dependent name)
996
997 ===== OLAT repository =====
998
999 {{code language="powershell"}}
1000 ...
1001 <bean id="OPALRepoConfiguration" class="de.bps.onyx.model.repo.RepositoryModuleConfiguration">
1002 ...
1003 <property name="serviceTarget" value="https://next.bps-system.de/opal/services/" />
1004 ...
1005 </bean>
1006 ... 
1007 {{/code}}
1008
1009 * serviceTarget: OLAT URL
1010 * Other properties as stated above for File system repository
1011
1012 **WEB-INF/classes/de/bps/onyx/context/applicationContext.xml**
1013
1014 This file contains the configuration for: the connection to ONYX Player. The ONYX Player is used for preview.
1015
1016 {{code language="xml"}}
1017 ...
1018 <property name="system" value="preonyxeditor" />
1019 <property name="previewAddress" value="http://pre.bps-system.de/onyx"/>
1020 ...
1021 {{/code}}
1022
1023 In this example is the ONYX Player used at URL [[http:~~/~~/pre.bps-system.de/onyx>>url:http://pre.bps-system.de/onyx||rel="nofollow" shape="rect" class="external free"]] . The serviceprovider name (used by ONYX Player) is: preonyxeditor
1024
1025 The connection to database example:
1026
1027 {{code language="xml"}}
1028 <property name="dbDriverClass" value="org.postgresql.Driver" />
1029 <property name="dbConnectionUrl" value="jdbc:postgresql://localhost:5432/dbname" />
1030 <property name="dbUserName" value="username" />
1031 <property name="dbPassword" value="userpassword" />
1032 <property name="dbDialect" value="org.hibernate.dialect.PostgreSQLDialect" /> 
1033 {{/code}}
1034
1035 **WEB-INF/classes/de/bps/onyx/context/webServiceContext.xml**
1036
1037 This file contains the configuration for the connection of the ONYX Player. This ONYX Player is used for statistic issues.
1038
1039 Example:
1040
1041 {{code language="xml"}}
1042 ...
1043 <bean id="OnyxReporterTarget" class="de.bps.onyx.manager.reporter.service.OnyxReporterTarget">
1044 <constructor-arg name="target" value="https://onyx.bps-system.de/preview/reporterservices" />
1045 </bean>
1046
1047 <bean id="OnyxReporterProvider" class="de.bps.onyx.manager.reporter.service.OnyxReporterProvider">
1048 <constructor-arg name="id" value="previewid" />
1049 </bean>
1050 ...
1051 {{/code}}
1052
1053 In this example is the ONYX Player used at URL [[https:~~/~~/onyx.bps-system.de/preview/ .>>url:https://onyx.bps-system.de/preview/.&nbsp||rel="nofollow" shape="rect" class="external text"]] The serviceprovider name (used by ONYX Player) is: previewed
1054
1055 ===== Additional feature - MAXIMA (mandatory) =====
1056
1057 Install MAXIMA, if you like to use calculations
1058
1059 Installation on RHEL/Fedora/CentOS:
1060
1061 {{code language="powershell"}}
1062 sudo yum install maxima
1063 {{/code}}
1064
1065 Installation on Debian/Ubuntu/Mint:
1066
1067 {{code language="powershell"}}
1068 sudo aptitude install maxima
1069 {{/code}}
1070
1071 Or visit [[http:~~/~~/maxima.sourceforge.net/>>url:http://maxima.sourceforge.net/||shape="rect"]] and download the MAXIMA files
1072
1073 ===== Additonal feature - log files =====
1074
1075 {{code}}
1076 [root@bps0206 logs]# less /opt/apache-tomcat-X.X.X/logs/webeditor.log
1077 [root@bps0206 logs]# less /opt/apache-tomcat-X.X.X/logs/catalina.out
1078 {{/code}}