1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/jellyfin_ynh.git synced 2024-09-03 19:26:29 +02:00

Improve discovery ports opening

This commit is contained in:
tituspijean 2021-06-01 21:56:36 +02:00
parent 670baa0904
commit 1c706e7109
4 changed files with 96 additions and 57 deletions

View file

@ -12,6 +12,9 @@ ffmpeg_pkg_version="4.3.2-1"
architecture=$(dpkg --print-architecture)
discovery_service_port=1900
discovery_client_port=7359
#=================================================
# PERSONAL HELPERS
#=================================================

View file

@ -73,25 +73,27 @@ port=$(ynh_find_port --port=8095)
ynh_app_setting_set --app=$app --key=port --value=$port
if [ $discovery -eq 1 ]; then
ynh_script_progression --message="Configuring firewall..." --time --weight=1
ynh_script_progression --message="Configuring firewall..." --weight=1
# Open port 1900 for service auto-discovery
if ynh_port_available --port=1900; then
ynh_exec_warn_less yunohost firewall allow UDP 1900
ynh_app_setting_set --app=$app --key=discovery_service --value=1
if ynh_port_available --port=$discovery_service_port; then
discovery_service=1
ynh_exec_warn_less yunohost firewall allow UDP $discovery_service_port
else
ynh_print_warn --message="Port 1900 (for service auto-discovery) is not available. Continuing nonetheless."
ynh_app_setting_set --app=$app --key=discovery_service --value=0
discovery_service=0
ynh_print_warn --message="Port $discovery_service_port (for service auto-discovery) is not available. Continuing nonetheless."
fi
ynh_app_setting_set --app=$app --key=discovery_service --value=$discovery_service
# Open port 7359 for client auto-discovery
if ynh_port_available --port=7359; then
ynh_exec_warn_less yunohost firewall allow UDP 7359
ynh_app_setting_set --app=$app --key=discovery_client --value=1
if ynh_port_available --port=$discovery_client_port; then
discovery_client=1
ynh_exec_warn_less yunohost firewall allow UDP $discovery_client_port
else
ynh_print_warn --message="Port 7359 (for client auto-discovery) is not available. Continuing nonetheless."
ynh_app_setting_set --app=$app --key=discovery_client --value=0
discovery_client=0
ynh_print_warn --message="Port $discovery_client_port (for client auto-discovery) is not available. Continuing nonetheless."
fi
ynh_app_setting_set --app=$app --key=discovery_service --value=$discovery_client
fi
#=================================================
@ -198,7 +200,17 @@ ynh_use_logrotate
#=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
yunohost service add $app --description="Jellyfin media center" --log_type="systemd"
# Build the ports list
needed_ports=()
(( $discovery_server == 1 )) && needed_ports+=( "$discovery_server_port" )
(( $discovery_client == 1 )) && needed_ports+=( "$discovery_client_port" )
# Integrate service and require to expose the ports if needed
if [ -z ${needed_ports[@]} ]; then
yunohost service add $app --description="Jellyfin media center" --log_type="systemd"
else
yunohost service add $app --description="Jellyfin media center" --log_type="systemd" --needs_exposed_ports=${needed_ports[@]}
fi
#=================================================
# START SYSTEMD SERVICE

View file

@ -56,25 +56,27 @@ fi
#=================================================
if [ $discovery -eq 1 ]; then
ynh_script_progression --message="Configuring firewall..." --time --weight=1
ynh_script_progression --message="Configuring firewall..." --weight=1
# Open port 1900 for service auto-discovery
if ynh_port_available --port=1900; then
ynh_exec_warn_less yunohost firewall allow UDP 1900
ynh_app_setting_set --app=$app --key=discovery_service --value=1
else
ynh_print_warn --message="Port 1900 (for service auto-discovery) is not available. Continuing nonetheless."
ynh_app_setting_set --app=$app --key=discovery_service --value=0
fi
# Open port 1900 for service auto-discovery
if ynh_port_available --port=$discovery_service_port; then
discovery_service=1
ynh_exec_warn_less yunohost firewall allow UDP $discovery_service_port
else
discovery_service=0
ynh_print_warn --message="Port $discovery_service_port (for service auto-discovery) is not available. Continuing nonetheless."
fi
ynh_app_setting_set --app=$app --key=discovery_service --value=$discovery_service
# Open port 7359 for client auto-discovery
if ynh_port_available --port=7359; then
ynh_exec_warn_less yunohost firewall allow UDP 7359
ynh_app_setting_set --app=$app --key=discovery_client --value=1
else
ynh_print_warn --message="Port 7359 (for client auto-discovery) is not available. Continuing nonetheless."
ynh_app_setting_set --app=$app --key=discovery_client --value=0
fi
# Open port 7359 for client auto-discovery
if ynh_port_available --port=$discovery_client_port; then
discovery_client=1
ynh_exec_warn_less yunohost firewall allow UDP $discovery_client_port
else
discovery_client=0
ynh_print_warn --message="Port $discovery_client_port (for client auto-discovery) is not available. Continuing nonetheless."
fi
ynh_app_setting_set --app=$app --key=discovery_service --value=$discovery_client
fi
#=================================================
@ -102,15 +104,6 @@ ynh_script_progression --message="Recreating the dedicated system user..." --wei
# Create the dedicated user (if not existing)
ynh_system_user_create --username=$app
#=================================================
# RESTORE USER RIGHTS
#=================================================
ynh_script_progression --message="Restoring user rights..."
# Restore permissions on app files
chown -R $app: $final_path
chown -R $app: $config_path
#=================================================
# SPECIFIC RESTORATION
#=================================================
@ -145,7 +138,26 @@ systemctl enable jellyfin.service --quiet
#=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
yunohost service add $app --description="Jellyfin media center" --log_type="systemd"
# Build the ports list
needed_ports=()
(( $discovery_server == 1 )) && needed_ports+=( "$discovery_server_port" )
(( $discovery_client == 1 )) && needed_ports+=( "$discovery_client_port" )
# Integrate service and require to expose the ports if needed
if [ -z ${needed_ports[@]} ]; then
yunohost service add $app --description="Jellyfin media center" --log_type="systemd"
else
yunohost service add $app --description="Jellyfin media center" --log_type="systemd" --needs_exposed_ports=${needed_ports[@]}
fi
#=================================================
# RESTORE USER RIGHTS
#=================================================
ynh_script_progression --message="Restoring user rights..."
# Restore permissions on app files
chown -R $app: $final_path
chown -R $app: $config_path
#=================================================
# START SYSTEMD SERVICE

View file

@ -92,25 +92,27 @@ ynh_abort_if_errors
#=================================================
if [ $discovery -eq 1 ]; then
ynh_script_progression --message="Configuring firewall..." --time --weight=1
ynh_script_progression --message="Configuring firewall..." --weight=1
# Open port 1900 for service auto-discovery
if ynh_port_available --port=1900; then
ynh_exec_warn_less yunohost firewall allow UDP 1900
ynh_app_setting_set --app=$app --key=discovery_service --value=1
else
ynh_print_warn --message="Port 1900 (for service auto-discovery) is not available. Continuing nonetheless."
ynh_app_setting_set --app=$app --key=discovery_service --value=0
fi
# Open port 1900 for service auto-discovery
if ynh_port_available --port=$discovery_service_port; then
discovery_service=1
ynh_exec_warn_less yunohost firewall allow UDP $discovery_service_port
else
discovery_service=0
ynh_print_warn --message="Port $discovery_service_port (for service auto-discovery) is not available. Continuing nonetheless."
fi
ynh_app_setting_set --app=$app --key=discovery_service --value=$discovery_service
# Open port 7359 for client auto-discovery
if ynh_port_available --port=7359; then
ynh_exec_warn_less yunohost firewall allow UDP 7359
ynh_app_setting_set --app=$app --key=discovery_client --value=1
else
ynh_print_warn --message="Port 7359 (for client auto-discovery) is not available. Continuing nonetheless."
ynh_app_setting_set --app=$app --key=discovery_client --value=0
fi
# Open port 7359 for client auto-discovery
if ynh_port_available --port=$discovery_client_port; then
discovery_client=1
ynh_exec_warn_less yunohost firewall allow UDP $discovery_client_port
else
discovery_client=0
ynh_print_warn --message="Port $discovery_client_port (for client auto-discovery) is not available. Continuing nonetheless."
fi
ynh_app_setting_set --app=$app --key=discovery_service --value=$discovery_client
fi
#=================================================
@ -229,7 +231,17 @@ ynh_use_logrotate --non-append
#=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
yunohost service add $app --description="Jellyfin media center" --log_type="systemd"
# Build the ports list
needed_ports=()
(( $discovery_server == 1 )) && needed_ports+=( "$discovery_server_port" )
(( $discovery_client == 1 )) && needed_ports+=( "$discovery_client_port" )
# Integrate service and require to expose the ports if needed
if [ -z ${needed_ports[@]} ]; then
yunohost service add $app --description="Jellyfin media center" --log_type="systemd"
else
yunohost service add $app --description="Jellyfin media center" --log_type="systemd" --needs_exposed_ports=${needed_ports[@]}
fi
#=================================================
# START SYSTEMD SERVICE