--- /dev/null
+- name: create nodejs user
+ user:
+ name: nodejs
+ system: yes
+ group: nogroup
+ home: /var/lib/nodejs
+ shell: /bin/false
+- name: create etherpad dir
+ file: path=/srv/{{etherpad.domain}} state=directory owner=nodejs group=www-data
+- name: check out etherpad sources
+ become_user: nodejs
+ register: etherpad_src
+ git:
+ dest: /srv/{{etherpad.domain}}/etherpad-lite
+ repo: 'https://github.com/ether/etherpad-lite.git'
+ version: '1.6.6'
+ force: yes
+- name: create etherpad service file
+ register: etherpad_service
+ template:
+ dest: /etc/systemd/system/etherpad-lite.service
+ src: templates/etherpad-lite.service
+- name: configure etherpad
+ register: etherpad_settings
+ template:
+ dest: /srv/{{etherpad.domain}}/etherpad-lite/settings.json
+ src: templates/settings.json
+ mode: u=rw,g=,o=
+ owner: nodejs
+ group: nogroup
+- name: (re)start and enable etherpad service
+ when: etherpad_src.changed or etherpad_service.changed or etherpad_settings.changed
+ systemd: name=etherpad-lite state=restarted daemon_reload=yes enabled=yes
--- /dev/null
+/*
+ This file must be valid JSON. But comments are allowed
+
+ Please edit settings.json, not settings.json.template
+*/
+{
+ //IP and port which etherpad should bind at
+ "ip": "127.0.0.1",
+ "port" : 9001,
+
+ //The Type of the database. You can choose between dirty, postgres, sqlite and mysql
+ //You shouldn't use "dirty" for for anything else than testing or development
+ "dbType" : "mysql",
+ "dbSettings" : {
+ "user" : "etherpad",
+ "host" : "localhost",
+ "password": "{{etherpad.mysql_password}}",
+ "database": "etherpad"
+ },
+
+ //the default text of a pad
+ "defaultPadText" : "{{etherpad.default_text}}",
+
+ /* Users must have a session to access pads. This effectively allows only group pads to be accessed. */
+ "requireSession" : false,
+
+ /* Users may edit pads but not create new ones. Pad creation is only via the API. This applies both to group pads and regular pads. */
+ "editOnly" : false,
+
+ /* if true, all css & js will be minified before sending to the client. This will improve the loading performance massivly,
+ but makes it impossible to debug the javascript/css */
+ "minify" : true,
+
+ /* How long may clients use served javascript code (in seconds)? Without versioning this
+ may cause problems during deployment. Set to 0 to disable caching */
+ "maxAge" : 21600, // 60 * 60 * 6 = 6 hours
+
+ /* This is the absolute path to the Abiword executable. Setting it to null, disables abiword.
+ Abiword is needed to advanced import/export features of pads*/
+ "abiword" : null,
+
+ /* This setting is used if you require authentication of all users.
+ Note: /admin always requires authentication. */
+ "requireAuthentication" : false,
+
+ /* Require authorization by a module, or a user with is_admin set, see below. */
+ "requireAuthorization" : false,
+
+ /* Users for basic authentication. is_admin = true gives access to /admin.
+ If you do not uncomment this, /admin will not be available! */
+
+ "users": {
+ "admin": {
+ "password": "{{etherpad.admin_password}}",
+ "is_admin": true
+ }
+ },
+
+ // restrict socket.io transport methods
+ "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
+
+ /* The log level we are using, can be: DEBUG, INFO, WARN, ERROR */
+ "loglevel": "WARN"
+}