+++ /dev/null
-{ env, etherpad-lite, etherpad-lite-modules, writeText, pkgs }:
-let
- listenPort = env.listenPort;
- sessionkey = writeText "SESSIONKEY.txt" env.session_key;
- apikey = writeText "APIKEY.txt" env.api_key;
- keys = [
- {
- dest = "webapps/tools-etherpad-apikey";
- permissions = "0400";
- text = env.api_key;
- }
- {
- dest = "webapps/tools-etherpad-sessionkey";
- permissions = "0400";
- text = env.session_key;
- }
- {
- dest = "webapps/tools-etherpad";
- permissions = "0400";
- text =
- # Make sure we’re not rebuilding whole libreoffice just because of a
- # dependency
- let libreoffice = (import <nixpkgs> { overlays = []; }).libreoffice-fresh;
- in
- ''
- {
- "title": "Etherpad",
- "favicon": "favicon.ico",
-
- "ip": "127.0.0.1",
- "port" : ${env.listenPort},
- "showSettingsInAdminPage" : false,
- "dbType" : "postgres",
- "dbSettings" : {
- "user" : "${env.postgresql.user}",
- "host" : "${env.postgresql.socket}",
- "password": "${env.postgresql.password}",
- "database": "${env.postgresql.database}",
- "charset" : "utf8mb4"
- },
-
- "defaultPadText" : "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at http:\/\/etherpad.org\n",
- "padOptions": {
- "noColors": false,
- "showControls": true,
- "showChat": true,
- "showLineNumbers": true,
- "useMonospaceFont": false,
- "userName": false,
- "userColor": false,
- "rtl": false,
- "alwaysShowChat": false,
- "chatAndUsers": false,
- "lang": "en-gb"
- },
-
- "suppressErrorsInPadText" : false,
- "requireSession" : false,
- "editOnly" : false,
- "sessionNoPassword" : false,
- "minify" : true,
- "maxAge" : 21600,
- "abiword" : null,
- "soffice" : "${libreoffice}/bin/soffice",
- "tidyHtml" : "${pkgs.html-tidy}/bin/tidy",
- "allowUnknownFileEnds" : true,
- "requireAuthentication" : false,
- "requireAuthorization" : false,
- "trustProxy" : false,
- "disableIPlogging" : false,
- "automaticReconnectionTimeout" : 0,
- "scrollWhenFocusLineIsOutOfViewport": {
- "percentage": {
- "editionAboveViewport": 0,
- "editionBelowViewport": 0
- },
- "duration": 0,
- "scrollWhenCaretIsInTheLastLineOfViewport": false,
- "percentageToScrollWhenUserPressesArrowUp": 0
- },
- "users": {
- "ldapauth": {
- "url": "ldaps://${env.ldap.host}",
- "accountBase": "${env.ldap.base}",
- "accountPattern": "(&(memberOf=cn=users,cn=etherpad,ou=services,dc=immae,dc=eu)(uid={{username}}))",
- "displayNameAttribute": "cn",
- "searchDN": "cn=etherpad,ou=services,dc=immae,dc=eu",
- "searchPWD": "${env.ldap.password}",
- "groupSearchBase": "${env.ldap.base}",
- "groupAttribute": "member",
- "groupAttributeIsDN": true,
- "searchScope": "sub",
- "groupSearch": "(memberOf=cn=groups,cn=etherpad,ou=services,dc=immae,dc=eu)",
- "anonymousReadonly": false
- }
- },
- "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
- "loadTest": false,
- "indentationOnNewLine": false,
- "toolbar": {
- "left": [
- ["bold", "italic", "underline", "strikethrough"],
- ["orderedlist", "unorderedlist", "indent", "outdent"],
- ["undo", "redo"],
- ["clearauthorship"]
- ],
- "right": [
- ["importexport", "timeslider", "savedrevision"],
- ["settings", "embed"],
- ["showusers"]
- ],
- "timeslider": [
- ["timeslider_export", "timeslider_returnToPad"]
- ]
- },
- "loglevel": "INFO",
- "logconfig" : { "appenders": [ { "type": "console" } ] }
- }
- '';
- }
- ];
- webappDir = etherpad-lite.withModules (builtins.attrValues etherpad-lite-modules);
-in
- {
- inherit webappDir keys listenPort;
- }