mirror of
https://github.com/YunoHost-Apps/collabora_ynh.git
synced 2024-09-03 18:16:25 +02:00
95 lines
3 KiB
Bash
95 lines
3 KiB
Bash
#!/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
|
||
|
||
|
||
#=================================================
|
||
# 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
|
||
|