mirror of
https://github.com/YunoHost-Apps/jitsi_ynh.git
synced 2024-09-03 19:35:57 +02:00
fix ports
This commit is contained in:
parent
4153d90030
commit
76513fcae2
9 changed files with 167 additions and 39 deletions
|
@ -16,12 +16,12 @@ Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses Ji
|
|||
## Important points to read before installing
|
||||
|
||||
1. **Jitsi** require a dedicated **root domain**, eg. jitsi.domain.tld
|
||||
1. **Jitsi** require your create additionals dns names in your dns that goes to your YunoHost
|
||||
2. **Jitsi** require your create additionals dns names in your dns that goes to your YunoHost
|
||||
* auth.jitsi.domain.tld
|
||||
* conference.jitsi.domain.tld
|
||||
* jitsi-videobridge.jitsi.domain.tld
|
||||
* focus.jitsi.domain.tld
|
||||
1. **Jitsi** require the ports TCP/4443 and UDP/10000 been redirected to your YunoHost
|
||||
3. **Jitsi** require the ports TCP/4443 and UDP/10000 been redirected to your YunoHost
|
||||
|
||||
## Screenshots
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ Type=simple
|
|||
User=__APP__
|
||||
Group=__APP__
|
||||
WorkingDirectory=__FINALPATH__/jitsi-videobridge/
|
||||
ExecStart=__FINALPATH__/jitsi-videobridge/jvb.sh --host=127.0.0.1 --domain=__DOMAIN__ --port=__PORT_VIDEOBRIDGE__ --secret=__VIDEOBRIDGE_SECRET__ </dev/null >> /var/log/jvb.log 2>&1
|
||||
ExecStart=__FINALPATH__/jitsi-videobridge/jvb.sh --host=127.0.0.1 --domain=__DOMAIN__ --port=__PORT_COMPONENT__ --secret=__VIDEOBRIDGE_SECRET__ </dev/null >> /var/log/jvb.log 2>&1
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
admins = { "focus__APP__@auth.__DOMAIN__" }
|
||||
daemonize = true
|
||||
cross_domain_bosh = true;
|
||||
component_ports = { __PORT_VIDEOBRIDGE__ }
|
||||
component_ports = { __PORT_COMPONENT__ }
|
||||
--component_interface = "192.168.0.10"
|
||||
|
||||
-- Enable use of libevent for better performance under high load
|
||||
|
@ -186,7 +186,16 @@ VirtualHost "auth.__DOMAIN__"
|
|||
key = "/etc/yunohost/certs/auth.__DOMAIN__/key.pem";
|
||||
certificate = "/etc/yunohost/certs/auth.__DOMAIN__/crt.pem";
|
||||
}
|
||||
authentication = "internal_plain"
|
||||
authentication = "ldap2"
|
||||
ldap = {
|
||||
hostname = "localhost",
|
||||
user = {
|
||||
basedn = "ou=users,dc=yunohost,dc=org",
|
||||
filter = "(&(objectClass=posixAccount)(mail=*@auth.__DOMAIN__))",
|
||||
usernamefield = "mail",
|
||||
namefield = "cn",
|
||||
},
|
||||
}
|
||||
|
||||
------ Components ------
|
||||
-- You can specify components to add hosts that provide special services,
|
||||
|
|
|
@ -19,6 +19,7 @@ location ~ ^/([a-zA-Z0-9=\?]+)$ {
|
|||
rewrite ^/(.*)$ / break;
|
||||
}
|
||||
|
||||
# BOSH
|
||||
location __PATH__/http-bind {
|
||||
proxy_pass http://localhost:5290/http-bind;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
|
@ -27,3 +28,13 @@ location __PATH__/http-bind {
|
|||
tcp_nodelay on;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
# xmpp websockets
|
||||
location /xmpp-websocket {
|
||||
proxy_pass http://localhost:5280/xmpp-websocket;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
tcp_nodelay on;
|
||||
}
|
||||
|
|
|
@ -63,6 +63,17 @@ ynh_script_progression --message="Backing up logrotate configuration..." --time
|
|||
|
||||
ynh_backup --src_path="/etc/logrotate.d/$app"
|
||||
|
||||
#=================================================
|
||||
# BACKUP METRONOME CONFIG
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up Metronome configuration..." --time --weight=1
|
||||
|
||||
ynh_backup --src_path="/etc/metronome/conf.d/$domain.cfg.lua"
|
||||
|
||||
ynh_backup --src_path="/usr/lib/metronome/modules/mod_carbons.lua"
|
||||
ynh_backup --src_path="/usr/lib/metronome/modules/mod_http_altconnect.lua"
|
||||
# ynh_backup --src_path="/usr/lib/metronome/modules/mod_smacks.lua"
|
||||
|
||||
#=================================================
|
||||
# BACKUP SYSTEMD
|
||||
#=================================================
|
||||
|
|
|
@ -36,7 +36,7 @@ videobridge_secret=$(ynh_string_random --length=8)
|
|||
#YOURSECRET2
|
||||
focus_secret=$(ynh_string_random --length=8)
|
||||
|
||||
focus_user=${app}focus
|
||||
focus_user="svc${app}focus"
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
|
||||
|
@ -77,11 +77,17 @@ ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port
|
|||
ynh_app_setting_set --app=$app --key=port --value=$port
|
||||
|
||||
# Find a free port
|
||||
port_videobridge=$(ynh_find_port --port=5347)
|
||||
port_videobridge=$(ynh_find_port --port=10000)
|
||||
# Open this port
|
||||
ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port
|
||||
ynh_exec_warn_less yunohost firewall allow --no-upnp UDP $port_videobridge
|
||||
ynh_app_setting_set --app=$app --key=port_videobridge --value=$port_videobridge
|
||||
|
||||
# Find a free port
|
||||
port_component=$(ynh_find_port --port=5347)
|
||||
# Open this port
|
||||
ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port_component
|
||||
ynh_app_setting_set --app=$app --key=port_component --value=$port_component
|
||||
|
||||
#=================================================
|
||||
# INSTALL DEPENDENCIES
|
||||
#=================================================
|
||||
|
@ -127,6 +133,13 @@ ynh_script_progression --message="Configuring metronome..." --time --weight=1
|
|||
|
||||
# Create additional domains
|
||||
#yunohost domain add auth.$domain
|
||||
#yunohost domain add conference.$domain
|
||||
#yunohost domain add jitsi-videobridge.$domain
|
||||
#yunohost domain add focus.$domain
|
||||
#yunohost domain cert-install auth.$domain
|
||||
#yunohost domain cert-install conference.$domain
|
||||
#yunohost domain cert-install jitsi-videobridge.$domain
|
||||
#yunohost domain cert-install focus.$domain
|
||||
|
||||
# Create focus user
|
||||
yunohost user create $focus_user -f $focus_user -l $focus_user -m ${focus_user}@auth.$domain -p $focus_password -q 0
|
||||
|
@ -144,15 +157,13 @@ ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --targ
|
|||
ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$metronome"
|
||||
ynh_replace_string --match_string="__VIDEOBRIDGE_SECRET__" --replace_string="$videobridge_secret" --target_file="$metronome"
|
||||
ynh_replace_string --match_string="__FOCUS_SECRET__" --replace_string="$focus_secret" --target_file="$metronome"
|
||||
ynh_replace_string --match_string="__PORT_VIDEOBRIDGE__" --replace_string="$port_videobridge" --target_file="$metronome"
|
||||
ynh_replace_string --match_string="__PORT_COMPONENT__" --replace_string="$port_component" --target_file="$metronome"
|
||||
chown -R metronome:metronome "/etc/metronome/conf.d/"
|
||||
|
||||
cp ../conf/mod_carbons.lua /usr/lib/metronome/modules/mod_carbons.lua
|
||||
cp ../conf/mod_http_altconnect.lua /usr/lib/metronome/modules/mod_http_altconnect.lua
|
||||
#cp ../conf/mod_smacks.lua /usr/lib/metronome/modules/mod_smacks.lua
|
||||
|
||||
#metronomectl adduser focusjitsi auth.test31.yh.yalh.net OCL1sd7d
|
||||
|
||||
ynh_systemd_action --service_name=metronome --action=restart
|
||||
|
||||
#=================================================
|
||||
|
@ -177,6 +188,8 @@ unzip $final_path/jitsi-jicofo-build/target/jicofo-linux-x64-1.1-SNAPSHOT.zip -d
|
|||
|
||||
mv $final_path/jicofo-linux-x64-1.1-SNAPSHOT/ $final_path/jitsi-jicofo/
|
||||
|
||||
ynh_secure_remove --file="$final_path/jitsi-jicofo-build"
|
||||
|
||||
#=================================================
|
||||
# BUILD JITSI-MEET
|
||||
#=================================================
|
||||
|
@ -190,7 +203,6 @@ popd
|
|||
mv "$final_path/jitsi-meet_temp/usr/share/jitsi-meet/" "$final_path/jitsi-meet/"
|
||||
ynh_secure_remove --file="$final_path/jitsi-meet_temp"
|
||||
|
||||
|
||||
config="$final_path/jitsi-meet/config.js"
|
||||
cp ../conf/config.js "$config"
|
||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="$config"
|
||||
|
@ -203,7 +215,7 @@ ynh_script_progression --message="Configuring a systemd service..." --time --wei
|
|||
# Create a dedicated systemd config
|
||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="../conf/jitsi-videobridge.service"
|
||||
ynh_replace_string --match_string="__VIDEOBRIDGE_SECRET__" --replace_string="$videobridge_secret" --target_file="../conf/jitsi-videobridge.service"
|
||||
ynh_replace_string --match_string="__PORT_VIDEOBRIDGE__" --replace_string="$port_videobridge" --target_file="../conf/jitsi-videobridge.service"
|
||||
ynh_replace_string --match_string="__PORT_COMPONENT__" --replace_string="$port_component" --target_file="../conf/jitsi-videobridge.service"
|
||||
ynh_add_systemd_config --service=$app-videobridge --template="jitsi-videobridge.service"
|
||||
|
||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="../conf/jitsi-jicofo.service"
|
||||
|
|
|
@ -19,6 +19,7 @@ app=$YNH_APP_INSTANCE_NAME
|
|||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
port_videobridge=$(ynh_app_setting_get --app=$app --key=port_videobridge)
|
||||
port_component=$(ynh_app_setting_get --app=$app --key=port_component)
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
focus_user=$(ynh_app_setting_get --app=$app --key=focus_user)
|
||||
|
||||
|
@ -97,14 +98,21 @@ fi
|
|||
if yunohost firewall list | grep -q "\- $port_videobridge$"
|
||||
then
|
||||
ynh_script_progression --message="Closing port $port_videobridge..."
|
||||
ynh_exec_warn_less yunohost firewall disallow TCP $port_videobridge
|
||||
ynh_exec_warn_less yunohost firewall disallow UDP $port_videobridge
|
||||
fi
|
||||
|
||||
if yunohost firewall list | grep -q "\- $port_component$"
|
||||
then
|
||||
ynh_script_progression --message="Closing port $port_component..."
|
||||
ynh_exec_warn_less yunohost firewall disallow TCP $port_component
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC REMOVE
|
||||
#=================================================
|
||||
# REMOVE METRONOME
|
||||
# RECONFIGURE METRONOME
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reconfiguring Metronome..." --time --weight=1
|
||||
|
||||
# Reconfigure metronome
|
||||
ynh_secure_remove --file="/etc/metronome/conf.d/$domain.cfg.lua"
|
||||
|
@ -125,6 +133,9 @@ yunohost user delete $focus_user --purge
|
|||
|
||||
# Removing additional domains
|
||||
#yunohost domain remove auth.$domain
|
||||
#yunohost domain remove conference.$domain
|
||||
#yunohost domain remove jitsi-videobridge.$domain
|
||||
#yunohost domain remove focus.$domain
|
||||
|
||||
#=================================================
|
||||
# REMOVE THE CRON FILE
|
||||
|
|
|
@ -31,6 +31,13 @@ domain=$(ynh_app_setting_get --app=$app --key=domain)
|
|||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
|
||||
focus_user=$(ynh_app_setting_get --app=$app --key=focus_user)
|
||||
focus_password=$(ynh_app_setting_get --app=$app --key=focus_password)
|
||||
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
port_videobridge=$(ynh_app_setting_get --app=$app --key=port_videobridge)
|
||||
port_component=$(ynh_app_setting_get --app=$app --key=port_component)
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE RESTORED
|
||||
#=================================================
|
||||
|
@ -83,6 +90,50 @@ ynh_install_app_dependencies $pkg_dependencies
|
|||
|
||||
ynh_install_nodejs --nodejs_version=10
|
||||
|
||||
#=================================================
|
||||
# CONFIGURE FIREWALL
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring firewall..." --time --weight=1
|
||||
|
||||
# Open this port
|
||||
ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port
|
||||
ynh_exec_warn_less yunohost firewall allow --no-upnp UDP $port_videobridge
|
||||
ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port_component
|
||||
|
||||
#=================================================
|
||||
# CONFIGURE METRONOME
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring metronome..." --time --weight=1
|
||||
|
||||
# Create additional domains
|
||||
#yunohost domain add auth.$domain
|
||||
#yunohost domain add conference.$domain
|
||||
#yunohost domain add jitsi-videobridge.$domain
|
||||
#yunohost domain add focus.$domain
|
||||
#yunohost domain cert-install auth.$domain
|
||||
#yunohost domain cert-install conference.$domain
|
||||
#yunohost domain cert-install jitsi-videobridge.$domain
|
||||
#yunohost domain cert-install focus.$domain
|
||||
|
||||
# Create focus user
|
||||
yunohost user create $focus_user -f $focus_user -l $focus_user -m ${focus_user}@auth.$domain -p $focus_password -q 0
|
||||
|
||||
# Configure metronome
|
||||
mv /etc/metronome/conf.d/$domain.cfg.lua /etc/metronome/conf.d/$domain.cfg.lua.back
|
||||
mv /etc/metronome/conf.d/auth.$domain.cfg.lua /etc/metronome/conf.d/auth.$domain.cfg.lua.back
|
||||
mv /etc/metronome/conf.d/conference.$domain.cfg.lua /etc/metronome/conf.d/conference.$domain.cfg.lua.back
|
||||
mv /etc/metronome/conf.d/jitsi-videobridge.$domain.cfg.lua /etc/metronome/conf.d/jitsi-videobridge.$domain.cfg.lua.back
|
||||
mv /etc/metronome/conf.d/focus.$domain.cfg.lua /etc/metronome/conf.d/focus.$domain.cfg.lua.back
|
||||
|
||||
ynh_restore_file --origin_path="/etc/metronome/conf.d/$domain.cfg.lua"
|
||||
chown -R metronome:metronome "/etc/metronome/conf.d/"
|
||||
|
||||
ynh_restore_file --origin_path="/usr/lib/metronome/modules/mod_carbons.lua"
|
||||
ynh_restore_file --origin_path="/usr/lib/metronome/modules/mod_http_altconnect.lua"
|
||||
# ynh_restore_file --origin_path="/usr/lib/metronome/modules/mod_smacks.lua"
|
||||
|
||||
ynh_systemd_action --service_name=metronome --action=restart
|
||||
|
||||
#=================================================
|
||||
# RESTORE SYSTEMD
|
||||
#=================================================
|
||||
|
|
|
@ -20,10 +20,12 @@ domain=$(ynh_app_setting_get --app=$app --key=domain)
|
|||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
|
||||
focus_password=$(ynh_app_setting_get --app=$app --key=$focus_password)
|
||||
videobridge_secret=$(ynh_app_setting_get --app=$app --key=videobridge_secret)
|
||||
focus_secret=$(ynh_app_setting_get --app=$app --key=focus_secret)
|
||||
port_videobridge=$(ynh_app_setting_get --app=$app --key=port_videobridge)
|
||||
port_component=$(ynh_app_setting_get --app=$app --key=port_component)
|
||||
|
||||
focus_user=$(ynh_app_setting_get --app=$app --key=focus_user)
|
||||
focus_password=$(ynh_app_setting_get --app=$app --key=focus_password)
|
||||
|
||||
#=================================================
|
||||
# CHECK VERSION
|
||||
|
@ -76,8 +78,8 @@ then
|
|||
|
||||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source --dest_dir="$final_path/jitsi-videobridge" --source_id=jitsi-videobridge
|
||||
ynh_setup_source --dest_dir="$final_path/jitsi-jicofo" --source_id=jitsi-jicofo
|
||||
ynh_setup_source --dest_dir="$final_path/jitsi-meet" --source_id=jitsi-meet
|
||||
ynh_setup_source --dest_dir="$final_path/jitsi-jicofo-build" --source_id=jitsi-jicofo
|
||||
ynh_setup_source --dest_dir="$final_path/jitsi-meet_temp" --source_id=jitsi-meet
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
|
@ -110,40 +112,59 @@ ynh_system_user_create --username=$app --home_dir=$final_path
|
|||
#=================================================
|
||||
# BUILD JITSI-VIDEOBRIDGE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Building Jitsi-Videobridge..." --time --weight=1
|
||||
|
||||
pushd "$final_path/jitsi-videobridge"
|
||||
mvn compile exec:exec -Dexec.executable=java -Dexec.args="-cp %classpath org.jitsi.videobridge.Main --domain=\"$domain\" --host=\"localhost \" --port=\"$port_videobridge\" --secret=\"$videobridge_secret\" -Djava.library.path=$JVB_HOME/lib/native/linux-64 -Djava.util.logging.config.file=$JVB_HOME/lib/logging.properties -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=.jitsi-videobridge "
|
||||
popd
|
||||
if [ "$upgrade_type" == "UPGRADE_APP" ]
|
||||
then
|
||||
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# BUILD JITSI-JICOFO
|
||||
#=================================================
|
||||
ynh_script_progression --message="Building Jitsi-Jicofo..." --time --weight=1
|
||||
|
||||
pushd "$final_path/jitsi-jicofo"
|
||||
if [ "$upgrade_type" == "UPGRADE_APP" ]
|
||||
then
|
||||
pushd "$final_path/jitsi-jicofo-build"
|
||||
mvn package -DskipTests -Dassembly.skipAssembly=false
|
||||
popd
|
||||
|
||||
unzip $final_path/jitsi-jicofo-build/target/jicofo-linux-x64-1.1-SNAPSHOT.zip -d $final_path
|
||||
|
||||
ynh_secure_remove --file="$final_path/jitsi-jicofo/"
|
||||
|
||||
mv $final_path/jicofo-linux-x64-1.1-SNAPSHOT/ $final_path/jitsi-jicofo/
|
||||
|
||||
ynh_secure_remove --file="$final_path/jitsi-jicofo-build"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# BUILD JITSI-MEET
|
||||
#=================================================
|
||||
ynh_script_progression --message="Building Jitsi-Meet..." --time --weight=1
|
||||
|
||||
pushd "$final_path/jitsi-meet"
|
||||
ynh_use_nodejs
|
||||
npm install
|
||||
make
|
||||
|
||||
if [ "$upgrade_type" == "UPGRADE_APP" ]
|
||||
then
|
||||
pushd "$final_path/jitsi-meet_temp"
|
||||
ar x jitsi-meet-web.deb data.tar.xz
|
||||
tar xf data.tar.xz
|
||||
popd
|
||||
|
||||
ynh_secure_remove --file="$final_path/jitsi-meet/"
|
||||
|
||||
mv "$final_path/jitsi-meet_temp/usr/share/jitsi-meet/" "$final_path/jitsi-meet/"
|
||||
ynh_secure_remove --file="$final_path/jitsi-meet_temp"
|
||||
|
||||
config="$final_path/jitsi-meet/config.js"
|
||||
ynh_backup_if_checksum_is_different --file="$config"
|
||||
cp ../conf/config.js "$config"
|
||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="$config"
|
||||
|
||||
#=================================================
|
||||
# STORE THE CONFIG FILE CHECKSUM
|
||||
#=================================================
|
||||
|
||||
ynh_backup_if_checksum_is_different --file="$final_path/CONFIG_FILE"
|
||||
# Recalculate and store the checksum of the file for the next upgrade.
|
||||
ynh_store_file_checksum --file="$config"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# SETUP LOGROTATE
|
||||
|
@ -161,10 +182,12 @@ ynh_script_progression --message="Upgrading systemd configuration..." --time --w
|
|||
# Create a dedicated systemd config
|
||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="../conf/jitsi-videobridge.service"
|
||||
ynh_replace_string --match_string="__VIDEOBRIDGE_SECRET__" --replace_string="$videobridge_secret" --target_file="../conf/jitsi-videobridge.service"
|
||||
ynh_replace_string --match_string="__PORT_COMPONENT__" --replace_string="$port_component" --target_file="../conf/jitsi-videobridge.service"
|
||||
ynh_add_systemd_config --service=$app-videobridge --template="jitsi-videobridge.service"
|
||||
|
||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="../conf/jitsi-jicofo.service"
|
||||
ynh_replace_string --match_string="__FOCUS_SECRET__" --replace_string="$focus_secret" --target_file="../conf/jitsi-jicofo.service"
|
||||
ynh_replace_string --match_string="__FOCUS_USER__" --replace_string="$focus_user" --target_file="../conf/jitsi-jicofo.service"
|
||||
ynh_replace_string --match_string="__FOCUS_PASSWORD__" --replace_string="$focus_password" --target_file="../conf/jitsi-jicofo.service"
|
||||
ynh_add_systemd_config --service=$app-jicofo --template="jitsi-jicofo.service"
|
||||
|
||||
|
|
Loading…
Reference in a new issue