| rev | line source | 
| bsw@730 | 1 -- ======================================================================== | 
| bsw@813 | 2 -- MANDATORY (MUST BE CAREFULLY CHECKED AND PROPERLY SET!) | 
| bsw@730 | 3 -- ======================================================================== | 
| bsw@525 | 4 | 
| bsw@813 | 5 -- Name of this instance, defaults to name of config file | 
| bsw@813 | 6 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 7 config.instance_name = "Example Organisation" | 
| bsw@813 | 8 | 
| bsw@813 | 9 | 
| bsw@813 | 10 -- Connection information for the LiquidFeedback database | 
| bsw@813 | 11 -- ------------------------------------------------------------------------ | 
| bsw@813 | 12 config.database = { engine='postgresql', dbname='liquid_feedback' } | 
| bsw@813 | 13 | 
| bsw@813 | 14 | 
| bsw@1656 | 15 -- Absolute base url of application | 
| bsw@1656 | 16 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 17 config.absolute_base_url = "https://example.org/" | 
| bsw@1656 | 18 | 
| bsw@1656 | 19 | 
| bsw@1656 | 20 -- Network interface to bind to | 
| bsw@1656 | 21 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 22 -- Available options: | 
| bsw@1656 | 23 -- true: bind to localhost (default) | 
| bsw@1656 | 24 -- false: bind to all interface | 
| bsw@735 | 25 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 26 -- config.localhost = true | 
| bsw@1656 | 27 | 
| bsw@1656 | 28 | 
| bsw@1656 | 29 -- Network port to bind to, default port 8080 | 
| bsw@1656 | 30 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 31 -- config.port = 8080 | 
| bsw@1656 | 32 | 
| bsw@1656 | 33 | 
| bsw@1656 | 34 -- Serving content via IPV6 | 
| bsw@1656 | 35 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 36 -- Available options: | 
| bsw@1656 | 37 -- nil or false: do not serve via IPv6 (default) | 
| bsw@1656 | 38 -- true: serve via IPv6 | 
| bsw@1656 | 39 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 40 -- config.ipv6 = false | 
| bsw@79 | 41 | 
| bsw/jbe@6 | 42 | 
| bsw@813 | 43 -- Public access level | 
| bsw@734 | 44 -- ------------------------------------------------------------------------ | 
| bsw@813 | 45 -- Available options: | 
| bsw@813 | 46 -- "none" | 
| bsw@813 | 47 --     -> Closed user group, no public access at all | 
| bsw@813 | 48 --        (except login/registration/password reset) | 
| bsw@813 | 49 -- "anonymous" | 
| bsw@813 | 50 --     -> Shows only initiative/suggestions texts and aggregated | 
| bsw@813 | 51 --        supporter/voter counts | 
| bsw@813 | 52 -- "authors_pseudonymous" | 
| bsw@813 | 53 --     -> Like anonymous, but shows screen names of authors | 
| bsw@813 | 54 -- "all_pseudonymous" | 
| bsw@813 | 55 --     -> Show everything a member can see, except profile pages | 
| bsw@813 | 56 -- "everything" | 
| bsw@813 | 57 --     -> Show everything a member can see, including profile pages | 
| bsw@813 | 58 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 59 config.public_access = "none" | 
| bsw@1656 | 60 | 
| bsw@1656 | 61 | 
| bsw@1656 | 62 -- Information about service provider (HTML) | 
| bsw@1656 | 63 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 64 config.app_service_provider = "Snake Oil<br/>10000 Berlin<br/>Germany" | 
| bsw@734 | 65 | 
| bsw@737 | 66 | 
| bsw@732 | 67 | 
| bsw@737 | 68 -- ======================================================================== | 
| bsw@737 | 69 -- OPTIONAL | 
| bsw@737 | 70 -- Remove leading -- to use a option | 
| bsw@737 | 71 -- ======================================================================== | 
| bsw@731 | 72 | 
| bsw@729 | 73 -- List of enabled languages, defaults to available languages | 
| bsw@730 | 74 -- ------------------------------------------------------------------------ | 
| bsw@1129 | 75 -- config.enabled_languages = { 'en', 'de', 'eo', 'el', 'hu', 'it', 'ka', 'nl', 'zh-Hans', 'zh-TW' } | 
| bsw@2 | 76 | 
| bsw@1170 | 77 | 
| bsw@729 | 78 -- Default language, defaults to "en" | 
| bsw@730 | 79 -- ------------------------------------------------------------------------ | 
| bsw@729 | 80 -- config.default_lang = "en" | 
| poelzi@163 | 81 | 
| bsw@1170 | 82 | 
| bsw@1656 | 83 -- Disable registration | 
| bsw@1656 | 84 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 85 -- Available options: | 
| bsw@1656 | 86 -- false: registration is enabled (default) | 
| bsw@1656 | 87 -- true: registration is disabled | 
| bsw@1656 | 88 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 89 -- config.disable_registration = true | 
| bsw@1656 | 90 | 
| bsw@1656 | 91 | 
| bsw@1656 | 92 -- A HTML formatted text the user has to accept while registering | 
| bsw@1656 | 93 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 94 -- config.use_terms = "<h1>Terms of Use</h1><p>Insert terms here</p>" | 
| bsw@1656 | 95 | 
| bsw@1656 | 96 | 
| bsw@1656 | 97 -- Checkbox(es) the user has to accept while registering | 
| bsw@1656 | 98 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 99 -- config.use_terms_checkboxes = { | 
| bsw@1656 | 100 --   { | 
| bsw@1656 | 101 --     name = "terms_of_use_v1", | 
| bsw@1656 | 102 --     html = "I accept the terms of use.", | 
| bsw@1656 | 103 --     not_accepted_error = "You have to accept the terms of use to be able to register." | 
| bsw@1656 | 104 --   }, | 
| bsw@1656 | 105 --   { | 
| bsw@1656 | 106 --     name = "extra_terms_of_use_v1", | 
| bsw@1656 | 107 --     html = "I accept the extra terms of use.", | 
| bsw@1656 | 108 --     not_accepted_error = "You have to accept the extra terms of use to be able to register." | 
| bsw@1656 | 109 --   } | 
| bsw@1656 | 110 -- } | 
| bsw@1656 | 111 | 
| bsw@734 | 112 -- after how long is a user considered inactive and the trustee will see warning, | 
| bsw@734 | 113 -- notation is according to postgresql intervals, default: no warning at all | 
| bsw@730 | 114 -- ------------------------------------------------------------------------ | 
| bsw@729 | 115 -- config.delegation_warning_time = '6 months' | 
| bsw/jbe@6 | 116 | 
| bsw@1170 | 117 | 
| bsw@988 | 118 -- after which time a user is advised (_soft) or forced (_hard) to check | 
| bsw@988 | 119 -- unit and area delegations. default: no check at all | 
| bsw@988 | 120 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 121 -- config.check_delegations_interval_soft = "3 months" | 
| bsw@988 | 122 -- config.check_delegations_interval_hard = "6 months" | 
| bsw@988 | 123 | 
| bsw@1170 | 124 | 
| bsw@988 | 125 -- default option when checking delegations | 
| bsw@988 | 126 -- available options: "confirm", "revoke" and "none", default: "confirm" | 
| bsw@988 | 127 -- ------------------------------------------------------------------------ | 
| bsw@988 | 128 -- config.check_delegations_default = "confirm" | 
| bsw@988 | 129 | 
| bsw@1170 | 130 | 
| bsw@734 | 131 -- Prefix of all automatic mails, defaults to "[Liquid Feedback] " | 
| bsw@730 | 132 -- ------------------------------------------------------------------------ | 
| bsw@729 | 133 -- config.mail_subject_prefix = "[LiquidFeedback] " | 
| bsw@734 | 134 | 
| bsw@1170 | 135 | 
| bsw@734 | 136 -- Sender of all automatic mails, defaults to system defaults | 
| bsw@734 | 137 -- ------------------------------------------------------------------------ | 
| bsw@839 | 138 -- config.mail_envelope_from = "liquidfeedback@example.com" | 
| bsw@839 | 139 -- config.mail_from = { name = "LiquidFeedback", address = "liquidfeedback@example.com" } | 
| bsw@839 | 140 -- config.mail_reply_to = { name = "Support", address = "support@example.com" } | 
| bsw/jbe@6 | 141 | 
| bsw@1170 | 142 | 
| bsw@1250 | 143 -- Template for digest emails | 
| bsw@1250 | 144 -- #{name} will be replaced by member screen name | 
| bsw@1250 | 145 -- #{digest} will be replaced with the digest content | 
| bsw@1250 | 146 -- ------------------------------------------------------------------------ | 
| bsw@1250 | 147 -- config.notification_digest_template = [[ | 
| bsw@1250 | 148 -- Hello #{name}, | 
| bsw@1250 | 149 -- | 
| bsw@1250 | 150 -- this is your personal digest. | 
| bsw@1250 | 151 -- | 
| bsw@1250 | 152 -- #{digest} | 
| bsw@1250 | 153 -- ]] | 
| bsw@1250 | 154 | 
| bsw@1250 | 155 | 
| bsw@905 | 156 -- Configuration of password hashing algorithm (defaults to "crypt_sha512") | 
| bsw@905 | 157 -- ------------------------------------------------------------------------ | 
| bsw@905 | 158 -- config.password_hash_algorithm = "crypt_sha512" | 
| bsw@1206 | 159 -- config.password_hash_algorithm = "crypt_sha256" | 
| bsw@905 | 160 -- config.password_hash_algorithm = "crypt_md5" | 
| bsw@905 | 161 | 
| bsw@1170 | 162 | 
| bsw@905 | 163 -- Number of rounds for crypt_sha* algorithms, minimum and maximum | 
| bsw@905 | 164 -- (defaults to minimum 10000 and maximum 20000) | 
| bsw@905 | 165 -- ------------------------------------------------------------------------ | 
| bsw@905 | 166 -- config.password_hash_min_rounds = 10000 | 
| bsw@905 | 167 -- config.password_hash_max_rounds = 20000 | 
| bsw@905 | 168 | 
| bsw@905 | 169 | 
| bsw@729 | 170 -- Local directory for database dumps offered for download | 
| bsw@730 | 171 -- ------------------------------------------------------------------------ | 
| bsw@729 | 172 -- config.download_dir = nil | 
| bsw@51 | 173 | 
| bsw@1170 | 174 | 
| bsw@729 | 175 -- Special use terms for database dump download | 
| bsw@730 | 176 -- ------------------------------------------------------------------------ | 
| bsw@729 | 177 -- config.download_use_terms = "=== Download use terms ===\n" | 
| bsw/jbe@52 | 178 | 
| bsw@1170 | 179 | 
| bsw@734 | 180 -- Use custom image conversion, defaults to ImageMagick's convert | 
| bsw@730 | 181 -- ------------------------------------------------------------------------ | 
| bsw@729 | 182 --config.member_image_content_type = "image/jpeg" | 
| bsw@729 | 183 --config.member_image_convert_func = { | 
| bsw@729 | 184 --  avatar = function(data) return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail",   "48x48", "jpeg:-") end, | 
| bsw@729 | 185 --  photo =  function(data) return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail", "240x240", "jpeg:-") end | 
| bsw@729 | 186 --} | 
| bsw@51 | 187 | 
| bsw@1656 | 188 -- Initiative attachments | 
| bsw@1656 | 189 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 190 -- config.attachments = {} | 
| bsw@1656 | 191 | 
| bsw@1656 | 192 -- Conversion function for recoding attachments | 
| bsw@1656 | 193 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 194 -- config.attachments.convert_func = function(data) | 
| bsw@1656 | 195 --   return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail", "240x240", "jpeg:-") | 
| bsw@1656 | 196 -- end | 
| bsw@1656 | 197 | 
| bsw@1656 | 198 -- Custom UI colors, defaults to green/blue | 
| bsw@1656 | 199 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 200 -- config.style = { | 
| bsw@1656 | 201 --   color_md = { | 
| bsw@1656 | 202 --     primary = "green", | 
| bsw@1656 | 203 --     primary_contrast = "dark", | 
| bsw@1656 | 204 --     accent = "blue", | 
| bsw@1656 | 205 --     accent_contrast = "dark" | 
| bsw@1656 | 206 --   } | 
| bsw@1656 | 207 -- } | 
| bsw@1656 | 208 | 
| bsw@1656 | 209 -- Member profile fields, defaults to no extra fields | 
| bsw@1656 | 210 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 211 -- config.member_profile_fields = {} | 
| bsw@1656 | 212 | 
| bsw@1656 | 213 | 
| bsw@1170 | 214 | 
| bsw@1045 | 215 -- Display a html formatted public message of the day | 
| bsw@837 | 216 -- ------------------------------------------------------------------------ | 
| bsw@1045 | 217 -- config.motd_public = "<h1>Message of the day (public)</h1><p>The MOTD is formatted with HTML</p>" | 
| bsw@1045 | 218 | 
| bsw@1170 | 219 | 
| bsw@1045 | 220 -- Display a html formatted internal message of the day | 
| bsw@1045 | 221 -- ------------------------------------------------------------------------ | 
| bsw@1045 | 222 -- config.motd_intern = "<h1>Message of the day (intern)</h1><p>The MOTD is formatted with HTML</p>" | 
| bsw@837 | 223 | 
| bsw@1170 | 224 | 
| bsw@1170 | 225 | 
| bsw@961 | 226 -- Free timings | 
| bsw@961 | 227 -- ------------------------------------------------------------------------ | 
| bsw@961 | 228 -- This example expects a date string entered in the free timing field | 
| bsw@961 | 229 -- by the user creating a poll, interpreting it as target date for then | 
| bsw@961 | 230 -- poll and splits the remaining time at the ratio of 4:1:2 | 
| bsw@961 | 231 -- Please note, polling policies never have an admission phase | 
| bsw@961 | 232 -- The available_func is optional, if not set any target date is allowed | 
| bsw@961 | 233 | 
| bsw@1222 | 234 --[[ | 
| bsw@961 | 235 config.free_timing = { | 
| bsw@961 | 236   calculate_func = function(policy, timing_string) | 
| bsw@1166 | 237     local function interval_by_seconds(secs) | 
| bsw@961 | 238       local secs_per_day = 60 * 60 * 24 | 
| bsw@961 | 239       local days | 
| bsw@961 | 240       days = math.floor(secs / secs_per_day) | 
| bsw@961 | 241       secs = secs - days * secs_per_day | 
| bsw@961 | 242       return days .. " days " .. secs .. " seconds" | 
| bsw@961 | 243     end | 
| bsw@961 | 244     local target_date = parse.date(timing_string, atom.date) | 
| bsw@961 | 245     if not target_date then | 
| bsw@961 | 246       return false | 
| bsw@961 | 247     end | 
| bsw@961 | 248     local target_timestamp = target_date.midday | 
| bsw@961 | 249     local now = atom.timestamp:get_current() | 
| bsw@961 | 250     trace.debug(target_timestamp, now) | 
| bsw@961 | 251     local duration = target_timestamp - now | 
| bsw@961 | 252     if duration < 0 then | 
| bsw@961 | 253       return false | 
| bsw@961 | 254     end | 
| bsw@961 | 255     return { | 
| bsw@961 | 256       discussion = interval_by_seconds(duration / 7 * 4), | 
| bsw@961 | 257       verification = interval_by_seconds(duration / 7 * 1), | 
| bsw@961 | 258       voting = interval_by_seconds(duration / 7 * 2) | 
| bsw@961 | 259     } | 
| bsw@961 | 260   end, | 
| bsw@961 | 261   available_func = function(policy) | 
| bsw@961 | 262     return { | 
| bsw@961 | 263       { name = "End of 2013", id = '2013-12-31' }, | 
| bsw@961 | 264       { name = "End of 2014", id = '2014-12-31' }, | 
| bsw@961 | 265       { name = "End of 2015", id = '2015-12-31' } | 
| bsw@961 | 266     } | 
| bsw@961 | 267   end | 
| bsw@961 | 268 } | 
| bsw@1222 | 269 --]] | 
| bsw@1170 | 270 | 
| bsw@1219 | 271 | 
| bsw@1209 | 272 -- External references | 
| bsw@1209 | 273 -- ------------------------------------------------------------------------ | 
| bsw@1209 | 274 -- Rendering of external references | 
| bsw@1209 | 275 | 
| bsw@1209 | 276 --[[ | 
| bsw@1209 | 277 config.render_external_reference = { | 
| bsw@1209 | 278   draft = function(draft, wrapper) | 
| bsw@1209 | 279     wrapper(function() | 
| bsw@1209 | 280       ui.tag{ content = draft.external_reference) | 
| bsw@1209 | 281     end) | 
| bsw@1209 | 282   end, | 
| bsw@1209 | 283   initiative = function(initiative, wrapper) | 
| bsw@1209 | 284     wrapper(function() | 
| bsw@1209 | 285       ui.tag{ content = initiative.external_reference) | 
| bsw@1209 | 286     end) | 
| bsw@1209 | 287   end | 
| bsw@1209 | 288 end | 
| bsw@1209 | 289 --]] | 
| bsw@1209 | 290 | 
| bsw@1656 | 291 | 
| bsw@1656 | 292 -- Configuration of OAuth2 service, defaults to OAuth2 disabled | 
| bsw@1656 | 293 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 294 -- config.oauth2 = {} | 
| bsw@1656 | 295 | 
| bsw@1656 | 296 -- Additional scopes | 
| bsw@1656 | 297 -- config.oauth2.available_scopes = { | 
| bsw@1656 | 298 --   { scope = "privA", name = { de = "Beispielprivileg A", en = "Example privilege A" } }, | 
| bsw@1656 | 299 --   { scope = "privB", name = { de = "Beispielprivileg B", en = "Example privilege B" } } | 
| bsw@1656 | 300 -- } | 
| bsw@1656 | 301 | 
| bsw@1656 | 302 -- OAuth2 endpoint magic string for dynamic app registration | 
| bsw@1656 | 303 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 304 -- config.oauth2.endpoint_magic = "liquidfeedback_client_redirection_endpoint" | 
| bsw@1656 | 305 | 
| bsw@1656 | 306 -- OAuth2 Token lifetime and timings | 
| bsw@1656 | 307 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 308 -- config.oauth2.authorization_code_lifetime = 5 * 60 | 
| bsw@1656 | 309 -- config.oauth2.refresh_token_lifetime = 60 * 60 * 24 * 30 * 3 | 
| bsw@1656 | 310 -- config.oauth2.refresh_pause = 60 | 
| bsw@1656 | 311 -- config.oauth2.refresh_grace_period = 60 | 
| bsw@1656 | 312 -- config.oauth2.access_token_lifetime = 60 * 60 | 
| bsw@1656 | 313 | 
| bsw@1656 | 314 | 
| bsw@1656 | 315 | 
| bsw@1106 | 316 -- Admin logger | 
| bsw@1106 | 317 -- ------------------------------------------------------------------------ | 
| bsw@1106 | 318 -- Logging administrative activities | 
| bsw@1106 | 319 -- disabled by default | 
| bsw@1106 | 320 | 
| bsw@1656 | 321 -- config.admin_logger = function(params) | 
| bsw@1656 | 322 --   local adminid = app.session.member_id | 
| bsw@1656 | 323 --   local adminname = app.session.member.name | 
| bsw@1656 | 324 --   local url = params._webmcp_path | 
| bsw@1656 | 325 --   -- do something (e.g. calling 'logger' via extos.pfilter) | 
| bsw@1656 | 326 -- end | 
| bsw@1106 | 327 | 
| bsw@1106 | 328 | 
| bsw@1170 | 329 | 
| bsw@1170 | 330 | 
| bsw@1170 | 331 -- Application server fork configuration | 
| bsw@1170 | 332 -- ------------------------------------------------------------------------ | 
| bsw@1170 | 333 -- config.fork = { | 
| bsw@1170 | 334 --   pre = 2,            -- desired number of spare (idle) processes | 
| bsw@1170 | 335 --   min = 4,            -- minimum number of processes | 
| bsw@1170 | 336 --   max = 128,          -- maximum number of processes (hard limit) | 
| bsw@1170 | 337 --   delay = 0.125,      -- delay (seconds) between creation of spare processes | 
| bsw@1170 | 338 --   error_delay = 2,    -- delay (seconds) before retry of failed process creation | 
| bsw@1170 | 339 --   exit_delay = 2,     -- delay (seconds) between destruction of excessive spare processes | 
| bsw@1170 | 340 --   idle_timeout = 900, -- idle time (seconds) after a fork gets terminated (0 for no timeout) | 
| bsw@1170 | 341 --   memory_limit = 0,   -- maximum memory consumption (bytes) before process gets terminated | 
| bsw@1170 | 342 --   min_requests = 50,  -- minimum count of requests handled before fork is terminated | 
| bsw@1170 | 343 --   max_requests = 100  -- maximum count of requests handled before fork is terminated | 
| bsw@1170 | 344 -- } | 
| bsw@1170 | 345 | 
| bsw@1170 | 346 | 
| bsw@1170 | 347 -- HTTP server options | 
| bsw@1170 | 348 -- ------------------------------------------------------------------------ | 
| bsw@1170 | 349 -- http_options = { | 
| bsw@1170 | 350 --   static_headers            = {}            -- string or table of static headers to be returned with every request | 
| bsw@1170 | 351 --   request_header_size_limit = 1024*1024,    -- maximum size of request body sent by client | 
| bsw@1170 | 352 --   request_body_size_limit   = 64*1024*1024, -- maximum size of request body sent by client | 
| jbe@1198 | 353 --   idle_timeout              = 65,           -- maximum time until receiving the first byte of the request headera | 
| jbe@1198 | 354 --   stall_timeout             = 60,           -- maximum time a client connection may be stalled | 
| jbe@1198 | 355 --   request_header_timeout    = 120,          -- maximum time until receiving the remaining bytes of the request header | 
| jbe@1198 | 356 --   response_timeout          = 3600,         -- time in which request body and response must be sent | 
| bsw@1170 | 357 --   maximum_input_chunk_size  = 16384         -- tweaks behavior of request-body parser | 
| bsw@1170 | 358 --   minimum_output_chunk_size = 1024          -- chunk size for chunked-transfer-encoding | 
| bsw@1170 | 359 -- } | 
| bsw@1170 | 360 | 
| bsw@1170 | 361 | 
| bsw@729 | 362 -- WebMCP accelerator | 
| jbe@1223 | 363 -- ------------------------------------------------------------------------ | 
| jbe@1223 | 364 -- uncomment the following line to use C implementations of chosen | 
| jbe@1223 | 365 -- functions: | 
| bsw@730 | 366 -- ------------------------------------------------------------------------ | 
| bsw@729 | 367 -- require 'webmcp_accelerator' | 
| jbe@1223 | 368 | 
| bsw/jbe@0 | 369 | 
| bsw@868 | 370 -- Trace debug | 
| bsw@1222 | 371 -- ------------------------------------------------------------------------ | 
| bsw@868 | 372 -- uncomment the following line to enable debug trace | 
| jbe@1223 | 373 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 374 -- config.enable_debug_trace = true | 
| bsw@1656 | 375 | 
| bsw@1656 | 376 | 
| bsw@1656 | 377 -- Configuration of lf4rcs, disabled by default | 
| bsw@1656 | 378 -- for example configration see _lf4rcs.lua | 
| bsw@1656 | 379 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 380 -- execute.config("_lf4rcs") | 
| bsw@1656 | 381 | 
| bsw@1656 | 382 | 
| bsw@1656 | 383 -- Configuration of ldap authentication, disabled by default | 
| bsw@1656 | 384 -- for example configration, see _ldap.lua | 
| bsw@1656 | 385 -- for active directory example, see _ldap_ad.lua | 
| bsw@1656 | 386 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 387 -- execute.config("_ldap") | 
| bsw@1656 | 388 -- execute.config("_ldap_ad") | 
| bsw/jbe@1309 | 389 | 
| bsw/jbe@1309 | 390 | 
| bsw@1656 | 391 -- Integration of Etherpad, disabled by default | 
| bsw@1656 | 392 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 393 --config.etherpad = { | 
| bsw@1656 | 394 --  base_url = "http://example.com:9001/", | 
| bsw@1656 | 395 --  api_base = "http://localhost:9001/", | 
| bsw@1656 | 396 --  api_key = "mysecretapikey", | 
| bsw@1656 | 397 --  group_id = "mygroupname", | 
| bsw@1656 | 398 --  cookie_path = "/" | 
| bsw@1656 | 399 --} | 
| bsw/jbe@0 | 400 | 
| bsw@1656 | 401 -- Integration of FirstLife | 
| bsw@1656 | 402 -- ------------------------------------------------------------------------ | 
| bsw@1656 | 403 --[[ | 
| bsw@1656 | 404 config.firstlife = { | 
| bsw@1656 | 405   coordinates = "", | 
| bsw@1656 | 406   areaviewer_url = "about:blank", | 
| bsw@1656 | 407   inputmap_url = "about:blank" | 
| bsw/jbe@1309 | 408 } | 
| bsw@1656 | 409 config.allow_new_draft_callback = true | 
| bsw@1656 | 410 --]] | 
| bsw/jbe@1309 | 411 | 
| bsw@1656 | 412 |