#!/bin/bash

# DOC
# https://apps.nextcloud.com/apps/onlyoffice
# https://api.onlyoffice.com/editors/nextcloud
# https://helpcenter.onlyoffice.com/server/linux/document/linux-installation.aspx

#apt-get -y install curl
#
#if grep -q dpkg -l nodejs|grep 6\. ; then
#    echo "Node.js 6.x déjà installé"
#else
#    curl -sL https://deb.nodesource.com/setup_6.x|bash
#fi

# Installation de la gestion des clés
apt-get update
apt-get -y install gnupg apt-transport-https

# Source list nodejs 6.x
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 1655A0AB68576280
#echo 'deb https://deb.nodesource.com/node_6.x stretch main' >  /etc/apt/sources.list.d/nodesource.list
echo 'deb https://deb.nodesource.com/node_8.x stretch main' >  /etc/apt/sources.list.d/nodesource.list

# Source list onlyoffice
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
echo 'deb http://download.onlyoffice.com/repo/debian squeeze main' > /etc/apt/sources.list.d/onlyoffice.list

# Rechargement des dépots
apt-get update

###########

# Installation des paquets
APP_LIST="
libstdc++6
nginx-extras
postgresql
libcurl3
libxml2
supervisor
fonts-dejavu
fonts-liberation
fonts-crosextra-carlito
fonts-takao-gothic
fonts-opensymbol
sudo
redis-server
rabbitmq-server
nodejs
"
#
##
# ttf-mscorefonts-installer > non dispo
#
##
# peut-être :
# npm nginx-extras

apt install -y \
    $APP_LIST


# Conf PGSQL
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"

# Installation de OnlyOffice

# TODO : non interactif
apt-get install -y onlyoffice-documentserver
# TODO : puis configurer le MDP
# /etc/onlyoffice/documentserver/default.json +94
# grep dbPass /etc/onlyoffice/documentserver/default.json 
#        "dbPass": "onlyoffice",
#

#### pour nextcloud :
#
#        "onlyoffice": {
#            "DocumentServerInternalUrl": "",
#            "DocumentServerUrl": "https:\/\/ooffice.le2mlab.fr\/",
#            "StorageUrl": "",
#            "defFormats": "{\"csv\":\"false\",\"doc\":\"true\",\"docm\":\"true\",\"docx\":\"true\",\"dotx\":\"true\",\"epub\":\"false\",\"html\":\"false\",\"odp\":\"true\",\"ods\":\"true\",\"odt\":\"true\",\"pdf\":\"false\",\"potm\":\"false\",\"potx\":\"true\",\"ppsm\":\"true\",\"ppsx\":\"true\",\"ppt\":\"true\",\"pptm\":\"true\",\"pptx\":\"true\",\"rtf\":\"false\",\"txt\":\"false\",\"xls\":\"true\",\"xlsm\":\"true\",\"xlsx\":\"true\",\"xltm\":\"true\",\"xltx\":\"true\"}",
#            "enabled": "yes",
#            "installed_version": "2.0.2",
#            "jwt_secret": "",
#            "sameTab": "false",
#            "settings_error": "",
#            "skey": "1535685574503",
#            "types": "filesystem"
#

#### Limiter le cloud :
# /etc/onlyoffice/documentserver/default.json
#      "ipfilter": {
#        "rules": [
#          {
#            "address": "could.le2mlab.fr",
#            "allowed": true
#          }
#        ],
#        "useforrequest": false,
#        "errorcode": 401
#      },

