Something went wrong on our end
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
olat.properties 74.61 KiB
########################################################################
#
# Sample configuration file for OpenOlat
#
# This is the main OpenOlat configuration file. You should ensure that
# you have read and understood the OpenOlat documentation beforehand.
# In all likelihood you will need to alter some of the settings
# below to suit your environment
#
# You should begin by creating an empty olat.local.properties file and put it in the tomcat lib dir e.g. /tomcat/lib
# or if you are inside eclipse you may put it to webapp/WEB-NF/src directory
# Spring searches on the classpath for this file and will overwrite the default properies from this file.
# Check the olat administration tab for a setup menu entry for more info.
#
# Windows users: please use forward slashes throughout in file and
# directory settings e.g., C:/TEMP
#
########################################################################
# Application directories (absolute paths required!) Empty values point to java.io.tmpdir which can also be
# overwritten with vm parameter -Djava.io.tmpdir=/home/user/data
########################################################################
userdata.dir.comment=runtime application data directory. Empty value points to java.io.tmpdir
userdata.dir=
archive.dir.comment=directory for deleted userdata/repository enties. Empty value points to [java.io.tmpdir]/deleted_archive
archive.dir.values=${userdata.dir}/deleted_archive
archive.dir=${userdata.dir}/deleted_archive
log.dir.comment=log directory of the olat.log file. Must correspond with your log4j.xml
log.dir.values=${userdata.dir}/logs. Empty value points to [java.io.tmpdir]/logs
log.dir=${userdata.dir}/logs
log.dir.comment=name of the olat log file, e.g. olat.log. Must correspond with your log4j.xml
log.filename=olat.log
folder.root.comment=name of the repository root. Empty value points to [java.io.tmpdir]/bcroot
folder.root.values=${userdata.dir}/bcroot
folder.root=${userdata.dir}/bcroot
folder.maxulmb.comment=limits on upload size and quotas should be set in MB
folder.maxulmb=100
folder.quotamb=200
folder.sendDocumentToExtern=true
folder.sendDocumentLinkOnly=true
# file size limit for HTML and text editor is 1MB
folder.editFileSizeLimitBytes=1048576
#force download of the files
folder.force.download=true
folder.force.download.values=true,false
########################################################################
# Application settings
########################################################################
# Initial setting for the system default locale
# (used on the OLAT login page as well as when creating new user accounts)
# NOTE: Once set at runtime via the admin GUI (System configuration -> Languages)
# this default setting will be overridden by the values in
# ${userdata.dir}/system/configuration/org.olat.core.util.i18n.I18nModule.properties
defaultlang=en
#will be set by maven
project.build.home.directory=
# The language that is used as a fallback in case the system does not find a key in
# the users language nor in the default language. Note that in this language all
# keys must exist! Since developers only add the 'de' and 'en' keys it is strongly
# recommended that you don't set it to any other value that this. If unsure, use the default 'de'.
fallbacklang=de
fallbacklang.comment=Set this only to a language that is 100% translated when compared to 'de'
fallbacklang.values=de,en
# Initial setting for enabled languages: comma separated list of lang keys.
# Example:
# enabledLanguages=en,de,fr,it,es,da,cs,el,ru,pl,zh_CN,zh_TW,lt,fa,pt_PT,pt_BR,tr,hu,sq,in,ar,rm,af,iw,vi,mn
# or
# Set to 'all' to enable all languages that can be found in the source code
# Example:
# enabledLanguages=all
# NOTE: Once set at runtime via the admin GUI (System configuration -> Languages)
# this default setting will be overridden by the values in
# ${userdata.dir}/system/configuration/org.olat.core.util.i18n.I18nModule.properties
enabledLanguages=en,de,fr,it,es
# determines the character set of files written to the file system
# e.g.: US-ASCII, ISO-8859-1, UTF-8
defaultcharset=UTF-8
# abort system startup when no UTF-8 capable file system is detected. In production this should be set to
# true to prevent accidental startup with another encoding which leads to a big data mess
enforce.utf8.filesystem=true
# global on/off config for resume
history.resume.enabled=true
# default settings for the resume function in case feature is available
history.resume.enabled.default=ondemand
history.resume.enabled.default.values=none,auto,ondemand
# the owner of repository-entries of deleted users
deletionModule.adminUserName=administrator
# Session timeout configuration.
# Note that this are default values only. If you want to change the configuration, open the administration panel
# in OpenOlat and change the values there. They are stored in olatdata/system/configuration/ and will override
# the values from the olat.local.properties file.
# a) Session timeout in seconds for not-authenticated sessions (login screen etc).
# Keep small to prevent denial of service attacks. Default is 5 minutes.
session.timeout=300
# b) Session timeout in seconds for authenticated users and guest users. Default is two hours.
session.timeout.authenticated=7200
# Extend the 5 minutes session timeout for following user agents (comma separated)
session.timeout.extended.for=Microsoft
########################################################################
# SMTP (mail) settings
########################################################################
# mail support can be disabled by leaving the following entry blank or
# setting it to the keyword 'disabled' (without quotes!)
smtp.host=localhost
smtp.port=
# if required by your local SMTP you may need to provide credentials
smtp.user=
smtp.pwd=
# enable SSL if your smtp server supports it
smtp.sslEnabled=false
smtp.sslCheckCertificate=false
smtp.starttls=false
# timeout in milliseconds
smtp.timeout=8000
# smtp.from will override the mail envelope, leave it empty to set it to the first reply-to address
smtp.from=
# local mail domain where the return address is allowed to be set to the sender accounts email address.
# if the sender or all the recipients are in this domain the senders mailaddress otherwise the fromemail (see below) will be in the from header.
fromdomain=
# system mails will be sent from this address (from local domain with valid reverse dns):
fromemail=no-reply@your.domain
# the plain text name of the from mail address usually displayed by the email client
fromname=OpenOlat eLearning Server (${server.domainname})
# set this email to a mail address in your domain (used as reply-to address)
adminemail=webmaster@your.domain
# set this email to a mail address in your domain (used for 'ask for help here' type of messages that do not have special address)
supportemail=${adminemail}
# set this email to a mail address in your domain (used to tell users how to apply for more quote disk space)
quotaemail=${supportemail}
# set this email to a mail address in your domain (used to notify when users are deleted from the system)
deleteuseremail=${supportemail}
# set this email to a mail address in your domain (used for red-screen error reports)
erroremail=${adminemail}
# maximum size for email attachments (in MB)
mail.attachment.maxsize=5
# Enable the intern email inbox and outbox
mail.intern=true
mail.showInboxRecipientNames=true
mail.showInboxMailAddresses=false
mail.showOutboxRecipientNames=true
mail.showOutboxMailAddresses=false
mail.receiveRealMailUserDefaultSetting=true
########################################################################
# User registration, login and deletion settings
########################################################################
# permit self registration
registration.enableSelfRegistration=true
# enable/disable the link self registration on the login page
registration.enableSelfRegistration.login=true
registration.enableSelfRegistration.login.values=true,false
# enable/disable the direct link to registration
registration.enableSelfRegistration.link=true
registration.enableSelfRegistration.link.values=true,false
# enable/disable the validation of an e-mail address by sending an e-mail
registration.email.validation=true
registration.email.validation.values=true,false
# registration made in GUI are valid for how many hours (default 2 days)
registration.valid.hours.gui=48
# registration made in REST are valid for how many hours (default 30 days)
registration.valid.hours.rest=720
# a list of domains separated with a comma
registration.domainList=
# send an email when new users register
registration.enableNotificationEmail=false
# set this email to a mail address in your domain
registration.notificationEmail=${adminemail}
# ask user to accept a disclaimer at first login. Use i18n tool to customize disclaimer message
registration.enableDisclaimer=true
# add a second checkbox to the disclaimer, e.g. for a privacy statement
registration.disclaimerAdditionalCheckbox=false
# add a third checkbox to the disclaimer, e.g. for the terms of use
registration.disclaimerAdditionalCheckbox2=false
# add a link to the disclaimer with a file download
# if set to true you can add downloadable disclaimer files in olatdata/customizing/disclaimer/
# the names of the files can be configured in the i18n key org.olat.registration:disclaimer.filedownloadurl
registration.disclaimerAdditionaLinkText=false
# setting for the bean interceptor in the registration process, disabled mean that no interceptor
# is desired. Standard implementation are: byShibbolethAttribute which generate a username based
# from a shibboleth attribute, byEmail which generate a username based on the email from the user
# which try to register itself
registration.preset.username.values=disabled,byEmail,byShibbolethAttribute
registration.preset.username=disabled
# setting for byEmail implementation: a domain restriction to preset the username
registration.preset.username.domain=
# settings for byShibbolethAttribute implementation:
# allowChanges the new user to changes its username (only when using byShibbolethAttribute)
registration.preset.username.allowChanges=true
# the shibboleth attribute to use to preset the username
registration.preset.username.shibbolethAttribute=Shib-SwissEP-UniqueID
# provide guest login on the dmz page
login.enableGuestLoginLinks=true
guest.login=${login.enableGuestLoginLinks}
# provider guest url in groups and courses
guest.login.links=${login.enableGuestLoginLinks}
# allow invitation login
login.invitationLogin=true
invitation.login=${login.invitationLogin}
# Allow users to login using alternatively their email address or username
login.using.username.or.email.enabled=true
# Regex to validate username of new users. If yo change this property,
# Make sure to change the translation of $org.olat.user\:form.checkUsername accordingly.
username.regex=[0-9a-z\\.\\-@_]{4,64}
# permit users to change their own passwords
# (if you set this to false, nobody can can change their pws!)
password.change.allowed=true
# Password syntax checks
password.min.length=4
password.max.length=128
# Values to restrict letters, digits and special signs
# atLeastX: min X letters (X = 1/2/3)
# disabled: The check is disabled. Letters/Digits/Specials are allowd in any quantity
# forbidden: Letters/Digits/Specials not allowed
# validateSeparately: Ignore this rule and use password.min.letters.uppercase / password.min.letters.lowercase instead
# By default, a password has to have at least one letter.
password.letters=atLeast1
password.letters.uppercase=disabled
password.letters.lowercase=disabled
# By default, a password has to have at least one digit or special sign.
password.digits.special.signs=atLeast1
password.digits=disabled
password.special.signs=disabled
# Are these values forbidden as part of the password?
password.forbidden.username=false
password.forbidden.firstname=false
password.forbidden.lastname=false
# Password ageing policy
password.change.valid.hours.gui=48
password.change.valid.hours.rest=720
password.max.age=0
password.max.age.author=${password.max.age}
password.max.age.groupmanager=${password.max.age}
password.max.age.poolmanager=${password.max.age}
password.max.age.usermanager=${password.max.age}
password.max.age.rolesmanager=${password.max.age}
password.max.age.learnresourcemanager=${password.max.age}
password.max.age.curriculummanager=${password.max.age}
password.max.age.qualitymanager=${password.max.age}
password.max.age.lecturemanager=${password.max.age}
password.max.age.linemanager=${password.max.age}
password.max.age.principal=${password.max.age}
password.max.age.administrator=${password.max.age}
password.max.age.sysadmin=${password.max.age}
# Allow coaches to set new passwords for their students
password.change.by.coach.allowed=false
password.change.by.coach.allowed.values=true,false
#notifications intervals the user can choose from. Disabled those you do not want by setting them to "false"
notification.interval.never=true
notification.interval.monthly=true
notification.interval.weekly=true
notification.interval.daily=true
notification.interval.half-daily=true
notification.interval.four-hourly=true
notification.interval.two-hourly=true
#default notification interval. Make sure this interval is enabled!!
notification.interval.default=daily
notification.interval.default.values=never,monthly,weekly,daily,half-daily,four-hourly,two-hourly
#notification cron job
notification.cronjob.expression=0 10 */2 * * ?
# Request to delete account
allow.request.delete.account=false
allow.request.delete.account.disclaimer=false
request.delete.account.mail=
####################################################
# Groups
####################################################
# Standard users can create groups
group.user.create=true
group.user.create.values=true,false
# Authors can create groups. (Group managers and system administrators can create groups in any case)
group.author.create=true
group.author.create.values=true,false
# Show the contact form in the business group card to send mails to group members or the coaches
group.card.contact=groupconfig
group.card.contact.values=never,always,groupconfig
# Users can download member list of groups (default, can be overridden for each group)
group.userlist.download.default.allowed=false
group.userlist.download.default.allowed.values=true,false
# Behavior when manually adding a user to a group. There are two workflow elements regarding data privacy
# that can be configured:
# a) Email notification: is the notification email about the new group membership mandatory or optional?
# Default is true for normal users and optional for users with role author, usermanager, groupmanager or administrator
group.mandatory.enrolment.email.users=true
group.mandatory.enrolment.email.authors=false
group.mandatory.enrolment.email.usermanagers=false
group.mandatory.enrolment.email.rolesmanagers=false
group.mandatory.enrolment.email.groupmanagers=false
group.mandatory.enrolment.email.learnresourcemanagers=false
group.mandatory.enrolment.email.poolmanagers=false
group.mandatory.enrolment.email.curriculummanagers=false
group.mandatory.enrolment.email.lecturemanagers=false
group.mandatory.enrolment.email.qualitymanagers=false
group.mandatory.enrolment.email.linemanagers=false
group.mandatory.enrolment.email.principals=false
group.mandatory.enrolment.email.administrators=false
group.mandatory.enrolment.email.systemadmins=false
# b) Invitation only or direct membership: is the new group membership immediate or is it only an invitation
# that must be accepted by the invited user?
# Default is invitation-only for normal users and immediate group membership without the need to accept
# for users with the role author, usermanager, groupmanager or administrator
group.accept.membership.users=true
group.accept.membership.authors=false
group.accept.membership.usermanagers=false
group.accept.membership.rolesmanagers=false
group.accept.membership.groupmanagers=false
group.accept.membership.learnresourcemanagers=false
group.accept.membership.poolmanagers=false
group.accept.membership.curriculummanagers=false
group.accept.membership.lecturemanagers=false
group.accept.membership.qualitymanagers=false
group.accept.membership.linemanagers=false
group.accept.membership.principals=false
group.accept.membership.administrators=false
group.accept.membership.systemadmins=false
# Allow leaving groups created by learners
group.leaving.group.created.by.learners=true
# Allow leaving groups created by authors
group.leaving.group.created.by.authors=true
# Allow configuration of this settoing on a per-groupe base
group.leaving.group.override=true
#enable managed groups
group.managed=false
group.managed.values=true,false
####################################################
# assessment config
####################################################
# enable / disable the course assessment mode
assessment.mode=enabled
assessment.mode.values=enabled,disabled
####
# Olat -> default assessmentplugin
# Onyx -> The Onyx-Testplayer (onyxassessmentplugin) can be downloaded at http://www.olat.de/onyx.
# The Testplayer is one element of the Onyx-Testsuite and has been designed,
# developed and tested by BPS - Bildungsportal Sachsen GmbH - http://www.bps-system.de
# OLAT makes no representations or warranties of any kind, either express or implied,
# nor shall OLAT have any liability whatsoever to any person using Onyx, with respect to its functionality.
# For all questions and help concerning the Onyx-Testplayer and the Onyx-Testsuite
# including any support write to support@bps-system.de
####
assessmentplugin.activate=Olat
########################################################################
# QTI 2.1 QtiWorks
########################################################################
# Enable or disable the Math Extension of QtiWorks (need Maxima)
qti21.math.assessment.extension.enabled=false
qti21.math.assessment.extension.enabled.values=true,false
#Enable digital signature of the assessment results
qti21.digital.signature.enabled=false
#Path to a PFX certificate (with X509 certificate, private and public key)
qti21.digital.signature.certificate=
#Try an other encoding to open the ZIP files during import of tests
qti21.import.encoding.fallback=
########################################################################
# QTI 1.2 DEPRECATED , WILL BE REMOVED IN A FURTHER RELEASE
########################################################################
qti12.edit.resources.enabled=false
qti12.create.resources.enabled=false
qti12.import.resources.enabled=false
qti12.run.enabled=false
qti12.survey.create.resources.enabled=false
qti12.survey.create.course.nodes.enabled=false
qti12.survey.import.resources.enabled=false
qti12.survey.run.enabled=false
########################################################################
# Certificates
########################################################################
# Send a copy of the certificates mails to someone
certificate.bcc=
certificate.linemanager=false
#####
# Help course and context help
#####
# Enable the help system. This create context help links all over the system that points to the help system configured by the help.plugin variable.
# By default, the help opens the manual hosted in a confluence wiki at confluence.openolat.org. If you want to build your own help system, write
# your own help plugin and configure it here.
help.enabled=true
# Define the plugin which generate the help URL
help.plugin=ooConfluenceLinkHelp,ooAcademyLinkHelp,ooTeachLinkHelp
help.plugin.values=ooConfluenceLinkHelp,ooAcademyLinkHelp,ooTeachLinkHelp,supportMailHelp,courseHelp,customLink1Help,customLink2Help,customLink3Help
# Note that when you use anything but ooConfluenceLinkHelp, the context help will be disabled. Only the help button in the top navigation will be available and open the help course
help.plugin.icon.values=o_icon_manual,o_icon_video,o_icon_coach,o_course_icon,o_icon_mail or any other icon
# Settings for the ooConfluenceLinkHelp plugin
help.confluence.enabled=usertool,authorsite,dmz
help.confluence.icon=o_icon_manual
# Settings for the ooAcademyLinkHelp plugin
help.academy.link=https://www.openolat.com/openolat-academy/
help.academy.enabled=usertool,authorsite,dmz
help.academy.icon=o_icon_video
# Settings for the ooTeachLinkHelp plugin
help.ooteach.link=https://www.openolat.com/openolat-teach/
help.ooteach.enabled=authorsite
help.ooteach.icon=o_icon_coach
# Settings for the supportMailHelp plugin
help.support.email=${supportemail}
help.support.enabled=usertool,authorsite,dmz
help.support.icon=o_icon_mail
# Settings for the courseHelp plugin
help.course.softkey=OLAT::help-course_de.zip
help.course.enabled=
help.course.icon=o_course_icon
# Settings for the customLinkHelp plugin
help.custom1.link=
help.custom1.enabled=
help.custom1.icon=
help.custom1.new.window=false
help.custom1.new.window.values=true,false
help.custom2.link=
help.custom2.enabled=
help.custom2.icon=
help.custom2.new.window=false
help.custom3.link=
help.custom3.enabled=
help.custom3.icon=
help.custom3.new.window=false
########################################################################
# OLAT technical settings
########################################################################
# OLAT instance ID (effects a unqiue namesapce for addressable items)
# ID should be no longer than 10 characters!
instance.id=myopenolat
# Issuer of the OpenOlat users.
# The issuer is the entity that issues a set of claims. An issuer
# identifier is a case sensitive URL using the https scheme that contains
# scheme, host, and optionally, port number and path components and no
# query or fragment components.
instance.issuer.identifier=https://${instance.id}.openolat.org
# by creating a theme under webapp/WEB-INF/static/themes you can
# customize the OLAT application to your liking (see the example
# theme for futher information.
# you can also configure a theme via the admin GUI which takes precedence
# To create your own theme please read webapp/WEB-INF/static/themes/themes.README
layout.theme=openolat
layout.theme.values=light,openolat,yourowntheme
layout.coursetemplates.blacklist=
# Absolute path to directory where custom themes are loaded from (optional)
layout.custom.themes.dir=${userdata.dir}/customizing/themes
# CSS class prefixes from the content.css file that are to be displayed in
# the menu in the HTML editor. Default is /\.b_/ (javaScript regexp)
html.editor.css.class.prefix=/\.b_/
# test user generation
user.generateTestUsers=false
# debug mode for developers. If olat.debug is set to true you must also set project.build.home.directory to your source code
olat.debug.comment=for developers: Set to true to enable visual debugging by the red/green bug icon on the upper left corner of olat
olat.debug=false
# cache localization files (unless in development mode)
localization.cache=true
# required only for performance and functional testing
allow.loadtest.mode=false
# Whether or not the gui demo site should be enabled=shown. Note that when set to true the
# two other conditions must be met to show the site: user must be administrator and
# olat.debug must also be set to true. When olat.debug=false, the flag has no meaning whatsoever.
guidemo.enabled=true
########################################################################
# OLAT sites / tabs
########################################################################
# enable / disable homeSite. Those are the tools visible in the personal menu
site.minimalhome.enabled=true
# enable / disable menu items from home site
#note: orders, mail and EP are disabled via module-config
minimalhome.ext.efficiencystatement=true
minimalhome.ext.otherusers=true
minimalhome.ext.notelist=true
minimalhome.ext.userfolder=true
minimalhome.ext.notifications=true
minimalhome.ext.portfolio=true
minimalhome.ext.bookings=true
minimalhome.ext.calendar=true
minimalhome.ext.mysettings=true
minimalhome.ext.myprofile=true
minimalhome.ext.password=true
# The my courses and group sites are meant for learners to find their courses and groups
site.mycourses.enable=true
site.groups.enable=true
# The coaching site is visible to users with coaching rights to better support coaching users accross multiple courses
site.coaching.enable=true
# The repository and question pool site are authoring environments only
site.repository.enable=true
site.questionpool.enable=true
# When enabling the portfolio site you should set minimalhome.ext.portfolio to false to not have two separate entry points
site.portfolio.enable=false
# Enable/disable the whole catalog feature
repo.catalog.enable=true
# Enable/disable the catalog site as a catalog-only site and the catalog admin site
site.catalog.enable=true
site.catalogadmin.enable=true
# Enabl/disable the browsing of catalog in the course site
repo.catalog.browsing.enable=true
# Portal site - deprecated since OO 10 release, use the my courses instead
site.portal.enable=false
# Portlets enabled by default
portlet.didYouKnow.enabled=true
portlet.groups.enabled=true
portlet.bookmarks.enabled=true
portlet.notes.enabled=true
portlet.notifications.enabled=true
portlet.efficiencyStatements.enabled=true
portlet.quickstart.enabled=true
portlet.calendar.enabled=true
portlet.repository.student.enabled=true
portlet.repository.student.entries=6
portlet.repository.teacher.enabled=true
portlet.repository.teacher.entries=6
# the info message portlet is a counterpart of the course building block
# course.node.infomessage, see further down this file.
portlet.infomessages.enabled=true
# Optional portlets, disabled by default
portlet.shiblogin.enabled=false
portlet.infomsg.enabled=false
# the links from the links portlet are configure here: webapp/WEB-INF/olat_portals_links.xml
portlet.links.enabled=false
# the institutions are configure here : webapp/WEB-INF/olat_portals_institution.xml
portlet.institution.enabled=false
portlet.system.events.enabled=false
# sysinfo portlet settings (files are editable if hosted on local server) (system.events)
portlet.sysinfo.url=../../raw/${build.version}/events.html
portlet.sysinfo.filepath=pathToYourEventsFile/static/events.html
#enable managed courses
repo.managed=false
repo.managed.values=true,false
# The course database: a REST key-value store that can be used in single pages to
# implement all kind of fancy things that need a storage, e.g. build your own
# survey or "I've read this" checkbox. Course authors have the possibility do
# download the course db with the values from all users and check for values using
# expert rules
course.db.enabled=false
########################################################################
# Top navigation configuration
########################################################################
topnav.impressum=false
topnav.search=true
########################################################################
# WebDAV
########################################################################
webdav.enabled=true
#webdav manager (show or don't webdav links in GUI)
webdav.links.enabled=true
auth.digest.enabled=true
#sort courses using semester terms for better discoverability. Only
#usefull when semester terms are defined in admin area and used by courses
webdav.termsfolders.enabled=true
# User agents for which the basic authentication should never be proposed
webdav.basic.authentication.black.list=Microsoft Office Excel,Microsoft Excel,Microsoft-WebDAV-MiniRedir
# User agents which don't play nice
webdav.user.agent.black.list=,-
########################################################################
# Image and PDF scale/thumbnail options
########################################################################
thumbnail.provider=java
# java is a pure java implementation (which use PDFBox too), magick use ImageMagick and
# GhostScript. For the magick one, you must add the path to convert and gs command line
# in your PATH environnment variable.
thumbnail.provider.values=java,magick
########################################################################
# Shared resources - used only to generate sample configurations
########################################################################
# User a value of '0' if you do not want to enable SSL.
# If SSL is enabled, don't forget to uncomment the SSL section in the sample
# configuration file
# Eg. 8443, 443 (must not be empty, even if standard port 443 is used). Use 0 to disable SSL
server.port.ssl=0
#if migrating from a context as /olat to the ROOT context in tomcat
server.legacy.context=
# mobile context used to redirect
mobile.context=/mobile
########################################################################
# Web application container (e.g., Tomcat) settings
########################################################################
# hosted application fully qualified domain name (e.g., DNS CNAME)
# omit references to protocol/scheme (e.g., HTTP(S))
server.domainname=localhost
# the port on which the container is listening
server.port=8080
# OLAT JMX server port (must be unique per node in a cluster)
jmx.rmi.port=3000
########################################################################
# MathJAX CDN
########################################################################
mathjax.cdn=//mathjax.openolat.org/mathjax/2.7-latest/
mathjax.config=TeX-AMS-MML_HTMLorMML
# find \( \), \[ \], $$ to trigger MathJax rendering
mathjax.markers=true
########################################################################
# Database settings
########################################################################
# set to false if your db user does not have enough privileges upgrading the database.
# After manually upgrading the DB you have to add an entry like this to the olatdata/system/installed_upgrades.xml file
# <string>Database update</string><boolean>true</boolean>
auto.upgrade.database=true
db.vendor=mysql
db.vendor.values=mysql,postgresql,oracle
db.vendor.values.comment=supported vendors currently include "mysql", "postgresql" and "oracle"
# The local data source works out of the box with the Hikari database connection pool. However, we stronlgy
# recommend using a jndi container managed data source for better stability and realibility.
# When using jndi, make sure you copy the database connector to your application server lib directory and remove it from
# the OpenOlat release.
db.source=local
db.source.values=local,jndi
db.source.values.comment=supports jdbc connections created locally (local) or search them with a jndi name (jndi)
# the server hosting the database
db.host=localhost
db.host.port=3306
db.host.port.values=3306 (mysql default), 5432 (postgresql default)
# jndi name to find the jdbc connections
db.jndi=
db.jndi.values=java:comp/env/jdbc/OpenOLATDS
db.name=olat
db.user=olat
db.pass=olat
#this option is currently only for oracle
db.default.schema=olat
# Special options for mysql database. Set useOldUTF8Behavior=true if
# your mysql database is setup up with iso-latin (or any other) encoding.
# Remove the useOldUTF8Behavior parameter if you use native UTF-8 on the
# database (recommended when setting up a new system)
db.url.options.mysql=?useUnicode=true&characterEncoding=UTF-8
# enable database debugging (seldom required except for developers)
db.show_sql=false
# configure the Hikari pool with hibernate (c3p0 is only for legacy purpose and backwards compatibilty)
db.hibernate.hikari.minsize=${db.hibernate.c3p0.minsize}
db.hibernate.hikari.maxsize=${db.hibernate.c3p0.maxsize}
# 0 to disable leak detection, otherwise a value in milliseconds
db.hibernate.hikari.leakDetectionThreshold=0
db.hibernate.c3p0.minsize=20
db.hibernate.c3p0.maxsize=50
########################################################################
# Infinispan
########################################################################
#Use the jndi name if you want to retrieve the cache manager from JBoss AS
infinispan.jndi=
infinispan.jndi.values=,java:jboss/infinispan/openolatha
########################################################################
# Velocity Templating Engine
########################################################################
velocity.parser.pool.size=20
velocity.parser.pool.size.comment=20 is Velocity default value, use more when you get errors in the logfile. Only necessary on high load configurations.
########################################################################
# Instant Messaging / chat
########################################################################
# As of 8.4 no external instant messaging server is needed. Configuration
# of the instant messaging / chat infrastructure is done in the admin GUI
instantMessaging.enable=true
########################################################################
# Calendar
########################################################################
# Enable or not the calendar feature in OpenOlat
calendar.enabled=true
calendar.enabled.values=true,false
# Enable personal calendar (if calendar is enabled)
calendar.personal.enabled=true
calendar.personal.enabled.values=true,false
# Enable group calendar (if calendar is enabled)
calendar.group.enabled=true
calendar.group.enabled.values=true,false
# Enable the calendar tool in course (if calendar is enabled)
calendar.course.tool.enabled=true
calendar.course.tool.enabled.values=true,false
# Enable the calendar course element in course (if calendar is enabled)
calendar.course.element.enabled=true
calendar.course.element.enabled.values=true,false
# Enable managed calendars
calendar.managed=false
calendar.managed.values=true,false
########################################################################
# Social sharing options
########################################################################
# Enable social sharing features
social.share.enabled=true
# List of perma-link share buttons, normally visible in the footer of the page.
social.share.link.buttons=twitter,facebook,google,delicious,digg,mail,link
social.share.link.buttons.values=twitter,facebook,google,delicious,digg,mail,link
########################################################################
# Translation tool settings (translation infrastructure required!)
########################################################################
# note: when enabled the language customisation tool is not available! (only enabled or disabled allowed as values!)
is.translation.server=disabled
# Path to the CVS "olat3" project that contains the languages DE and EN
# During development this is normally /workspace/olat/src/main/java
i18n.application.src.dir=
# Path to any directory that contains
# translatable packages other than DE and EN which are in the application source directory
# During development this is normally ${i18n.application.src.dir}
i18n.application.opt.src.dir = ${i18n.application.src.dir}
########################################################################
# User search / privacy
########################################################################
# which roles see the administrative user properties
usersearch.adminProps.users=disabled
usersearch.adminProps.authors=enabled
usersearch.adminProps.usermanagers=enabled
usersearch.adminProps.rolesmanagers=enabled
usersearch.adminProps.groupmanagers=enabled
usersearch.adminProps.learnresourcemanagers=enabled
usersearch.adminProps.poolmanagers=enabled
usersearch.adminProps.curriculummanagers=enabled
usersearch.adminProps.lecturemanagers=enabled
usersearch.adminProps.qualitymanagers=enabled
usersearch.adminProps.linemanagers=enabled
usersearch.adminProps.principals=enabled
usersearch.adminProps.administrators=enabled
usersearch.adminProps.systemadmins=enabled
# which roles are allowed to see the last visited date of group, course and other learning resources
user.lastlogin.visible.users=disabled
user.lastlogin.visible.authors=enabled
user.lastlogin.visible.usermanagers=enabled
user.lastlogin.visible.rolesmanagers=enabled
user.lastlogin.visible.groupmanagers=enabled
user.lastlogin.visible.learnresourcemanagers=enabled
user.lastlogin.visible.poolmanagers=enabled
user.lastlogin.visible.curriculummanagers=enabled
user.lastlogin.visible.lecturemanagers=enabled
user.lastlogin.visible.qualitymanagers=enabled
user.lastlogin.visible.linemanagers=enabled
user.lastlogin.visible.principals=enabled
user.lastlogin.visible.administrators=enabled
user.lastlogin.visible.systemadmins=enabled
# which roles see the autocompletion
usersearch.autocomplete.users=enabled
usersearch.autocomplete.authors=enabled
usersearch.autocomplete.usermanagers=enabled
usersearch.autocomplete.rolesmanagers=enabled
usersearch.autocomplete.groupmanagers=enabled
usersearch.autocomplete.learnresourcemanagers=enabled
usersearch.autocomplete.poolmanagers=enabled
usersearch.autocomplete.curriculummanagers=enabled
usersearch.autocomplete.lecturemanagers=enabled
usersearch.autocomplete.qualitymanagers=enabled
usersearch.autocomplete.linemanagers=enabled
usersearch.autocomplete.principals=enabled
usersearch.autocomplete.administrators=enabled
usersearch.autocomplete.systemadmins=enabled
# the maximum of identities returned by search (-1 is unlimited)
usersearch.maxResults=-1
usersearch.maxResults.values=-1,20,50
#send user informations with the request in the tunnel cours ebuilding block
userinfos.tunnelcoursebuildingblock=disabled
########################################################################
# Other user related settings
########################################################################
# When user full name is displayed, is it "Lastname, Firstname" (default) or "Firstname Lastname"
userDisplayName=userDisplayName_lastname_firstname
userDisplayName.values=userDisplayName_firstname_lastname, userDisplayName_lastname_firstname
# An additional image attached to the user profile, eg. for the company logo.
# Diplayed on the users vising card
user.logoByProfile=disabled
user.logoByProfile.values=enabled,disabled
# Set whether a user has to have an email address.
user.email.mandatory=true
# Set whether the email address of a user has to be unique or not.
# If it is not unique, some features are disabled,
# e.g. password reset, login with email address.
user.email.unique=true
# Set to false to make user portrait / avatar image read-only
# Does not apply to users with administrator role in user management
user.portrait.managed=false
# Enable the automatic process to deactivate users
user.automatic.deactivation=false
# Number of days after last login
user.days.before.deactivation=720
# Send an email before deactivation
user.mail.before.automatic.deactivation=false
user.days.before.mail.automatic.deactivation=30
user.mail.after.automatic.deactivation=false
# Enable the automatic process to delete users
user.automatic.deletion=false
# Sanity check when the automatic deletion process is set to 'true': if more than the defined
# percentages of user accounts are marked for deletion, the process will be aborted. This
# should prevent accidental deletion of OLAT user because of an SQL error.
user.automatic.delete.users.percentage=50
# Delete 180 days after being inactivated
user.days.before.deletion=180
# Send an email before deletion
user.mail.before.automatic.deletion=false
user.days.before.mail.automatic.deletion=30
user.mail.after.automatic.deletion=false
########################################################################
# Fulltext Search settings
########################################################################
# Enable search-service for only one node per cluster [ enabled | disabled ]
search.service=enabled
# The full text indexer can be configured in two ways:
# 1) Start indexer during startup and restart periodicaly in a given interval
generate.index.at.startup=false
# but only if startup is during the restart window...
restart.window.start=0
restart.window.end=24
search.index.path=search_index
search.permanent.index.path=perm_index
search.index.tempIndex=temp_search_index
search.index.tempSpellcheck=temp_spellcheck_index
search.index.pdfBuffer=temp_pdf_text_buf
search.pdf.external=false
search.pdf.external.command=convertpdf.sh
# Interval in millisecond after which the indexer should run again. O means: do not run again
search.indexing.restart.interval=0
# 2) Enable triggering indexer via cron-job instead at startup [ enabled | disabled ]
# When enabled , configure 'generate.index.at.startup=false'
search.indexing.cronjob=enabled
# Example '0 0 3 * * ?' start indexer at 03:00 ever day. If you do not provide a valid
# expression but have set search.indexing.cronjob=enabled, the system will generate a
# cron expression that triggers the indexer every four hour depending on your tomcat.id variable
search.indexing.cronjob.expression=0 0 3 * * ?
#examples:
# never fire: 0 0 0 1 1 ? 3000
# size of the thread pools for the text extractors
search.folder.pool.size=4
########################################################################
# REST API
########################################################################
# enable/disable the rest api
restapi.enable=false
restapi.enable.values=true,values
# Access to the /restapi/system without authentication if the IP
# of the client is in the list of IPs separated by comma. This is used for monitoring purpos
restapi.ips.system=
restapi.ips.system.values=192.168.1.200,192.168.1.201
########################################################################
# Statistics
########################################################################
# Calculate the course statistics
statistics.cronjob.expression=0 10 5 * * ?
########################################################################
# Shibboleth
########################################################################
#The auth provider you set to default will be the one you see when you access the loginpage, alternate providers are shows as links below
#enable and or set the basic login provider (username/password) on the loginpage active and or default
olatprovider.enable=true
olatprovider.default=true
# if you change this all current users will no longer be able to login!
default.auth.provider.identifier=OLAT
# Oauth / social providers as default
oauth.default=false
shibboleth.enable=false
#enable and or set the generic shib login provider on the loginpage active and or default
shibbolethGeneric.enable=false
shibbolethGeneric.default=false
#enable and or set the custom uzh shib login provider on the loginpage active and or default
shibbolethUZH.enable=false
shibbolethUZH.default=false
#these settings are university of zurich specific
shibboleth.wayfSPEntityID=
shibboleth.wayfSPHandlerURL=
shibboleth.wayfSPSamlDSURL=
shibboleth.wayfReturnUrl=
shibboleth.wayfReturnMobileUrl=$shibboleth.wayfReturnUrl
#you can manually add additional IDP servers. See org/olat/portal/shiblogin/_content/portlet.html
#for an example
shibboleth.wayf.additionalIDPs=
# set the name of the Shibboleth attribute used to identify authorized users
shibboleth.uid.shib=
shibboleth.uid.handler=
#Shibboleth attribute to use if a user logs in the first time.
shibboleth.preferred.language.shib=
shibboleth.preferred.language.handler=
#Apply author role automatically to users according to the value of a Shibboleth attribute.
#The contains parameter can have multiple values separated by commas. The value of the
#Shibboleth attribute has to match one value of the contains parameter to apply the author role.
shibboleth.role.mapping.author.enable=false
shibboleth.role.mapping.author.shib=
shibboleth.role.mapping.author.contains=
#Define which Shibboleth attributes are mapped to OLAT user properties
#and how the attributes are mapped. Use a handler to transform the from
#Shibboleth delivered value to the desired form. If no handler is
#configured the DoNothing handler is used. Set delete to false to avoid
#the deletion of the user property value if Shibboleth delivers no value.
#The mandatory user properties are never deleted by the synchronization.
shibboleth.user.mapping.handler.values=DoNothing,FirstValue,SchacGender
#These attributes are mandatory to create new users.
shibboleth.user.mapping.email.shib=
shibboleth.user.mapping.email.handler=
shibboleth.user.mapping.first.name.shib=
shibboleth.user.mapping.first.name.handler=
shibboleth.user.mapping.last.name.shib=
shibboleth.user.mapping.last.name.handler=
#Further attributes may be mapped if wanted.
shibboleth.user.mapping.key1.shib=
shibboleth.user.mapping.key1.olat=
shibboleth.user.mapping.key1.handler=
shibboleth.user.mapping.key1.delete=
shibboleth.user.mapping.key2.shib=
shibboleth.user.mapping.key2.olat=
shibboleth.user.mapping.key2.handler=
shibboleth.user.mapping.key2.delete=
shibboleth.user.mapping.key3.shib=
shibboleth.user.mapping.key3.olat=
shibboleth.user.mapping.key3.handler=
shibboleth.user.mapping.key3.delete=
shibboleth.user.mapping.key4.shib=
shibboleth.user.mapping.key4.olat=
shibboleth.user.mapping.key4.handler=
shibboleth.user.mapping.key4.delete=
shibboleth.user.mapping.key5.shib=
shibboleth.user.mapping.key5.olat=
shibboleth.user.mapping.key5.handler=
shibboleth.user.mapping.key5.delete=
shibboleth.user.mapping.key6.shib=
shibboleth.user.mapping.key6.olat=
shibboleth.user.mapping.key6.handler=
shibboleth.user.mapping.key6.delete=
shibboleth.user.mapping.key7.shib=
shibboleth.user.mapping.key7.olat=
shibboleth.user.mapping.key7.handler=
shibboleth.user.mapping.key7.delete=
shibboleth.user.mapping.key8.shib=
shibboleth.user.mapping.key8.olat=
shibboleth.user.mapping.key8.handler=
shibboleth.user.mapping.key8.delete=
shibboleth.user.mapping.key9.shib=
shibboleth.user.mapping.key9.olat=
shibboleth.user.mapping.key9.handler=
shibboleth.user.mapping.key9.delete=
shibboleth.user.mapping.key10.shib=
shibboleth.user.mapping.key10.olat=
shibboleth.user.mapping.key10.handler=
shibboleth.user.mapping.key10.delete=
shibboleth.user.mapping.key11.shib=
shibboleth.user.mapping.key11.olat=
shibboleth.user.mapping.key11.handler=
shibboleth.user.mapping.key11.delete=
shibboleth.user.mapping.key12.shib=
shibboleth.user.mapping.key12.olat=
shibboleth.user.mapping.key12.handler=
shibboleth.user.mapping.key12.delete=
shibboleth.user.mapping.key13.shib=
shibboleth.user.mapping.key13.olat=
shibboleth.user.mapping.key13.handler=
shibboleth.user.mapping.key13.delete=
shibboleth.user.mapping.key14.shib=
shibboleth.user.mapping.key14.olat=
shibboleth.user.mapping.key14.handler=
shibboleth.user.mapping.key14.delete=
shibboleth.user.mapping.key15.shib=
shibboleth.user.mapping.key15.olat=
shibboleth.user.mapping.key15.handler=
shibboleth.user.mapping.key15.delete=
shibboleth.user.mapping.key16.shib=
shibboleth.user.mapping.key16.olat=
shibboleth.user.mapping.key16.handler=
shibboleth.user.mapping.key16.delete=
shibboleth.user.mapping.key17.shib=
shibboleth.user.mapping.key17.olat=
shibboleth.user.mapping.key17.handler=
shibboleth.user.mapping.key17.delete=
shibboleth.user.mapping.key18.shib=
shibboleth.user.mapping.key18.olat=
shibboleth.user.mapping.key18.handler=
shibboleth.user.mapping.key18.delete=
shibboleth.user.mapping.key19.shib=
shibboleth.user.mapping.key19.olat=
shibboleth.user.mapping.key19.handler=
shibboleth.user.mapping.key19.delete=
shibboleth.user.mapping.key20.shib=
shibboleth.user.mapping.key20.olat=
shibboleth.user.mapping.key20.handler=
shibboleth.user.mapping.key20.delete=
# The attribute translator can be used to simplify ugly shibboleth attribute identifiers and mask them with nicer names.
# If unsure, use the emptyAttributeTranslator to not mask any shib attributes. The switchAttributeTranslator should only
# be used when participating in SWTICH AAI.
shibboleth.attribute.translator=emptyAttributeTranslator
shibboleth.attribute.translator.values=emptyAttributeTranslator,userMappingAttributeTranslator,switchAttributeTranslator
########################################################################
# Clustering settings
########################################################################
# set to Cluster to enable, otherwise use SingleVM to disable cluster features
cluster.mode=SingleVM
# each node requires a unique ID (1-64) starting at "1"
node.id=1
tomcat.id=${node.id}
# certain servies (e.g., notifications, course logger etc. are not
# cluster capable and can only run on a single node - set this to
# enabled on that node
cluster.singleton.services = enabled
# JMS broker url's where the path (localhost:61700) - defines teh local adress and local port :
# SingleVM jms.broker.url
jms.broker.url=vm://embedded?broker.persistent=false
search.broker.url=vm://embedded?broker.persistent=false
index.broker.url=vm://embedded?broker.persistent=false
certificate.broker.url=vm://embedded?broker.persistent=false
# Cluster (remote) jms.broker.url
#jms.broker.url=failover:(tcp://localhost:61616?wireFormat.maxInactivityDuration=0)
#search.broker.url=failover:(tcp://localhost:61616?wireFormat.maxInactivityDuration=0)
#if you use the jndi connection
jms.broker.jndi=OpenOLATConnectionFactory
sysbus.broker.jndi=topic/sysbus
search.broker.jndi=queue/searchQueue
index.broker.jndi=queue/indexQueue
certificate.broker.jndi=queue/certificateQueue
#####
#query cache config for singlevm/cluster
#####
hibernate.cache=enabled
hibernate.cache.values=enabled,disabled
#cluster need hibernate.caching.cluster.class set and hibernate.caching.singlevm.class empty and second level cache to false
#for the cluster version you have to add treecache.xml to the classpath, see olat3/conf/trecache.xml for an example
hibernate.caching.singlevm.class=net.sf.ehcache.hibernate.SingletonEhCacheProvider
#hibernate.caching.cluster.class=org.hibernate.cache.jbc2.SharedJBossCacheRegionFactory
hibernate.caching.cluster.class=org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
hibernate.caching.use.query.cache=true
hibernate.use.second.level.cache=true
hibernate.connection.timeout=120
########################################
# LDAP configuration parameters (optional)
# for advanced config options see webapp/WEB-INF/src/serviceconfig/org/olat/ldap/_spring/olatextconfig.xml
########################################
ldap.enable=false
# is ldap your default provider? true or false
ldap.default=false
ldap.activeDirectory=false
# The date format is not the same for OpenLDAP (yyyyMMddHHmmss'Z') or
# ActiveDirectory (yyyyMMddHHmmss'.0Z')
ldap.dateFormat=yyyyMMddHHmmss'Z'
ldap.dateFormat.values=yyyyMMddHHmmss'Z',yyyyMMddHHmmss'.0Z'
# The LDAP Provider from the Oracle's JDKs (standard and JRockit) allows the use of multiple LDAP servers.
# Write the URLs of all the servers with a space as separator and a trailing slash.
ldap.ldapUrl=ldap://ldap.openolat.org:389
ldap.ldapUrl.values=ldap://ldap1.openolat.org:389/ ldap://ldap2.openolat.org:389/ ldap://ldap3.openolat.org:389/
# Connection timeout in milliseconds
ldap.connectionTimeout=15000
# System user: used for getting all users and connection testing
ldap.ldapSystemDN=CN=Frentix,OU=Benutzer,DC=openolat,DC=org
ldap.ldapSystemPW=ldap4olat
# List of bases where to find users. To use multiple bases you must edit the config file manually
ldap.ldapBases=OU=Students,DC=openolat,DC=org
# SSL configuration for LDAP
ldap.sslEnabled=false
ldap.trustStoreLocation=/usr/lib/j2sdk1.5-sun/jre/lib/security/cacerts
ldap.trustStorePwd=changeit
ldap.trustStoreType=JKS
# Create LDAP users on the fly when authenticated successfully
ldap.ldapCreateUsersOnLogin=true
# When users log in via LDAP, the system can keep a copy of the password as encrypted
# hash in the database. This makes OLAT more independent from an offline LDAP server
# and users can use their LDAP password to use the WebDAV functionality.
# If you have a mixed environment where some users have webDAV passwords and some have
# only local OLAT user accounts, you have to set this flag to 'true.
# When setting to true (recommended), make sure you configured password.change.allowed=false
# unless you also set ldap.propagatePasswordChangedOnLdapServer=true
ldap.cacheLDAPPwdAsOLATPwdOnLogin=true
# Change the password on the LDAP server too
ldap.propagatePasswordChangedOnLdapServer=false
# Reset the password lock timeout on the active directory in case it is
# an active directory and also remove user from failed login list
ldap.resetLockTimoutOnPasswordChange=true
# Define an external url where the users can change their password
ldap.changePasswordUrl=
# When the system detects an LDAP user that does already exist in OLAT but is not marked
# as LDAP user, the OLAT user can be converted to an LDAP managed user.
# When enabling this feature you should make sure that you don't have a user 'administrator'
# in your ldapBases (not a problem but not recommended)
ldap.convertExistingLocalUsersToLDAPUsers=false
# Users that have been created vial LDAP sync but now can't be found on the LDAP anymore
# can be deleted automatically. If unsure, set to false and delete those users manually
# in the user management.
ldap.deleteRemovedLDAPUsersOnSync=false
# Sanity check when deleteRemovedLDAPUsersOnSync is set to 'true': if more than the defined
# percentages of user accounts are not found on the LDAP server and thus recognized as to be
# deleted, the LDAP sync will not happen and require a manual triggering of the delete job
# from the admin interface. This should prevent accidential deletion of OLAT user because of
# temporary LDAP problems or user relocation on the LDAP side.
# Value= 0 (never delete) to 100 (always delete).
ldap.deleteRemovedLDAPUsersPercentage=50
# Should users be created and synchronized automatically on OLAT startup? Set this option to
# 'true' to create and sync all LDAP users in a batch manner on each OLAT startup.If you set
# this configuration to 'false', the users will be generated on-the-fly when they log in
# For the cron syntax see http://quartz.sourceforge.net/javadoc/org/quartz/CronTrigger.html
ldap.ldapSyncOnStartup=true
# Independent of ldap.ldapSyncOnStartup, users can be created / synced in a batch manner
# peridically. Set ldap.ldapSyncCronSync=true if you want such a behaviour and set an
# appropriate cron expression to define the interval. The default cron expression will
# sync the LDAP database with the OLAT database each hour.
ldap.ldapSyncCronSync=${ldap.ldapSyncOnStartup}
ldap.ldapSyncCronSyncExpression=0 0 * * * ?
# Configuration for syncing user attributes during login or cron and batch sync (examples are
# for an active directory)
ldap.ldapUserObjectClass=person
# Filter that uses the user object class. Can be exteded to include group memberships as well. Default is a standard object class filter.
ldap.ldapUserFilter=(objectClass=${ldap.ldapUserObjectClass})
# Example for more complex filter:
# ldap.ldapUserFilter=(&(objectClass=${ldap.ldapUserObjectClass})(memberOf=CN=OpenOLATAccess,OU=Students,DC=openolat,DC=org))
# Attribute to resolve the DN of the suer during login (value is the internal attribute)
ldap.ldapUserCreatedTimestampAttribute=whenCreated
ldap.ldapUserLastModifiedTimestampAttribute=whenChanged
# OpenLDAP is userPassword, ActiveDirectory is unicodePwd
ldap.ldapUserPassordAttribute=userPassword
# Define mapping of user attributes. Only the mandatory attributes are defined here, see the
# config file for advanced user attributes mapping
ldap.attributename.useridentifyer=sAMAccountName
ldap.attributename.email=mail
ldap.attributename.firstName=givenName
ldap.attributename.lastName=sn
# Attribute used as username to log in. Note: the configured login attribute MUST be one of the mapped attributes below, e.g. genericTextProperty1
# If the login attribute should not be visible in OO, then disable the OO user property in all contexts.
ldap.login.attribute=${ldap.attributename.useridentifyer}
#mappings from ldap-attrib to olat-userproperty
ldap.attrib.gen.map.ldapkey1=
ldap.attrib.gen.map.olatkey1=
ldap.attrib.gen.map.ldapkey2=
ldap.attrib.gen.map.olatkey2=
ldap.attrib.gen.map.ldapkey3=
ldap.attrib.gen.map.olatkey3=
ldap.attrib.gen.map.ldapkey4=
ldap.attrib.gen.map.olatkey4=
ldap.attrib.gen.map.ldapkey5=
ldap.attrib.gen.map.olatkey5=
ldap.attrib.gen.map.ldapkey6=
ldap.attrib.gen.map.olatkey6=
ldap.attrib.gen.map.ldapkey7=
ldap.attrib.gen.map.olatkey7=
ldap.attrib.gen.map.ldapkey8=
ldap.attrib.gen.map.olatkey8=
ldap.attrib.gen.map.ldapkey9=
ldap.attrib.gen.map.olatkey9=
ldap.attrib.gen.map.ldapkey10=
ldap.attrib.gen.map.olatkey10=
ldap.attrib.gen.map.ldapkey11=
ldap.attrib.gen.map.olatkey11=
ldap.attrib.gen.map.ldapkey12=
ldap.attrib.gen.map.olatkey12=
ldap.attrib.gen.map.ldapkey13=
ldap.attrib.gen.map.olatkey13=
ldap.attrib.gen.map.ldapkey14=
ldap.attrib.gen.map.olatkey14=
ldap.attrib.gen.map.ldapkey15=
ldap.attrib.gen.map.olatkey15=
ldap.attrib.gen.map.ldapkey16=
ldap.attrib.gen.map.olatkey16=
ldap.attrib.gen.map.ldapkey17=
ldap.attrib.gen.map.olatkey17=
ldap.attrib.gen.map.ldapkey18=
ldap.attrib.gen.map.olatkey18=
ldap.attrib.gen.map.ldapkey19=
ldap.attrib.gen.map.olatkey19=
ldap.attrib.gen.map.ldapkey20=
ldap.attrib.gen.map.olatkey20=
#static mappings, olat-userproperties will be filled with given value
ldap.attrib.static.olatkey1=
ldap.attrib.static.value1=
ldap.attrib.static.olatkey2=
ldap.attrib.static.value2=
ldap.attrib.static.olatkey3=
ldap.attrib.static.value3=
#properties only to be synced on first sync
ldap.attrib.sync.once.olatkey1=
ldap.attrib.sync.once.olatkey2=
ldap.attrib.sync.once.olatkey3=
# sync group from a LDAP groups
ldap.ldapGroupBases=
ldap.ldapGroupBases.values=ou=groups,dc=openproject,dc=org
# the object class of groups
ldap.ldapGroupObjectClass=groupOfNames
ldap.ldapGroupFilter=(objectClass=${ldap.ldapGroupObjectClass})
# the marker attribute for coaches
ldap.coachRoleAttribute=employeeType
ldap.coachRoleValue=coach
# sync group from a list of separated ids saved in an attribute of
# the DLAP user
ldap.user.groupAttribute=
ldap.user.groupAttribute.values=o
ldap.user.groupAttributeSeparator=,
ldap.user.coachedGroupAttribute=
ldap.user.coachedGroupAttribute.values=o
ldap.user.coachedGroupAttributeSeparator=,
# sync authors
ldap.authorsGroupBases=
ldap.authorRoleAttribute=
ldap.authorRoleValue=
# sync user managers
ldap.userManagersGroupBases=
ldap.userManagerRoleAttribute=
ldap.userManagerRoleValue=
# sync group managers
ldap.groupManagersGroupBases=
ldap.groupManagerRoleAttribute=
ldap.groupManagerRoleValue=
# sync question pool managers
ldap.qpoolManagersGroupBases=
ldap.qpoolManagerRoleAttribute=
ldap.qpoolManagerRoleValue=
# sync curriculum managers
ldap.curriculumManagersGroupBases=
ldap.curriculumManagerRoleAttribute=
ldap.curriculumManagerRoleValue=
# sync learning resource managers
ldap.learningResourceManagersGroupBase=
ldap.learningResourceManagerRoleAttribute=
ldap.learningResourceManagerRoleValue=
#####
# Build properties
#####
application.name=OpenOlat
build.version=15.1.1
build.identifier=openolat1511-dev
build.repo.revision=local-devel
#####
# OpenOlat user activity logging: anonymous logging will skipp all tracking loggings and only log actions
# of type admin and statistic
#####
log.anonymous=false
########################################
# Simple message service
########################################
message.enabled=false
message.provider=Dummy
message.provider.values=Dummy,WebSMS
#Features using the sms
message.reset.password.enabled=true
message.ask.by.first.login=true
#WebSMS configuration
websms.username=
websms.password=
########################################
# Access control
########################################
#module on/off
resource.accesscontrol.enabled=true
#The user has a menu item in home to see the list of access
resource.accesscontrol.home.overview=true
#access methods available
method.token.enabled=true
method.free.enabled=true
method.paypal.enabled=false
method.paypal.checkout.enabled=false
method.auto.enabled=false
# Properties to configure the Shibboleth implementation of the auto access method
# attributes to use for search (comma separated)
method.auto.shib.identifiers.values=internalId,externalId,externalRef
method.auto.shib.identifiers=
# Name of the Shibboleth attributes with the keys
method.auto.shib.shib=
# Splitter to split the parsed value in keys
method.auto.shib.splitter.values=Semicolon
method.auto.shib.splitter=
# External reference may have many values separated by this delimiter.
# If the value is not defined, no splitting is executed.
method.auto.externalRef.delimiter=
# If multi booking is disabled (false), a auto booking is done once and never again.
# If multi booking is enabled (true), a auto booking is done multiple times per identifier
# value and user. If two courses have the same id, the user is booked to both.
method.auto.multi.booking=false
# If enabled (true), the status of all existing advance orders is reset to pending (on startup).
# That is, all advance orders are ready again to create a new booking.
method.auto.reset.to.pending=false
########################################
# Paypal Checkout
########################################
paypal.checkout.v2.client.id=
paypal.checkout.v2.client.secret=
# set to true only for development purposes
paypal.checkout.v2.sandbox=false
########################################
# Paypal Legacy (don't use it)
# (need a business account)
########################################
# API USERNAME, Replace RHS with your API user name you obtained from sandbox/live server.
paypal.security.user.id=
# API PASSWORD, Replace RHS with your API password you obtained from sandbox/live server.
paypal.security.password=
# API SIGNATURE ,If you are using the 3 token credential then you should uncomment the following
# line and specify/change the signature on the RHS of the = sign. The module only implements the
# 3 token credential.
paypal.security.signature=
# APPLICATION ID, Replace RHS with your application id
paypal.application.id=
# Replace the RHS with the email address you used to signup at http://developer.paypal.com
paypal.sandbox.email=
# Email of the first receiver/merchant
paypal.first.receiver.email=
# Use the sandbox server
paypal.sandbox=false
paypal.sandbox.values=true,false
# Only change this if you really know what you do
paypal.data.format=XML
paypal.data.format.values=XML,JSON,SOAP11
########################################
# Course specific settings
########################################
#whether to display current course participant count in the course toolbox
course.display.participants.count=true
#whether to display infobox on assessable coursenodes
course.display.infobox=true
#whether to display changelog on assessable coursenodes
course.display.changelog=true
########################################
# Course building blocks, every course building block can be disabled by adding a property here and reference it in
# appropriate spring config file (by default are course bb are enabled)
########################################
course.node.linklist.enabled=true
course.node.checklist.enabled=false
course.node.checklist.deprecated=false
course.node.dateenrollment.enabled=false
# The LTI course element
course.node.basiclti.enabled=true
# Force the use of a launch page (or not)
course.node.basiclti.force.launchpage=false
course.node.portfolio.enabled=true
course.node.infomessage.enabled=true
course.node.members.enabled=true
#deduplicate the list in the members list.
course.node.members.deduplicate.list=true
course.node.vc.enabled=false
course.node.cp.enabled=true
course.node.scorm.enabled=true
course.node.podcast.enabled=true
course.node.blog.enabled=true
# The project broker
course.node.projectbroker.enabled=true
# The test QTI
course.node.test.enabled=true
# The self test QTI
course.node.selfttest.enabled=true
# The survey QTI
course.node.survey.enabled=true
# The form survey
course.node.form.survey.enabled=true
# The modern check list
course.node.modern.checklist.enabled=true
# The file dialog course element
course.node.dialog.enabled=true
# The course enrollment
course.node.en.enabled=true
# the contact / mail course element
course.node.co.enabled=true
########################################
# Options for content editor
########################################
ceditor.image.styles=o_image_classic,o_image_border,o_image_shadow,o_image_frame,o_image_polaroid,o_image_round
ceditor.image.title.styles=o_image_title_dark,o_image_title_bright,o_image_title_standard
ceditor.table.styles=b_gray,b_blue,b_green,b_yellow,b_red
########################################
# Options for evaluation
########################################
# Possible file size limitations (in MB) in the file upload element of an evaluation form
forms.file.upload.limit.mb=5,10,20,50
# Set the limit of session to show in the report (e.g. the print view)
forms.report.max.sessions=100
########################################
# Curriculum
########################################
curriculum.enabled=true
curriculum.enabled.values=true,false
site.curriculum.enabled=true
########################################
# Organisation
########################################
organisation.enabled=true
organisation.enabled.values=true,false
########################################
# Lectures / absences
########################################
lecture.enabled=false
lecture.enabled.values=true,false
# Default values for the lectures controlled assessment mode
lecture.assessment.mode.enabled=false
lecture.assessment.mode.lead.time=10
lecture.assessment.mode.followup.time=10
lecture.assessment.mode.admissible.ips=
lecture.assessment.mode.seb.keys=
########################################
# User to user relations
########################################
relation.role.enabled=enabled
relation.role.enabled.values=enabled,disabled
########################################
# Quality management
########################################
quality.enabled=false
# Custom email address and name for emails sent by the quality module.
# If empty, the values of $fromemail and $fromname are used.
quality.from.email=
quality.from.name=
########################################
# Options for Virtual Classrooms
########################################
#Adobe connect
vc.adobe.enabled=false
vc.adobe.protocol=http
vc.adobe.port=80
vc.adobe.baseurl=localhost
# The account used is defined by the following admin. account
vc.adobe.adminlogin=
vc.adobe.adminpassword=
#The type of user accounts
vc.adobe.providerid=connect9
vc.adobe.providerid.values=connect9,dfn
vc.adobe.guestAccessAllowed=true
#Vitero
vc.vitero.enabled=false
vc.vitero.protocol=http
vc.vitero.port=8080
vc.vitero.baseurl=localhost
vc.vitero.contextPath=vitero
vc.vitero.adminlogin=admin
vc.vitero.adminpassword=007
vc.vitero.customerid=1
vc.vitero.olatTimeZoneId=Africa/Ceuta
vc.vitero.olatTimeZoneId.values=c.f. listing of Vitero
vc.vitero.deleteVmsUserOnUserDelete=true
#Open meetings
vc.openmeetings.enabled=false
vc.openmeetings.protocol=http
vc.openmeetings.port=5080
vc.openmeetings.baseurl=localhost
vc.openmeetings.contextPath=openmeetings
vc.openmeetings.adminlogin=admin
vc.openmeetings.adminpassword=0007
vc.openmeetings.customerid=1
vc.openmeetings.supportemail=${supportemail}
#GoTo Meetings
vc.gotomeetings.enabled=false
vc.gotomeetings.consumerKey=
#BigBlueButton
vc.bigbluebutton.enabled=false
vc.bigbluebutton.protocol=https
vc.bigbluebutton.port=443
vc.bigbluebutton.baseurl=
vc.bigbluebutton.context=
vc.bigbluebutton.groups=true
vc.bigbluebutton.courses=true
vc.bigbluebutton.cleanupMeetings=false
vc.bigbluebutton.daysToKeep=
vc.bigbluebutton.secret=
vc.bigbluebutton.shared.secret=
# HTTP connection generic settings in milliseconds
vc.http.connect.timeout=30000
vc.http.connect.request.timeout=30000
vc.http.connect.socket.timeout=30000
########################################
# Options for card2brain
########################################
card2brain.enabled=false
card2brain.enterpriseLoginEnabled=false
card2brain.privateLoginEnabled=false
card2brain.baseUrl=https://card2brain.ch/grails/SSO/lti.dispatch?alias=%s
card2brain.peekViewUrl=https://card2brain.ch/box/%s/embed
card2brain.verifyLtiUrl=https://card2brain.ch/grails/SSO/verifyLti.dispatch
########################################
# Options for Edubase and Edubook
########################################
edubase.enabled=false
edubase.readerUrl=https://app.edubase.ch/
edubase.readerUrl.unique=true
edubase.ltiLaunchUrl=https://reader.edubase.ch/lookup/srv/d4/lti/basicLaunch/
edubase.infoverUrl=https://reader.edubase.ch/lookup/srv/d4/information/infodocvers/%s
edubase.coverUrl=https://reader.edubase.ch/lookup/srv/d4/information/coververdesktop/%s
########################################
# Options for edu-sharing
# You have to configure public keys in the admin section in the GUI of OpenOlat.
########################################
edusharing.enabled=false
edusharing.couse.node.enabled=false
edusharing.url=https://edusharing.example.org/edu-sharing/
edusharing.app.id=
# IP address of the OpenOlat instance
edusharing.host=
edusharing.ticket.valid.seconds=10
# User attribute to pass as userid to edu-sharing
edusharing.user.identifier.key=email
edusharing.user.identifier.key.values=username,email
# Names of user attributes are configurable in edu-sharing. Use the same names here.
edusharing.auth.key.userid=userid
edusharing.auth.key.lastname=lastname
edusharing.auth.key.firstname=firstname
edusharing.auth.key.email=email
edusharing.auth.affiliation.id=${instance.id}
edusharing.auth.affiliation.name=${instance.id}
########################################
# Options for Collabora Office
########################################
collabora.enabled=false
collabora.baseUrl=https://collabora.example.org/
collabora.data.transfer.confirmation.enabled=false
collabora.usage.restricted.authors=false
collabora.usage.restricted.coaches=false
collabora.usage.restricted.managers=false
########################################
# Options for OnlyOffice
########################################
onlyoffice.enabled=false
onlyoffice.baseUrl=https://onlyoffice.example.org/
onlyoffice.api.path=web-apps/apps/api/documents/api.js
# Number of usable edit license.
# You may leave the field blank to supress the licnese check.
onlyoffice.license.edit=
onlyoffice.data.transfer.confirmation.enabled=false
onlyoffice.usage.restricted.authors=false
onlyoffice.usage.restricted.coaches=false
onlyoffice.usage.restricted.managers=false
########################################
# Options for Office 365
########################################
office365.enabled=false
office365.baseUrl=https://office365.example.org/
office365.data.transfer.confirmation.enabled=false
office365.usage.restricted.authors=false
office365.usage.restricted.coaches=false
office365.usage.restricted.managers=false
########################################
# Options for monitoring
########################################
monitoring.enabled=true
monitoring.instance.description=OpenOlat instance
monitored.probes=Runtime,System,Database,Memory,OpenOLAT,Release,Environment,Indexer
monitoring.dependency.server=myserver
########################################
# Options for document pool
########################################
# Enable the document pool based on taxonomies
site.docpool.enable=false
# Define the document pool name as it appears when mounted via WebDAV. Best is to use only plain
# vanilla ASCII characters
docpool.webdav.mountpoint=doc-pool
docpool.webdav.mountpoint.values=doclibrary,hfm,topics...
########################################
# Options for library
########################################
sites.enable.library=false
site.library.enabled=${sites.enable.library}
library.repository.entry.key=
library.notify.afterupload=
library.notify.afterfreeing=
########################################
# Options for video resource
########################################
# Video resource, course node and site
video.enabled=true
video.coursenode.enabled=true
video.site.enable=false
video.marker.styles=o_video_marker_gray,o_video_marker_blue,o_video_marker_green,o_video_marker_yellow,o_video_marker_red
# Enable transcoding if you want to create optimized version of your video for delivery.
video.transcoding.enabled=false
# The transcoding process can run locally in s separate process using HandBrake. In that
# case, the binary "HandBrakeCLI" must be installed in your system and available to the
# java environment of your system. Only HandBrakeCLI in version > 1 is supported.
# Alternatively, you can disable local transcoding and implement a shell script that runs
# on another server which reads from the o_vid_transcoding table to separate transcoding
# from the main server. For larger installations it is recommendet to run the transcoding
# on a dedicated server
video.transcoding.local=true
# Use tasklist to limit CPU usage if you set video.transcoding.local=true
video.transcoding.taskset.cpuconfig=0,1
video.transcoding.taskset.cpuconfig.values=0,1 to indicate usage of 2 cores, set empty value to disable taskset (e.g. on osx not available)
# List of transcoding versions to be generated by the transcoder
video.transcoding.resolutions=1080,720,480
video.transcoding.resolutions.values=2160,1080,720,480
# The preferred resolution if multiple video versions are available and the user has no
# customized setting. Should be a values from video.transcoding.resolutions
video.transcoding.resolution.preferred=720
# Which profile should be used while transcoding. "Fast" delivers better quality, but taks
# roughly twice the time for transcoding. "Fast" has about one third larger file size. In
# short: "Fast" for better quality at the cost or resources, "Very Fast" for smaller files
# at the cost of quality.
video.transcoding.profile=Very Fast
video.transcoding.profile.values=Fast,Very Fast
# Where to store transcoded versions. This can be located on another path in case the
# transcoding service is working on another physical server or you just want it to use
# another (cheap) disk. By default it is also located in the olatdata dir.
# The master video files are kept in the olatdata directory, this is only about the
# transcoded versions.
# If you set video.transcoding.local=false and use an external script for transcoding, this
# other script must have access to this video.transcoding.dir as well to store the transcoded
# videos. Make sure the access permissions are implemented in a way so that the OpenOlat process
# can always delete the files from this video.transcoding.dir directory (when deleting the
# master video)
video.transcoding.dir=${folder.root}/transcodedVideos
video.transcoding.dir.values=${folder.root}/transcodedVideos, /mount/cheap/disk/transcodedVideos
###############################################################################
# Youtube API
###############################################################################
# allow to retrieve metadata for youtube video
youtube.api.key=
###############################################################################
# Options for the live stream course node
###############################################################################
live.stream.enabled=false
# Enable multiple streams pre event. Actually two streams are supported.
live.stream.multi.stream.enabled=false
# Char / String to separate multiple urls of a single event
live.stream.url.separator=,
# Buffer time to switch from the announcement page to the live stream (in minutes)
# and vice versa.
live.stream.buffer.before.min=5
live.stream.buffer.after.min=5
live.stream.edit.coach=false
# Profile to control witch stream is visible for the watchers.
live.stream.player.profile=both
live.stream.player.profile.values=both,stream1,stream2
###############################################################################
# Options for the VFS large files admin GUI
###############################################################################
vfs.largefiles.upperborder=157286400
vfs.largefiles.lowerborder=26214400
###############################################################################
# Options for the imprint
###############################################################################
impressum.enabled=${topnav.impressum}
impressum.position=footer
impressum.contact.enabled=true
impressum.contact.mail=${supportemail}