#!/bin/bash # Exit on command errors and treat unset variables as an error set -eu # This is a multi-instance app, meaning it can be installed several times independently # The id of the app as stated in the manifest is available as $YNH_APP_ID # The instance number is available as $YNH_APP_INSTANCE_NUMBER (equals "1", "2", ...) # The app instance name is available as $YNH_APP_INSTANCE_NAME # - the first time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample # - the second time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample__2 # - ynhexample__{N} for the subsequent installations, with N=3,4, ... # The app instance name is probably what you are interested the most, since this is # guaranteed to be unique. This is a good unique identifier to define installation path, # db names, ... app=$YNH_APP_INSTANCE_NAME # Retrieve arguments domain=$YNH_APP_ARG_DOMAIN is_public=$YNH_APP_ARG_IS_PUBLIC password=$YNH_APP_ARG_PASSWORD nextcloud_domain=$YNH_APP_ARG_NEXTCLOUDDOMAIN # Source YunoHost helpers source /usr/share/yunohost/helpers source _common.sh # Save app settings ynh_app_setting_set "$app" is_public "$is_public" # Check domain/path availability sudo yunohost app checkurl "${domain}" -a "$app" \ || ynh_die "Path not available: ${domain}" # Find a free port port=$(ynh_find_port 9980) # Open this port yunohost firewall allow --no-upnp TCP $port 2>&1 ynh_app_setting_set $app port $port apt-get -yy install apt-transport-https apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D if [ "$(lsb_release --codename --short)" != "jessie" ]; then echo 'deb https://collaboraoffice.com/repos/CollaboraOnline/CODE-debian8 ./' | sudo tee -a /etc/apt/sources.list.d/collabora.list else echo 'deb https://collaboraoffice.com/repos/CollaboraOnline/CODE-debian9 ./' | sudo tee -a /etc/apt/sources.list.d/collabora.list fi sudo apt-get update sudo apt-get install -yy loolwsd code-brand #================================================= # NGINX CONFIGURATION #================================================= # Create a dedicated nginx config ynh_add_nginx_config #================================================= # CREATE DEDICATED USER #================================================= # Create a system user ynh_system_user_create $app #================================================= # SPECIFIC SETUP #================================================= # ... #================================================= #================================================= # MODIFY A CONFIG FILE #================================================= cp -a ../conf/loolwsd.xml /etc/loolwsd ynh_replace_string "__NEXTCLOUDDOMAIN__" "$nextcloud_domain" "/etc/loolwsd/loolwsd.xml" ynh_replace_string "__PASSWORD__" "$password" "/etc/loolwsd/loolwsd.xml" systemctl start loolwsd #================================================= # SETUP SYSTEMD #================================================= # Create a dedicated systemd config #ynh_add_systemd_config # If app is public, add url to SSOWat conf as skipped_uris if [[ $is_public -eq 1 ]]; then # unprotected_uris allows SSO credentials to be passed anyway. ynh_app_setting_set "$app" unprotected_uris "/" fi # Reload services systemctl restart loolwsd systemctl restart nginx