#!/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 sudo apt-get -yy install apt-transport-https sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D sudo echo 'deb https://collaboraoffice.com/repos/CollaboraOnline/CODE-debian8 ./' | sudo tee -a /etc/apt/sources.list sudo apt-get update sudo apt-get install -yy loolwsd code-brand ### MySQL (can be removed if not used) ### # If your app use a MySQL database you can use these lines to bootstrap # a database, an associated user and save the password in app settings. # # # Generate MySQL password and create database # dbuser=$app # dbname=$app # dbpass=$(ynh_string_random 12) # ynh_app_setting_set "$app" mysqlpwd "$dbpass" # ynh_mysql_create_db "$dbname" "$dbuser" "$dbpass" # # # Load initial SQL into the new database # ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" \ # < "../sources/sql/mysql.init.sql" ### MySQL end ### #================================================= # 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 "__DOMAIN__" "$nextcloud_domain" "/etc/loolwsd/loolwsd.xml" ynh_replace_string "__PASSWORD__" "$password" "/etc/loolwsd/loolwsd.xml" #================================================= # 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 sudo service nginx reload