Initial commit
This commit is contained in:
commit
c4d7ccef3b
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.swp
|
215
README.install
Normal file
215
README.install
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
# -----
|
||||||
|
# Install Etherpad Lite
|
||||||
|
# -----
|
||||||
|
|
||||||
|
# Add repository for node.js 10.x
|
||||||
|
#
|
||||||
|
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
|
||||||
|
|
||||||
|
# Install nodejs
|
||||||
|
#
|
||||||
|
apt install -y nodejs
|
||||||
|
|
||||||
|
# Create user/group etherpad
|
||||||
|
#
|
||||||
|
_etherpad_user="etherpad"
|
||||||
|
adduser --system --home=/var/www/etherpad/ --group $_etherpad_user
|
||||||
|
|
||||||
|
# Become user etherpad
|
||||||
|
#
|
||||||
|
# Note: its a system account, so you have to provide a shell
|
||||||
|
#
|
||||||
|
su - etherpad -s /bin/bash
|
||||||
|
|
||||||
|
# Get/Install etherpad-lite
|
||||||
|
#
|
||||||
|
git clone --branch master https://github.com/ether/etherpad-lite.git
|
||||||
|
|
||||||
|
# Exit from user etherpad
|
||||||
|
#
|
||||||
|
exit
|
||||||
|
|
||||||
|
# Create systemd service file
|
||||||
|
#
|
||||||
|
cat <<EOF > /etc/systemd/system/etherpad.service
|
||||||
|
[Unit]
|
||||||
|
Description=Etherpad-lite, the collaborative editor.
|
||||||
|
After=syslog.target network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=etherpad
|
||||||
|
Group=etherpad
|
||||||
|
WorkingDirectory=/var/www/etherpad/etherpad-lite
|
||||||
|
Environment=NODE_ENV=production
|
||||||
|
ExecStart=/usr/bin/nodejs /var/www/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
|
||||||
|
Restart=always # use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
# Start etherpad-lie at boot time
|
||||||
|
#
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable etherpad.service
|
||||||
|
systemctl start etherpad.service
|
||||||
|
|
||||||
|
|
||||||
|
# NGINX as Proxy etherpad
|
||||||
|
#
|
||||||
|
FQHN="ep-6fwstq-ohv1zato8p.faire-mobilitaet.de"
|
||||||
|
HOSTNAME="${FQHN%%.*}"
|
||||||
|
|
||||||
|
cat <<EOF > /etc/nginx/sites-available/${FQHN}.conf
|
||||||
|
# -- ${FQHN}
|
||||||
|
|
||||||
|
|
||||||
|
upstream etherpad-lite {
|
||||||
|
server 127.0.0.1:9001;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name ${FQHN};
|
||||||
|
rewrite ^(.*) https://\$server_name\$1 permanent;
|
||||||
|
}
|
||||||
|
|
||||||
|
# we're in the http context here
|
||||||
|
map \$http_upgrade \$connection_upgrade {
|
||||||
|
default upgrade;
|
||||||
|
'' close;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
|
||||||
|
listen 443 ssl http2;
|
||||||
|
listen [::]:443 ssl http2;
|
||||||
|
|
||||||
|
server_name ${FQHN};
|
||||||
|
|
||||||
|
# - Needed for (automated) updating certificate
|
||||||
|
# -
|
||||||
|
include snippets/letsencrypt-acme-challenge.conf;
|
||||||
|
|
||||||
|
|
||||||
|
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
|
||||||
|
#
|
||||||
|
# To generate a dhparam.pem file, run in a terminal
|
||||||
|
# openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
|
||||||
|
#
|
||||||
|
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
|
||||||
|
|
||||||
|
|
||||||
|
# Eable session resumption to improve https performance
|
||||||
|
ssl_session_cache shared:SSL:50m;
|
||||||
|
ssl_session_timeout 10m;
|
||||||
|
ssl_session_tickets off;
|
||||||
|
|
||||||
|
|
||||||
|
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE
|
||||||
|
# omit SSLv3 because of POODLE
|
||||||
|
# omit TLSv1 TLSv1.1
|
||||||
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
|
|
||||||
|
# ECDHE better than DHE (faster) ECDHE & DHE GCM better than CBC (attacks on AES)
|
||||||
|
# Everything better than SHA1 (deprecated)
|
||||||
|
#
|
||||||
|
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA';
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
|
ssl_certificate /var/lib/dehydrated/certs/${FQHN}/fullchain.pem;
|
||||||
|
ssl_certificate_key /var/lib/dehydrated/certs/${FQHN}/privkey.pem;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
#proxy_pass http://localhost:9001/;
|
||||||
|
proxy_pass http://etherpad-lite;
|
||||||
|
proxy_set_header Host \$host;
|
||||||
|
proxy_pass_header Server;
|
||||||
|
# be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_set_header X-Real-IP \$remote_addr; # http://wiki.nginx.org/HttpProxyModule
|
||||||
|
proxy_set_header X-Forwarded-For \$remote_addr; # EP logs to show the actual remote IP
|
||||||
|
proxy_set_header X-Forwarded-Proto \$scheme; # for EP to set secure cookie flag when https is used
|
||||||
|
proxy_set_header Host \$host; # pass the host header
|
||||||
|
proxy_http_version 1.1; # recommended with keepalive connections
|
||||||
|
# WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
|
||||||
|
proxy_set_header Upgrade \$http_upgrade;
|
||||||
|
proxy_set_header Connection \$connection_upgrade;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
access_log /var/log/nginx/${HOSTNAME}.access.log;
|
||||||
|
error_log /var/log/nginx/${HOSTNAME}.error.log;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Enable new etherpad site
|
||||||
|
#
|
||||||
|
ln -s ../sites-available/${FQHN}.conf /etc/nginx/sites-enabled/
|
||||||
|
|
||||||
|
# Restart NGINX servive
|
||||||
|
#
|
||||||
|
systemctl restart nginx
|
||||||
|
|
||||||
|
|
||||||
|
# -----
|
||||||
|
# Configure etherpad
|
||||||
|
# ----
|
||||||
|
|
||||||
|
# Install abiword
|
||||||
|
#
|
||||||
|
# Abiword is needed to get advanced import/export features of pads. Setting
|
||||||
|
# it to null disables Abiword and will only allow plain text and HTML
|
||||||
|
# import/exports.
|
||||||
|
#
|
||||||
|
apt-get install abiword
|
||||||
|
|
||||||
|
cp -a /var/www/etherpad/etherpad-lite/settings.json /var/www/etherpad/etherpad-lite/settings.json.ORIG
|
||||||
|
|
||||||
|
# Edit settings file 'vim /var/www/etherpad/etherpad-lite/settings.json'
|
||||||
|
#
|
||||||
|
# 1.) enable abiword
|
||||||
|
# change
|
||||||
|
# "abiword": null,
|
||||||
|
# to
|
||||||
|
# "abiword": /usr/bin/abiword,
|
||||||
|
#
|
||||||
|
# 2.) Uncomment section '"users": {' and set password to make admin settings page
|
||||||
|
# available - https://${FQHN}/admin
|
||||||
|
#
|
||||||
|
# 3.) To suppress these warning messages change 'suppressErrorsInPadText' to true
|
||||||
|
#
|
||||||
|
vim /var/www/etherpad/etherpad-lite/settings.json
|
||||||
|
|
||||||
|
# Install the foollowing plugins via admin page
|
||||||
|
#
|
||||||
|
# - adminpads2
|
||||||
|
# - delete_after_delay
|
||||||
|
# - delete_empty_pads
|
||||||
|
# - fileupload
|
||||||
|
# - font_color
|
||||||
|
# - font_family
|
||||||
|
# - font_size
|
||||||
|
# - headings2
|
||||||
|
# - pad_title
|
||||||
|
# - printer
|
||||||
|
# - et_title_on_pad
|
||||||
|
# - subscript_and_superscript
|
||||||
|
|
||||||
|
|
||||||
|
# Plugin delete_after_delay
|
||||||
|
#
|
||||||
|
# Add foolowing code to settings.json
|
||||||
|
#
|
||||||
|
# "ep_delete_after_delay": {
|
||||||
|
# "delay": 86400, // one day, in seconds
|
||||||
|
# "loop": true,
|
||||||
|
# "loopDelay": 3600, // one hour, in seconds
|
||||||
|
# "deleteAtStart": true,
|
||||||
|
# "text": "The content of this pad has been deleted since it was older than the configured delay."
|
||||||
|
# },
|
||||||
|
#
|
||||||
|
vim /var/www/etherpad/etherpad-lite/settings.json
|
784
old/install_etherpad.txt
Normal file
784
old/install_etherpad.txt
Normal file
@ -0,0 +1,784 @@
|
|||||||
|
|
||||||
|
## =================================================
|
||||||
|
## - Install etherpad-lite
|
||||||
|
|
||||||
|
|
||||||
|
## - il-pad.oopen.de
|
||||||
|
## -
|
||||||
|
#_node_version="0.10.26"
|
||||||
|
_node_version="0.10.32"
|
||||||
|
_source_base_dir="/usr/local/src"
|
||||||
|
|
||||||
|
_etherpad_instance=etherpad-lite
|
||||||
|
_etherpad_dir="/var/www/$_etherpad_instance"
|
||||||
|
|
||||||
|
_etherpad_user="etherpad"
|
||||||
|
_etherpad_group="etherpad"
|
||||||
|
|
||||||
|
#_etherpad_db_name="etherpad"
|
||||||
|
#_etherpad_db_user="etherpad"
|
||||||
|
#_etherpad_db_pass="HtfrxP9sfJqwRKrM"
|
||||||
|
_etherpad_db_name="il_pad"
|
||||||
|
_etherpad_db_user="il_pad"
|
||||||
|
_etherpad_db_pass="RPlJ3cTjTKs93N6H"
|
||||||
|
|
||||||
|
mysql_credential_args="--login-path=local_root"
|
||||||
|
|
||||||
|
_hostname="il-pad.oopen.de"
|
||||||
|
_ipv4="83.223.85.227"
|
||||||
|
_ipv6="2a01:30:1fff:5::227"
|
||||||
|
|
||||||
|
_etherpad_port="9001"
|
||||||
|
_etherpad_host="127.0.0.1"
|
||||||
|
|
||||||
|
_etherpad_admin="admin@oopen.de"
|
||||||
|
## -
|
||||||
|
## - End: il-pad.oopen.de
|
||||||
|
|
||||||
|
|
||||||
|
## - etherpad.oopen.de
|
||||||
|
## -
|
||||||
|
_node_version="0.10.28"
|
||||||
|
_source_base_dir="/usr/local/src"
|
||||||
|
|
||||||
|
_etherpad_instance=etherpad-lite
|
||||||
|
_etherpad_dir="/var/www/$_etherpad_instance"
|
||||||
|
|
||||||
|
_etherpad_user="etherpad"
|
||||||
|
_etherpad_group="etherpad"
|
||||||
|
|
||||||
|
_etherpad_db_name="etherpad"
|
||||||
|
_etherpad_db_user="etherpad"
|
||||||
|
_etherpad_db_pass="px3zPdsKMKzvXc3r"
|
||||||
|
|
||||||
|
mysql_credential_args="--login-path=local"
|
||||||
|
|
||||||
|
_hostname="etherpad.oopen.de"
|
||||||
|
_ipv4="83.223.85.45"
|
||||||
|
_ipv6="2a01:30:1fff:fe00::45"
|
||||||
|
|
||||||
|
_etherpad_port="9001"
|
||||||
|
_etherpad_host="127.0.0.1"
|
||||||
|
|
||||||
|
_etherpad_admin="admin-il-pad@oopen.de"
|
||||||
|
## -
|
||||||
|
## - End: etherpad.oopen.de
|
||||||
|
|
||||||
|
|
||||||
|
## - etherpad-ak.oopen.de
|
||||||
|
## -
|
||||||
|
_node_version="0.10.28"
|
||||||
|
_source_base_dir="/usr/local/src"
|
||||||
|
|
||||||
|
_etherpad_instance=etherpad-ak
|
||||||
|
_etherpad_dir="/var/www/$_etherpad_instance"
|
||||||
|
|
||||||
|
_etherpad_user="etherpad"
|
||||||
|
_etherpad_group="etherpad"
|
||||||
|
|
||||||
|
_etherpad_db_name="etherpad_ak"
|
||||||
|
_etherpad_db_user="etherpad_ak"
|
||||||
|
_etherpad_db_pass="NvLKX3Nt4kfCbjJw"
|
||||||
|
|
||||||
|
mysql_credential_args="--login-path=local"
|
||||||
|
|
||||||
|
_hostname="etherpad-ak.oopen.de"
|
||||||
|
_ipv4="83.223.85.45"
|
||||||
|
_ipv6="2a01:30:1fff:fe00::45"
|
||||||
|
|
||||||
|
_etherpad_port="9003"
|
||||||
|
_etherpad_host="127.0.0.1"
|
||||||
|
|
||||||
|
_etherpad_admin="admin@oopen.de"
|
||||||
|
## -
|
||||||
|
## - End: etherpad.oopen.de
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install prerequisites
|
||||||
|
|
||||||
|
## - node
|
||||||
|
apt-get install libc6-dev libssl-dev make gcc g++
|
||||||
|
apt-get install gzip git-core curl python pkg-config build-essential
|
||||||
|
apt-get install libpq-dev postgresql-client
|
||||||
|
|
||||||
|
# - etherpad-lite
|
||||||
|
apt-get install abiword
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install nginx
|
||||||
|
|
||||||
|
## - Installed from debian ports
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install MySQL
|
||||||
|
|
||||||
|
## - MySQL is installed from source:
|
||||||
|
## -
|
||||||
|
## - installdir = /usr/local/mysql
|
||||||
|
## -
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install node (node.js)
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p ${_source_base_dir}/node
|
||||||
|
cd ${_source_base_dir}/node
|
||||||
|
|
||||||
|
## - Download from project side http://nodejs.org/
|
||||||
|
## -
|
||||||
|
wget http://nodejs.org/dist/v${_node_version}/node-v${_node_version}.tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
## - Install
|
||||||
|
## -
|
||||||
|
gunzip < node-v${_node_version}.tar.gz | tar -xf -
|
||||||
|
cd node-v${_node_version}
|
||||||
|
|
||||||
|
./configure --prefix=/usr/local/node-v${_node_version}
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln -s node-v${_node_version} /usr/local/node
|
||||||
|
|
||||||
|
## - Add bin directory of node to the PATH environment
|
||||||
|
## -
|
||||||
|
## - Edit /etc/profile
|
||||||
|
## -
|
||||||
|
## - Add befor exporting PATH variable:
|
||||||
|
## -
|
||||||
|
## -
|
||||||
|
## - checkdir="/usr/local/node/bin"
|
||||||
|
## - if [ -d $checkdir ]; then
|
||||||
|
## - PATH=$PATH:$checkdir
|
||||||
|
## - fi
|
||||||
|
vim /etc/profile
|
||||||
|
|
||||||
|
|
||||||
|
## - Install manpages
|
||||||
|
## -
|
||||||
|
## - Manpages
|
||||||
|
## -
|
||||||
|
if ! grep /usr/local/node/share/man /etc/manpath.config > /dev/null 2<&1 ; then
|
||||||
|
echo >> /etc/manpath.config
|
||||||
|
echo "MANDATORY_MANPATH /usr/local/node/share/man /var/cache/man" >> /etc/manpath.config
|
||||||
|
echo "MANPATH_MAP /usr/local/node/bin /usr/local/node/share/man" >> /etc/manpath.config
|
||||||
|
echo "MANDB_MAP /usr/local/node/share/man /var/cache/man" >> /etc/manpath.config
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install etherpad-lite
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Create MySQL databse
|
||||||
|
## -
|
||||||
|
## - db_name: $_etherpad_db_name
|
||||||
|
## - db_user: $_etherpad_db_user
|
||||||
|
## - db_pass: $_etherpad_db_pass
|
||||||
|
## -
|
||||||
|
mysql $mysql_credential_args -N -s -e \
|
||||||
|
"CREATE DATABASE IF NOT EXISTS $_etherpad_db_name CHARACTER SET utf8 COLLATE utf8_general_ci"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args -N -s -e \
|
||||||
|
"GRANT ALL PRIVILEGES ON $_etherpad_db_name.* TO '$_etherpad_db_user'@'127.0.0.1' IDENTIFIED BY '$_etherpad_db_pass'"
|
||||||
|
mysql $mysql_credential_args -N -s -e \
|
||||||
|
"GRANT ALL PRIVILEGES ON $_etherpad_db_name.* TO '$_etherpad_db_user'@'localhost' IDENTIFIED BY '$_etherpad_db_pass'"
|
||||||
|
mysql $mysql_credential_args -N -s -e \
|
||||||
|
"GRANT ALL PRIVILEGES ON $_etherpad_db_name.* TO '$_etherpad_db_user'@'$_ipv4' IDENTIFIED BY '$_etherpad_db_pass'"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args -N -s -e \
|
||||||
|
"INSERT INTO `db` VALUES ('$_ipv4','$_etherpad_db_pass','$_etherpad_db_user','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')"
|
||||||
|
mysql $mysql_credential_args -N -s -e \
|
||||||
|
"INSERT INTO `db` VALUES ('127.0.0.1','$_etherpad_db_pass','$_etherpad_db_user','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args -N -s -e "FLUSH PRIVILEGES"
|
||||||
|
|
||||||
|
|
||||||
|
## - Create user $_etherpad_user for etherpad
|
||||||
|
## -
|
||||||
|
adduser --system --home=/var/www/etherpad-lite/ --group $_etherpad_user
|
||||||
|
|
||||||
|
|
||||||
|
## - Get etherpad-lite
|
||||||
|
## -
|
||||||
|
## - Downlouad via
|
||||||
|
## - https://github.com/ether/etherpad-lite
|
||||||
|
## - or clone yoursef via git cone
|
||||||
|
## -
|
||||||
|
cd /var/www
|
||||||
|
git clone git://github.com/ether/etherpad-lite.git $_etherpad_instance
|
||||||
|
|
||||||
|
cd ${_etherpad_dir}
|
||||||
|
|
||||||
|
cp ${_etherpad_dir}/settings.json.template \
|
||||||
|
${_etherpad_dir}/settings.json
|
||||||
|
|
||||||
|
mkdir -p ${_etherpad_dir}/log
|
||||||
|
chown -R $_etherpad_user:$_etherpad_user ${_etherpad_dir}
|
||||||
|
|
||||||
|
|
||||||
|
## - Adjust settings.json
|
||||||
|
## -
|
||||||
|
## - "port" : ${_etherpad_port},
|
||||||
|
## -
|
||||||
|
## - Setup a sessionKey (secure string, at least 10 characters)
|
||||||
|
## - "sessionKey" : "bHT7JCwnFVXcz4Jvqk9qLsd9",
|
||||||
|
## -
|
||||||
|
## - Setup database. comment in type dirty section an uncomment/create
|
||||||
|
## - section for MySQL. Note, if no tcp binding on mysql exists and only
|
||||||
|
## - mysql is only listening on linux socket, use "port" instead of "host"
|
||||||
|
## -
|
||||||
|
## - "dbType" : "mysql",
|
||||||
|
## - "dbSettings" : {
|
||||||
|
## - "user" : "$_etherpad_db_user",
|
||||||
|
## - "host" : "<IP-Address>",
|
||||||
|
## - "password": "$_etherpad_db_pass",
|
||||||
|
## - "database": "$_etherpad_db_name"
|
||||||
|
## - },
|
||||||
|
## - NOTE !!:
|
||||||
|
## - If running on VServer guest System, set host to Vservers IP-Address.
|
||||||
|
## - "127.0.0.1" does not work and "localhost" does not work in conjunction
|
||||||
|
## - wilt some plugins (i.e ep_frontend_community)
|
||||||
|
## -
|
||||||
|
## - At least setup an admin user to access /admin url. Uncomment/create
|
||||||
|
## - section "users"
|
||||||
|
## -
|
||||||
|
## - "users": {
|
||||||
|
## - "admin": {
|
||||||
|
## - "password": "20admin14",
|
||||||
|
## - "is_admin": true
|
||||||
|
## - },
|
||||||
|
## -
|
||||||
|
## - We have installed abiword, so enable Abiword
|
||||||
|
## - for advanced import/export features of pads like PDF,
|
||||||
|
## -
|
||||||
|
## - "abiword" : "/usr/bin/abiword",
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/settings.json
|
||||||
|
|
||||||
|
|
||||||
|
## - Configure the "safeRun.sh"-script to ensure getting
|
||||||
|
## - email email notifications if there are problems with
|
||||||
|
## - the applications.
|
||||||
|
## -
|
||||||
|
## - This script also ensures that ep-lite is automatically
|
||||||
|
## - restarting after an error happens
|
||||||
|
## -
|
||||||
|
## - Set/Replace
|
||||||
|
## -
|
||||||
|
## - ERROR_HANDLING=1
|
||||||
|
## - EMAIL_ADDRESS="argus@oopen.de"
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/bin/safeRun.sh
|
||||||
|
|
||||||
|
|
||||||
|
## - Start at first time and let etherpad make initial configurations
|
||||||
|
## -
|
||||||
|
su -c "PATH=/usr/local/node/bin:$PATH ${_etherpad_dir}/bin/run.sh" -s /bin/bash ${_etherpad_user}
|
||||||
|
|
||||||
|
## - If initial configuration is done, you will see output like
|
||||||
|
## - You can access your Etherpad instance at http://0.0.0.0:9001/
|
||||||
|
## - type <Ctrl>+c to break and afterwords kill left processes
|
||||||
|
## -
|
||||||
|
pkill --signal SIGTERM -u ${_etherpad_user}
|
||||||
|
|
||||||
|
|
||||||
|
## - Create startscript for etherpad-lite in folder /etc/init.d
|
||||||
|
## -
|
||||||
|
cat << EOF > /etc/init.d/${_etherpad_instance}
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: $_etherpad_instance
|
||||||
|
# Required-Start: \$local_fs \$remote_fs \$network \$syslog
|
||||||
|
# Required-Stop: \$local_fs \$remote_fs \$network \$syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: starts etherpad lite
|
||||||
|
# Description: starts etherpad lite using start-stop-daemon
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/node/bin"
|
||||||
|
LOGFILE="${_etherpad_dir}/log/${_etherpad_instance}.log"
|
||||||
|
EPLITE_DIR="${_etherpad_dir}"
|
||||||
|
EPLITE_BIN="bin/safeRun.sh"
|
||||||
|
USER="$_etherpad_user"
|
||||||
|
GROUP="$_etherpad_group"
|
||||||
|
DESC="Etherpad Lite"
|
||||||
|
NAME="$_etherpad_instance"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
start() {
|
||||||
|
|
||||||
|
## - Already running ?
|
||||||
|
# -
|
||||||
|
if [ -f "/var/run/\$NAME.pid" ]; then
|
||||||
|
_pids=\$(cat /var/run/\$NAME.pid | tr '\n' ' ')
|
||||||
|
for _pid in \$_pids ; do
|
||||||
|
if [ -d "/proc/\$_pid" ];then
|
||||||
|
echo "\$DESC is already running. Exiting.."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -f /var/run/\$NAME.pid
|
||||||
|
fi
|
||||||
|
|
||||||
|
_pids=\$(ps --no-headers ax | grep \$EPLITE_DIR/\$EPLITE_BIN | grep -v grep | awk '{print\$1}' | tr '\n' ' ')
|
||||||
|
if [ -n "\$_pids" ]; then
|
||||||
|
echo "Some older \$DESC processes are running. I will stop them first.."
|
||||||
|
for pid in \$_pids ;do
|
||||||
|
killtree \$pid 15
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
echo "done"
|
||||||
|
fi
|
||||||
|
|
||||||
|
## - Start now..
|
||||||
|
echo "Starting \$DESC... "
|
||||||
|
|
||||||
|
start-stop-daemon --start --chuid "\$USER:\$GROUP" --background \\
|
||||||
|
--make-pidfile --pidfile /var/run/\$NAME.pid --exec \\
|
||||||
|
\$EPLITE_DIR/\$EPLITE_BIN -- \$LOGFILE || true
|
||||||
|
echo "done"
|
||||||
|
}
|
||||||
|
|
||||||
|
#We need this function to ensure the whole process tree will be killed
|
||||||
|
killtree() {
|
||||||
|
local _pid=\$1
|
||||||
|
local _sig=\${2-TERM}
|
||||||
|
for _child in \$(ps -o pid --no-headers --ppid \${_pid}); do
|
||||||
|
killtree \${_child} \${_sig}
|
||||||
|
done
|
||||||
|
if ps -o pid --no-headers ax | grep \${_pid} > /dev/null ; then
|
||||||
|
kill -\${_sig} \${_pid}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
echo "Stopping \$DESC... "
|
||||||
|
if [ -f "/var/run/\$NAME.pid" ]; then
|
||||||
|
while test -d /proc/\$(cat /var/run/\$NAME.pid); do
|
||||||
|
killtree \$(cat /var/run/\$NAME.pid) 15
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
rm -f /var/run/\$NAME.pid
|
||||||
|
fi
|
||||||
|
for pid in \$(ps --no-headers ax | grep \$EPLITE_DIR/\$EPLITE_BIN | grep -v grep | awk '{print\$1}' | tr '\n' ' ');do
|
||||||
|
killtree \$pid 15
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
echo "done"
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
status_of_proc -p /var/run/\$NAME.pid "" "$_etherpad_instance" && exit 0 || exit \$?
|
||||||
|
}
|
||||||
|
|
||||||
|
case "\$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: \$NAME {start|stop|restart|status}" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod 755 /etc/init.d/$_etherpad_instance
|
||||||
|
|
||||||
|
|
||||||
|
m# - Make etherpad start at boottime
|
||||||
|
## -
|
||||||
|
update-rc.d ${_etherpad_instance} defaults
|
||||||
|
|
||||||
|
|
||||||
|
## - Note:
|
||||||
|
## - etherpad-lite is logging into file {_etherpad_dir}/log/${_etherpad_instance}.log
|
||||||
|
|
||||||
|
## - UPDATE etherpad-lite
|
||||||
|
## -
|
||||||
|
## - !! Note !!
|
||||||
|
## - We uses a system user for etherpad-lite processes. So you
|
||||||
|
## - cannot login as that user. For Updating etherpad-lite use the
|
||||||
|
## - following command
|
||||||
|
## - su -c "cd ${_etherpad_dir} ; git pull origin" -s /bin/bash ${_etherpad_user}
|
||||||
|
## -
|
||||||
|
su -c "cd ${_etherpad_dir} ; git pull origin" -s /bin/bash ${_etherpad_user}
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Use nginx as proxy
|
||||||
|
## -
|
||||||
|
|
||||||
|
## - Create host config
|
||||||
|
## -
|
||||||
|
## - Notice !!
|
||||||
|
## -
|
||||||
|
## - - Don't forget to place the ssl certificate/key
|
||||||
|
## -
|
||||||
|
## - - include intermediate cert(s) into cert file:
|
||||||
|
## - first: site certificate
|
||||||
|
## - second: intermidiate certificate
|
||||||
|
## -
|
||||||
|
cat << EOF > /etc/nginx/sites-available/${_hostname}.conf
|
||||||
|
server {
|
||||||
|
|
||||||
|
listen $_ipv4:80;
|
||||||
|
listen $_ipv4:443 ssl;
|
||||||
|
listen [$_ipv6]:80 ; ## listen for ipv6
|
||||||
|
listen [$_ipv6]:443 ssl ; ## listen for ipv6
|
||||||
|
|
||||||
|
server_name $_hostname;
|
||||||
|
|
||||||
|
root $_etherpad_dir;
|
||||||
|
|
||||||
|
location = /favicon.ico {
|
||||||
|
return 204;
|
||||||
|
log_not_found off;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location = /robots.txt {
|
||||||
|
log_not_found off;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Deny all attempts to access hidden files such as .htaccess, .htpasswd,
|
||||||
|
# .DS_Store (Mac).
|
||||||
|
location ~ /\. {
|
||||||
|
return 444;
|
||||||
|
access_log off;
|
||||||
|
log_not_found off;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include standard.conf;
|
||||||
|
|
||||||
|
ssl_certificate ssl_keys/oopen.de.chained.crt;
|
||||||
|
ssl_certificate_key ssl_keys/oopen.de.key;
|
||||||
|
|
||||||
|
if (\$scheme = http) {
|
||||||
|
return 301 https://\$server_name\$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
#auth_basic "closed site";
|
||||||
|
#auth_basic_user_file /etc/nginx/.htpasswd_etherpad;
|
||||||
|
|
||||||
|
## - Handle pad URLs here
|
||||||
|
## -
|
||||||
|
location / {
|
||||||
|
proxy_pass http://${_etherpad_instance};
|
||||||
|
proxy_set_header Host \$host;
|
||||||
|
proxy_buffering off;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream $_etherpad_instance {
|
||||||
|
server $_etherpad_host:$_etherpad_port;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
ln -s ../sites-available/${_hostname}.conf /etc/nginx/sites-enabled/
|
||||||
|
|
||||||
|
|
||||||
|
## - robots.txt
|
||||||
|
## -
|
||||||
|
cat << EOF > ${_etherpad_dir}/robots.txt
|
||||||
|
User-agent: *
|
||||||
|
Disallow: /
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chown ${_etherpad_user}:${_etherpad_user} ${_etherpad_dir}/robots.txt
|
||||||
|
|
||||||
|
|
||||||
|
## - Further adjusting settings.json
|
||||||
|
## -
|
||||||
|
## - Bind to 127.0.0.1
|
||||||
|
## - "ip": "127.0.0.1",
|
||||||
|
## -
|
||||||
|
## - We will use NginX as a proxy, so set this to true
|
||||||
|
## - "trustProxy": true,
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/settings.json
|
||||||
|
|
||||||
|
|
||||||
|
## - Start etherpad-lite
|
||||||
|
## -
|
||||||
|
/etc/init.d/$_etherpad_instance start
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin adminpads
|
||||||
|
## - (ep_adminpads)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Plugin Manager
|
||||||
|
## -
|
||||||
|
## - URL...: https://${_hostname}/admin
|
||||||
|
# -
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install community frontend
|
||||||
|
## - (Plugin ep_frontend_community)
|
||||||
|
|
||||||
|
|
||||||
|
## - Note:
|
||||||
|
## -
|
||||||
|
## - host-part of db settings in settings.json must have:
|
||||||
|
## - "host" : "<IP-Address>"
|
||||||
|
## -
|
||||||
|
## - "port" : "<path/to//mysql.sock>" DOES NOT work
|
||||||
|
## -
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Plugin Manager
|
||||||
|
## -
|
||||||
|
## - URL...: https://${_hostname}/admin
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Prerequisites:
|
||||||
|
## -
|
||||||
|
## - Create needed database tables:
|
||||||
|
## -
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"DROP TABLE IF EXISTS GroupPads;
|
||||||
|
CREATE TABLE GroupPads (
|
||||||
|
UserID int(11) DEFAULT '1',
|
||||||
|
GroupID int(11) NOT NULL,
|
||||||
|
PadName varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||||
|
PRIMARY KEY (GroupID,PadName)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"DROP TABLE IF EXISTS Groups;
|
||||||
|
CREATE TABLE Groups (
|
||||||
|
groupID int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
|
PRIMARY KEY (groupID,name)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"DROP TABLE IF EXISTS NotRegisteredUsersGroups;
|
||||||
|
CREATE TABLE NotRegisteredUsersGroups (
|
||||||
|
email varchar(255) NOT NULL,
|
||||||
|
groupID int(11) NOT NULL )
|
||||||
|
ENGINE=InnoDB DEFAULT CHARSET=utf8;"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"DROP TABLE IF EXISTS User;
|
||||||
|
CREATE TABLE User (
|
||||||
|
userID int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
|
pwd varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
considered tinyint(11) DEFAULT NULL,
|
||||||
|
SSO tinyint(4) DEFAULT NULL,
|
||||||
|
FullName varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
considerationString varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
salt varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
active int(1) DEFAULT NULL, isAdmin int(1) NOT NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (userID,name)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"DROP TABLE IF EXISTS UserGroup;
|
||||||
|
CREATE TABLE UserGroup (
|
||||||
|
userID int(11) NOT NULL DEFAULT '0',
|
||||||
|
groupID int(11) NOT NULL DEFAULT '0',
|
||||||
|
Role int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (userID,groupID)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;"
|
||||||
|
|
||||||
|
## - Note:
|
||||||
|
## - Setup the Pad Administrator with full rights. You
|
||||||
|
## - can login, with the following credentials:
|
||||||
|
## -
|
||||||
|
## - username: $_etherpad_admin
|
||||||
|
## - password: admin
|
||||||
|
## -
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"INSERT INTO User VALUES ( 1,'$_etherpad_admin','53e8f649c9bfbccf8f8e2b588d05de8ce26f26228a9cc9340cdc8c5f9b1a0d1e', 1,0,'Pad System Adminstrator','fGREpQX1cwnUqv3fsqHPkjP3WtlG1ZsXFFx6v0mR','EYEcciC6Nk',1,1 );"
|
||||||
|
|
||||||
|
## - Install etherpad plugin frontend_community via admin interface of etherpad
|
||||||
|
## -
|
||||||
|
## - url: https://etherpad.oopen.de/admin/plugins
|
||||||
|
## -
|
||||||
|
|
||||||
|
## - Adjust /var/www/etherpad-lite/node_modules/ep_frontend_community/email.json
|
||||||
|
## -
|
||||||
|
## - "smtp": "false",
|
||||||
|
## - ..
|
||||||
|
## - "invitationfrom": "admin@oopen.de"
|
||||||
|
## - ..
|
||||||
|
## - "registrationfrom": "admin@oopen.de"
|
||||||
|
## - ..
|
||||||
|
## - "resetfrom": "admin@oopen.de",
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/node_modules/ep_frontend_community/email.json
|
||||||
|
|
||||||
|
|
||||||
|
## - Further adjusting settings.json
|
||||||
|
## -
|
||||||
|
## - we want users to authenticate
|
||||||
|
## - "requireAuthorization": true,
|
||||||
|
## -
|
||||||
|
## - don't allow public pads, only group pads are allowed
|
||||||
|
## - "requireSession" : true,
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/settings.json
|
||||||
|
|
||||||
|
|
||||||
|
## - Logo
|
||||||
|
## -
|
||||||
|
## - You can have your own logo for the pad header. The logo image file
|
||||||
|
## - is placed at:
|
||||||
|
## -
|
||||||
|
## - ${_etherpad_dir}/node_modules/ep_frontend_community/static/images/logo.png
|
||||||
|
## -
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin aa_file_menu_toolbar
|
||||||
|
## - (ep_aa_file_menu_toolbar)
|
||||||
|
|
||||||
|
## - Install aa_file_menu_toolbar via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin copy_paste_select_all
|
||||||
|
## - (ep_copy_paste_select_all)
|
||||||
|
|
||||||
|
## - Install copy_paste_select_all via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin headings
|
||||||
|
## - (ep_headings)
|
||||||
|
|
||||||
|
## - Install headings via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin set_title_on_pad
|
||||||
|
## - (ep_set_title_on_pad)
|
||||||
|
|
||||||
|
## - Install set_title_on_pad via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin page_view
|
||||||
|
## - (ep_page_view)
|
||||||
|
|
||||||
|
## - Install page_view via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin page_ruler
|
||||||
|
## - (ep_page_ruler)
|
||||||
|
|
||||||
|
## - Install page_ruler via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin fileupload
|
||||||
|
## - (ep_fileupload)
|
||||||
|
|
||||||
|
## - Install fileupload via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
## xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install plugin imageconvert
|
||||||
|
## - (Plugin ep_imageconvert)
|
||||||
|
|
||||||
|
## - Install Prerequisites:
|
||||||
|
## -
|
||||||
|
apt-get install imagemagick poppler-utils ghostscript sed
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin sketchspace_pdfbackground
|
||||||
|
## - (ep_sketchspace_pdfbackground)
|
||||||
|
|
||||||
|
## - Install sketchspace_pdfbackground via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
## - Install plugin imageconvert via via admin interface of etherpad
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin print
|
||||||
|
## - (ep_print)
|
||||||
|
|
||||||
|
## - Install print via admin interface -> Plugin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
|
|
||||||
|
## - Homepage etherpad
|
||||||
|
## -
|
||||||
|
## - http://etherpad.org/
|
||||||
|
|
||||||
|
## - Wiki etherpad
|
||||||
|
## -
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki
|
||||||
|
|
||||||
|
|
||||||
|
## - Install etherpad:
|
||||||
|
## -
|
||||||
|
## - https://github.com/ether/etherpad-lite/blob/master/README.md
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy
|
||||||
|
|
||||||
|
|
||||||
|
## - How to deploy Etherpad Lite as a service - means startup script at boot time
|
||||||
|
## -
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service
|
||||||
|
## -
|
||||||
|
|
||||||
|
|
||||||
|
## - How to use Etherpad Lite with MySQL:
|
||||||
|
## -
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki/How-to-use-Etherpad-Lite-with-MySQL
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki/How-to-migrate-the-database-from-Etherpad-to-Etherpad-Lite
|
||||||
|
|
||||||
|
|
||||||
|
|
730
old/install_etherpad.txt.00
Normal file
730
old/install_etherpad.txt.00
Normal file
@ -0,0 +1,730 @@
|
|||||||
|
|
||||||
|
## =================================================
|
||||||
|
## - Install etherpad-lite
|
||||||
|
|
||||||
|
|
||||||
|
## - il-pad.oopen.de
|
||||||
|
## -
|
||||||
|
_node_version="0.10.26"
|
||||||
|
_source_base_dir="/usr/local/src"
|
||||||
|
|
||||||
|
_etherpad_dir="/var/www/etherpad-lite"
|
||||||
|
|
||||||
|
_etherpad_user="etherpad"
|
||||||
|
_etherpad_group="etherpad"
|
||||||
|
|
||||||
|
_etherpad_db_name="etherpad"
|
||||||
|
_etherpad_db_user="etherpad"
|
||||||
|
_etherpad_db_pass="HtfrxP9sfJqwRKrM"
|
||||||
|
|
||||||
|
mysql_credential_args="--login-path=local_root"
|
||||||
|
|
||||||
|
_hostname="il-pad.oopen.de"
|
||||||
|
_ipv4="83.223.85.227"
|
||||||
|
_ipv6="2a01:30:1fff:5::227"
|
||||||
|
|
||||||
|
_etherpad_port="9001"
|
||||||
|
_etherpad_host="127.0.0.1"
|
||||||
|
## -
|
||||||
|
## - End: il-pad.oopen.de
|
||||||
|
|
||||||
|
|
||||||
|
## - etherpad.oopen.de
|
||||||
|
## -
|
||||||
|
_node_version="0.10.28"
|
||||||
|
_source_base_dir="/usr/local/src"
|
||||||
|
|
||||||
|
_etherpad_dir="/var/www/etherpad-lite"
|
||||||
|
|
||||||
|
_etherpad_user="etherpad"
|
||||||
|
_etherpad_group="etherpad"
|
||||||
|
|
||||||
|
_etherpad_db_name="etherpad"
|
||||||
|
_etherpad_db_user="etherpad"
|
||||||
|
_etherpad_db_pass="px3zPdsKMKzvXc3r"
|
||||||
|
|
||||||
|
mysql_credential_args="--login-path=local"
|
||||||
|
|
||||||
|
_hostname="etherpad.oopen.de"
|
||||||
|
_ipv4="83.223.85.45"
|
||||||
|
_ipv6="2a01:30:1fff:fe00::45"
|
||||||
|
|
||||||
|
_etherpad_port="9001"
|
||||||
|
_etherpad_host="127.0.0.1"
|
||||||
|
## -
|
||||||
|
## - End: etherpad.oopen.de
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install prerequisites
|
||||||
|
|
||||||
|
## - node
|
||||||
|
apt-get install libc6-dev libssl-dev make gcc g++
|
||||||
|
apt-get install gzip git-core curl python pkg-config build-essential
|
||||||
|
apt-get install libpq-dev postgresql-client
|
||||||
|
|
||||||
|
# - etherpad-lite
|
||||||
|
apt-get install abiword
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install nginx
|
||||||
|
|
||||||
|
## - Installed from debian ports
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install MySQL
|
||||||
|
|
||||||
|
## - MySQL is installed from source:
|
||||||
|
## -
|
||||||
|
## - installdir = /usr/local/mysql
|
||||||
|
## -
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install node (node.js)
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p ${_source_base_dir}/node
|
||||||
|
cd ${_source_base_dir}/node
|
||||||
|
|
||||||
|
## - Download from project side http://nodejs.org/
|
||||||
|
## -
|
||||||
|
wget http://nodejs.org/dist/v${_node_version}/node-v${_node_version}.tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
## - Install
|
||||||
|
## -
|
||||||
|
gunzip < node-v${_node_version}.tar.gz | tar -xf -
|
||||||
|
cd node-v${_node_version}
|
||||||
|
|
||||||
|
./configure --prefix=/usr/local/node-v${_node_version}
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln -s node-v${_node_version} /usr/local/node
|
||||||
|
|
||||||
|
## - Add bin directory of node to the PATH environment
|
||||||
|
## -
|
||||||
|
## - Edit /etc/profile
|
||||||
|
## -
|
||||||
|
## - Add befor exporting PATH variable:
|
||||||
|
## -
|
||||||
|
## -
|
||||||
|
## - checkdir="/usr/local/node/bin"
|
||||||
|
## - if [ -d $checkdir ]; then
|
||||||
|
## - PATH=$PATH:$checkdir
|
||||||
|
## - fi
|
||||||
|
vim /etc/profile
|
||||||
|
|
||||||
|
|
||||||
|
## - Install manpages
|
||||||
|
## -
|
||||||
|
## - Manpages
|
||||||
|
## -
|
||||||
|
if ! grep /usr/local/node/share/man /etc/manpath.config > /dev/null 2<&1 ; then
|
||||||
|
echo >> /etc/manpath.config
|
||||||
|
echo "MANDATORY_MANPATH /usr/local/node/share/man /var/cache/man" >> /etc/manpath.config
|
||||||
|
echo "MANPATH_MAP /usr/local/node/bin /usr/local/node/share/man" >> /etc/manpath.config
|
||||||
|
echo "MANDB_MAP /usr/local/node/share/man /var/cache/man" >> /etc/manpath.config
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install etherpad-lite
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## - Create MySQL databse
|
||||||
|
## -
|
||||||
|
## - db_name: $_etherpad_db_name
|
||||||
|
## - db_user: $_etherpad_db_user
|
||||||
|
## - db_pass: $_etherpad_db_pass
|
||||||
|
## -
|
||||||
|
mysql $mysql_credential_args -N -s -e \
|
||||||
|
"CREATE DATABASE IF NOT EXISTS $_etherpad_db_name CHARACTER SET utf8 COLLATE utf8_general_ci"
|
||||||
|
mysql $mysql_credential_args -N -s -e \
|
||||||
|
"GRANT ALL PRIVILEGES ON $_etherpad_db_name.* TO '$_etherpad_db_user'@'%' IDENTIFIED BY '$_etherpad_db_pass'"
|
||||||
|
mysql $mysql_credential_args -N -s -e "FLUSH PRIVILEGES"
|
||||||
|
|
||||||
|
|
||||||
|
## - Create user $_etherpad_user for etherpad
|
||||||
|
## -
|
||||||
|
adduser --system --home=/var/www/etherpad-lite/ --group $_etherpad_user
|
||||||
|
|
||||||
|
|
||||||
|
## - Get etherpad-lite
|
||||||
|
## -
|
||||||
|
## - Downlouad via
|
||||||
|
## - https://github.com/ether/etherpad-lite
|
||||||
|
## - or clone yoursef via git cone
|
||||||
|
## -
|
||||||
|
cd /var/www
|
||||||
|
git clone git://github.com/ether/etherpad-lite.git
|
||||||
|
|
||||||
|
cd ${_etherpad_dir}
|
||||||
|
|
||||||
|
cp ${_etherpad_dir}/settings.json.template \
|
||||||
|
${_etherpad_dir}/settings.json
|
||||||
|
|
||||||
|
mkdir -p ${_etherpad_dir}/log
|
||||||
|
chown -R $_etherpad_user:$_etherpad_user ${_etherpad_dir}
|
||||||
|
|
||||||
|
|
||||||
|
## - Adjust settings.json
|
||||||
|
## -
|
||||||
|
## - Setup a sessionKey (secure string, at least 10 characters)
|
||||||
|
## - "sessionKey" : "bHT7JCwnFVXcz4Jvqk9qLsd9",
|
||||||
|
## -
|
||||||
|
## - Setup database. comment in type dirty section an uncomment/create
|
||||||
|
## - section for MySQL. Note, if no tcp binding on mysql exists and only
|
||||||
|
## - mysql is only listening on linux socket, use "port" instead of "host"
|
||||||
|
## -
|
||||||
|
## - "dbType" : "mysql",
|
||||||
|
## - "dbSettings" : {
|
||||||
|
## - "user" : "$_etherpad_db_user",
|
||||||
|
## - "port" : "/tmp/mysql.sock",
|
||||||
|
## - //"host" : "localhost",
|
||||||
|
## - "password": "$_etherpad_db_pass",
|
||||||
|
## - "database": "$_etherpad_db_name"
|
||||||
|
## - },
|
||||||
|
## -
|
||||||
|
## - At least setup an admin user to access /admin url. Uncomment/create
|
||||||
|
## - section "users"
|
||||||
|
## -
|
||||||
|
## - "users": {
|
||||||
|
## - "admin": {
|
||||||
|
## - "password": "20admin14",
|
||||||
|
## - "is_admin": true
|
||||||
|
## - },
|
||||||
|
## -
|
||||||
|
## - We have installed abiword, so enable Abiword
|
||||||
|
## - for advanced import/export features of pads like PDF,
|
||||||
|
## -
|
||||||
|
## - "abiword" : "/usr/bin/abiword",
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/settings.json
|
||||||
|
|
||||||
|
|
||||||
|
## - Configure the "safeRun.sh"-script to ensure getting
|
||||||
|
## - email email notifications if there are problems with
|
||||||
|
## - the applications.
|
||||||
|
## -
|
||||||
|
## - This script also ensures that ep-lite is automatically
|
||||||
|
## - restarting after an error happens
|
||||||
|
## -
|
||||||
|
## - Set/Replace
|
||||||
|
## -
|
||||||
|
## - ERROR_HANDLING=1
|
||||||
|
## - EMAIL_ADDRESS="argus@oopen.de"
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/bin/safeRun.sh
|
||||||
|
|
||||||
|
|
||||||
|
## - Start at first time and let etherpad make initial configurations
|
||||||
|
## -
|
||||||
|
su -c "PATH=/usr/local/node/bin:$PATH ${_etherpad_dir}/bin/run.sh" -s /bin/bash ${_etherpad_user}
|
||||||
|
|
||||||
|
## - If initial configuration is done, you will see output like
|
||||||
|
## - You can access your Etherpad instance at http://0.0.0.0:9001/
|
||||||
|
## - type <Ctrl>+c to break and afterwords kill left processes
|
||||||
|
## -
|
||||||
|
pkill --signal SIGTERM -u ${_etherpad_user}
|
||||||
|
|
||||||
|
|
||||||
|
## - Create startscript for etherpad-lite in folder /etc/init.d
|
||||||
|
## -
|
||||||
|
cat << EOF > /etc/init.d/etherpad-lite
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: etherpad-lite
|
||||||
|
# Required-Start: \$local_fs \$remote_fs \$network \$syslog
|
||||||
|
# Required-Stop: \$local_fs \$remote_fs \$network \$syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: starts etherpad lite
|
||||||
|
# Description: starts etherpad lite using start-stop-daemon
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/node/bin"
|
||||||
|
LOGFILE="${_etherpad_dir}/log/etherpad-lite.log"
|
||||||
|
EPLITE_DIR="${_etherpad_dir}"
|
||||||
|
EPLITE_BIN="bin/safeRun.sh"
|
||||||
|
USER="$_etherpad_user"
|
||||||
|
GROUP="$_etherpad_group"
|
||||||
|
DESC="Etherpad Lite"
|
||||||
|
NAME="etherpad-lite"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
start() {
|
||||||
|
|
||||||
|
## - Already running ?
|
||||||
|
# -
|
||||||
|
if [ -f "/var/run/\$NAME.pid" ]; then
|
||||||
|
_pids=\$(cat /var/run/\$NAME.pid | tr '\n' ' ')
|
||||||
|
for _pid in \$_pids ; do
|
||||||
|
if [ -d "/proc/\$_pid" ];then
|
||||||
|
echo "\$DESC is already running. Exiting.."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -f /var/run/\$NAME.pid
|
||||||
|
fi
|
||||||
|
|
||||||
|
_pids=\$(ps --no-headers ax | grep \$EPLITE_DIR/\$EPLITE_BIN | grep -v grep | awk '{print\$1}' | tr '\n' ' ')
|
||||||
|
if [ -n "\$_pids" ]; then
|
||||||
|
echo "Some older \$DESC processes are running. I will stop them first.."
|
||||||
|
for pid in \$_pids ;do
|
||||||
|
killtree \$pid 15
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
echo "done"
|
||||||
|
fi
|
||||||
|
|
||||||
|
## - Start now..
|
||||||
|
echo "Starting \$DESC... "
|
||||||
|
|
||||||
|
start-stop-daemon --start --chuid "\$USER:\$GROUP" --background \\
|
||||||
|
--make-pidfile --pidfile /var/run/\$NAME.pid --exec \\
|
||||||
|
\$EPLITE_DIR/\$EPLITE_BIN -- \$LOGFILE || true
|
||||||
|
echo "done"
|
||||||
|
}
|
||||||
|
|
||||||
|
#We need this function to ensure the whole process tree will be killed
|
||||||
|
killtree() {
|
||||||
|
local _pid=\$1
|
||||||
|
local _sig=\${2-TERM}
|
||||||
|
for _child in \$(ps -o pid --no-headers --ppid \${_pid}); do
|
||||||
|
killtree \${_child} \${_sig}
|
||||||
|
done
|
||||||
|
if ps -o pid --no-headers ax | grep \${_pid} > /dev/null ; then
|
||||||
|
kill -\${_sig} \${_pid}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
echo "Stopping \$DESC... "
|
||||||
|
if [ -f "/var/run/\$NAME.pid" ]; then
|
||||||
|
while test -d /proc/\$(cat /var/run/\$NAME.pid); do
|
||||||
|
killtree \$(cat /var/run/\$NAME.pid) 15
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
rm -f /var/run/\$NAME.pid
|
||||||
|
fi
|
||||||
|
for pid in \$(ps --no-headers ax | grep \$EPLITE_DIR/\$EPLITE_BIN | grep -v grep | awk '{print\$1}' | tr '\n' ' ');do
|
||||||
|
killtree \$pid 15
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
echo "done"
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
status_of_proc -p /var/run/\$NAME.pid "" "etherpad-lite" && exit 0 || exit \$?
|
||||||
|
}
|
||||||
|
|
||||||
|
case "\$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: \$NAME {start|stop|restart|status}" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod 755 /etc/init.d/etherpad-lite
|
||||||
|
|
||||||
|
|
||||||
|
## - Make etherpad start at boottime
|
||||||
|
## -
|
||||||
|
update-rc.d etherpad-lite defaults
|
||||||
|
|
||||||
|
|
||||||
|
## - Note:
|
||||||
|
## - etherpad-lite is logging into file {_etherpad_dir}/log/etherpad-lite.log
|
||||||
|
|
||||||
|
|
||||||
|
## - !! Note !!
|
||||||
|
## - We uses a system user for etherpad-lite processes. So you
|
||||||
|
## - cannot login as that user. For Updating etherpad-lite use the
|
||||||
|
## - following command
|
||||||
|
## - su -c "cd ${_etherpad_dir} ; git pull origin" -s /bin/bash ${_etherpad_user}
|
||||||
|
## -
|
||||||
|
su -c "cd ${_etherpad_dir} ; git pull origin" -s /bin/bash ${_etherpad_user}
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Use nginx as proxy
|
||||||
|
## -
|
||||||
|
|
||||||
|
## - Create host config
|
||||||
|
## -
|
||||||
|
## - Notice !!
|
||||||
|
## -
|
||||||
|
## - - Don't forget to place the ssl certificate/key
|
||||||
|
## -
|
||||||
|
## - - include intermediate cert(s) into cert file:
|
||||||
|
## - first: site certificate
|
||||||
|
## - second: intermidiate certificate
|
||||||
|
## -
|
||||||
|
cat << EOF > /etc/nginx/sites-available/${_hostname}.conf
|
||||||
|
server {
|
||||||
|
|
||||||
|
listen $_ipv4:80;
|
||||||
|
listen $_ipv4:443 ssl;
|
||||||
|
listen [$_ipv6]:80 ; ## listen for ipv6
|
||||||
|
listen [$_ipv6]:443 ssl ; ## listen for ipv6
|
||||||
|
|
||||||
|
server_name $_hostname;
|
||||||
|
|
||||||
|
root $_etherpad_dir;
|
||||||
|
|
||||||
|
location = /favicon.ico {
|
||||||
|
return 204;
|
||||||
|
log_not_found off;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location = /robots.txt {
|
||||||
|
log_not_found off;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Deny all attempts to access hidden files such as .htaccess, .htpasswd,
|
||||||
|
# .DS_Store (Mac).
|
||||||
|
location ~ /\. {
|
||||||
|
return 444;
|
||||||
|
access_log off;
|
||||||
|
log_not_found off;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include standard.conf;
|
||||||
|
|
||||||
|
ssl_certificate ssl_keys/oopen.de.chained.crt;
|
||||||
|
ssl_certificate_key ssl_keys/oopen.de.key;
|
||||||
|
|
||||||
|
if (\$scheme = http) {
|
||||||
|
return 301 https://\$server_name\$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
#auth_basic "closed site";
|
||||||
|
#auth_basic_user_file /etc/nginx/.htpasswd_etherpad;
|
||||||
|
|
||||||
|
## - Handle pad URLs here
|
||||||
|
## -
|
||||||
|
location / {
|
||||||
|
proxy_pass http://etherpad-lite;
|
||||||
|
proxy_set_header Host \$host;
|
||||||
|
proxy_buffering off;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream etherpad-lite {
|
||||||
|
server $_etherpad_host:$_etherpad_port;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
ln -s ../sites-available/${_hostname}.conf /etc/nginx/sites-enabled/
|
||||||
|
|
||||||
|
|
||||||
|
## - robots.txt
|
||||||
|
## -
|
||||||
|
cat << EOF > ${_etherpad_dir}/robots.txt
|
||||||
|
User-agent: *
|
||||||
|
Disallow: /
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chown ${_etherpad_user}:${_etherpad_user} ${_etherpad_dir}/robots.txt
|
||||||
|
|
||||||
|
|
||||||
|
## - Further adjusting settings.json
|
||||||
|
## -
|
||||||
|
## - Bind to 127.0.0.1
|
||||||
|
## - "ip": "127.0.0.1",
|
||||||
|
## -
|
||||||
|
## - We will use NginX as a proxy, so set this to true
|
||||||
|
## - "trustProxy": true,
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/settings.json
|
||||||
|
|
||||||
|
|
||||||
|
## - Start etherpad-lite
|
||||||
|
## -
|
||||||
|
/etc/init.d/etherpad-lite start
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin adminpads
|
||||||
|
## - (ep_adminpads)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
## -
|
||||||
|
## - URL...: https://${_hostname}/admin
|
||||||
|
# -
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Admin User Interface
|
||||||
|
## - (Plugin ep_user_pad and ep_user_pad_frontend)
|
||||||
|
|
||||||
|
|
||||||
|
## - Prerequisites:
|
||||||
|
## -
|
||||||
|
## - Create needed database tables:
|
||||||
|
## -
|
||||||
|
mysql_credential_args="--login-path=local_root"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"CREATE TABLE IF NOT EXISTS GroupPads (
|
||||||
|
GroupID int(11) NOT NULL,
|
||||||
|
PadName varchar(255) COLLATE utf8_bin NOT NULL,
|
||||||
|
PRIMARY KEY (GroupID,PadName)
|
||||||
|
)"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"CREATE TABLE IF NOT EXISTS Groups (
|
||||||
|
groupID int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
name varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
|
PRIMARY KEY (groupID,name)
|
||||||
|
)"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"CREATE TABLE IF NOT EXISTS NotRegisteredUsersGroups (
|
||||||
|
email varchar(255) NOT NULL,
|
||||||
|
groupID int(11) NOT NULL
|
||||||
|
)"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"CREATE TABLE IF NOT EXISTS User (
|
||||||
|
userID int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
name varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
|
pwd varchar(255) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
considered tinyint(11) DEFAULT NULL,
|
||||||
|
SSO tinyint(4) DEFAULT NULL,
|
||||||
|
FullName varchar(255) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
considerationString varchar(50) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
salt varchar(255) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
active int(1) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (userID,name)
|
||||||
|
)"
|
||||||
|
|
||||||
|
mysql $mysql_credential_args $_etherpad_db_name -N -s -e \
|
||||||
|
"CREATE TABLE IF NOT EXISTS UserGroup (
|
||||||
|
userID int(11) NOT NULL DEFAULT 0,
|
||||||
|
groupID int(11) NOT NULL DEFAULT 0,
|
||||||
|
Role int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (userID,groupID)
|
||||||
|
)"
|
||||||
|
|
||||||
|
## - Inatall etherpad plugin user_pad via admin interface of etherpad
|
||||||
|
## -
|
||||||
|
## - url: https://etherpad.oopen.de/admin/plugins
|
||||||
|
## -
|
||||||
|
|
||||||
|
## - Adjust /var/www/etherpad-lite/node_modules/ep_user_pad/email.json
|
||||||
|
## -
|
||||||
|
## - "smtp": "false",
|
||||||
|
## - ..
|
||||||
|
## - "invitationfrom": "admin@oopen.de"
|
||||||
|
## - ..
|
||||||
|
## - "registrationfrom": "admin@oopen.de"
|
||||||
|
## - ..
|
||||||
|
## - "resetfrom": "admin@oopen.de",
|
||||||
|
## -
|
||||||
|
vim ${_etherpad_dir}/node_modules/ep_user_pad/email.json
|
||||||
|
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
## -
|
||||||
|
## - URL...: https://${_hostname}/admin
|
||||||
|
|
||||||
|
## - Adjust /var/www/etherpad-lite/node_modules/ep_user_pad_frontend/email.json
|
||||||
|
## -
|
||||||
|
## - "smtp": "false",
|
||||||
|
## - ..
|
||||||
|
## - "invitationfrom": "admin@oopen.de"
|
||||||
|
## - ..
|
||||||
|
## - "registrationfrom": "admin@oopen.de"
|
||||||
|
## - ..
|
||||||
|
## - "resetfrom": "admin@oopen.de",
|
||||||
|
## -
|
||||||
|
vim vim ${_etherpad_dir}/node_modules/ep_user_pad_frontend/email.json
|
||||||
|
|
||||||
|
|
||||||
|
## - Further adjusting settings.json
|
||||||
|
## -
|
||||||
|
## - we want users to authenticate
|
||||||
|
## - "requireAuthorization": true,
|
||||||
|
## -
|
||||||
|
## - don't allow public pads, only group pads are allowed
|
||||||
|
## - "requireSession" : true,
|
||||||
|
## -
|
||||||
|
vim vim ${_etherpad_dir}/settings.json
|
||||||
|
|
||||||
|
|
||||||
|
## - !! Notice !!
|
||||||
|
## -
|
||||||
|
## - Adding Users via admin interface failed.
|
||||||
|
## -
|
||||||
|
## - For this time, correcting file
|
||||||
|
## - /var/www/etherpad-lite/node_modules/ep_user_pad/hooks.js
|
||||||
|
## - as follows:
|
||||||
|
## -
|
||||||
|
## - comment out:
|
||||||
|
## -
|
||||||
|
## - settings.encryptPassword = function (password, salt, cb) {
|
||||||
|
## - var encrypted = crypto.createHmac('sha256', salt).update(password).digest('hex');
|
||||||
|
## - cb(encrypted);
|
||||||
|
## - };
|
||||||
|
## -
|
||||||
|
## - add:
|
||||||
|
## -
|
||||||
|
## - var encryptPassword = function (password, salt, cb) {
|
||||||
|
## - var encrypted = crypto.createHmac('sha256', salt).update(password).digest('hex');
|
||||||
|
## - cb(encrypted);
|
||||||
|
## - };
|
||||||
|
## -
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin aa_file_menu_toolbar
|
||||||
|
## - (ep_aa_file_menu_toolbar)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin copy_paste_select_all
|
||||||
|
## - (ep_copy_paste_select_all)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin headings
|
||||||
|
## - (ep_headings)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin set_title_on_pad
|
||||||
|
## - (ep_set_title_on_pad)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin page_view
|
||||||
|
## - (ep_page_view)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin page_ruler
|
||||||
|
## - (ep_page_ruler)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin fileupload
|
||||||
|
## - (ep_fileupload)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install plugin imageconvert
|
||||||
|
## - (Plugin ep_imageconvert)
|
||||||
|
|
||||||
|
## - Install Prerequisites:
|
||||||
|
## -
|
||||||
|
apt-get install imagemagick poppler-utils ghostscript sed
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin sketchspace_pdfbackground
|
||||||
|
## - (ep_sketchspace_pdfbackground)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
## - Install plugin imageconvert via via admin interface of etherpad
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## -------------------------------------------------
|
||||||
|
## - Install Plugin print
|
||||||
|
## - (ep_print)
|
||||||
|
|
||||||
|
## - Install adminpads via admin interface -> Pligin Manager
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
|
|
||||||
|
## - Homepage etherpad
|
||||||
|
## -
|
||||||
|
## - http://etherpad.org/
|
||||||
|
|
||||||
|
## - Wiki etherpad
|
||||||
|
## -
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki
|
||||||
|
|
||||||
|
|
||||||
|
## - Install etherpad:
|
||||||
|
## -
|
||||||
|
## - https://github.com/ether/etherpad-lite/blob/master/README.md
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy
|
||||||
|
|
||||||
|
|
||||||
|
## - How to deploy Etherpad Lite as a service - means startup script at boot time
|
||||||
|
## -
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service
|
||||||
|
## -
|
||||||
|
|
||||||
|
|
||||||
|
## - How to use Etherpad Lite with MySQL:
|
||||||
|
## -
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki/How-to-use-Etherpad-Lite-with-MySQL
|
||||||
|
## - https://github.com/ether/etherpad-lite/wiki/How-to-migrate-the-database-from-Etherpad-to-Etherpad-Lite
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user