1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/friendica_ynh.git synced 2024-09-03 18:36:14 +02:00

Merge pull request #126 from YunoHost-Apps/testing

Testing v2023.12~ynh2
This commit is contained in:
OniriCorpe 2024-02-12 00:37:59 +01:00 committed by GitHub
commit 00aee6683f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 82 additions and 67 deletions

View file

@ -16,10 +16,11 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
## Overview ## Overview
Friendica is a decentralised communications platform that integrates social communication. The platform links to independent social projects and corporate services. Friendica is a decentralised communications platform that integrates social communication. The platform links to independent social projects and corporate services.
Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on Friendica, Mastodon, Diaspora, GnuSocial, Pleroma, or Hubzilla, regardless where each user profile is hosted. Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on Friendica, Mastodon, Diaspora, GnuSocial, Pleroma, or Hubzilla, regardless where each user profile is hosted.
**Shipped version:** 2023.12~ynh1
**Shipped version:** 2023.12~ynh2
**Demo:** https://dir.friendica.social/servers **Demo:** https://dir.friendica.social/servers

View file

@ -16,10 +16,11 @@ Si vous navez pas YunoHost, regardez [ici](https://yunohost.org/#/install) po
## Vue densemble ## Vue densemble
Friendica is a decentralised communications platform that integrates social communication. The platform links to independent social projects and corporate services. Friendica is a decentralised communications platform that integrates social communication. The platform links to independent social projects and corporate services.
Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on Friendica, Mastodon, Diaspora, GnuSocial, Pleroma, or Hubzilla, regardless where each user profile is hosted. Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on Friendica, Mastodon, Diaspora, GnuSocial, Pleroma, or Hubzilla, regardless where each user profile is hosted.
**Version incluse :** 2023.12~ynh1
**Version incluse :** 2023.12~ynh2
**Démo :** https://dir.friendica.social/servers **Démo :** https://dir.friendica.social/servers

View file

@ -32,7 +32,7 @@ return [
// **************************************************************** // ****************************************************************
'config' => [ 'config' => [
'php_path' => '/usr/bin/php' 'php_path' => '/usr/bin/php',
'admin_email' => '__EMAIL__', 'admin_email' => '__EMAIL__',
'sitename' => 'Friendica Social Network', 'sitename' => 'Friendica Social Network',
'register_policy' => \Friendica\Module\Register::OPEN, 'register_policy' => \Friendica\Module\Register::OPEN,
@ -40,7 +40,7 @@ return [
], ],
'system' => [ 'system' => [
'url' => 'https://__DOMAIN__', 'url' => 'https://__DOMAIN__',
'basepath' => '__INSTALL_DIR__' 'basepath' => '__INSTALL_DIR__',
'default_timezone' => '__TIMEZONE__', 'default_timezone' => '__TIMEZONE__',
'language' => '__LANGUAGE__', 'language' => '__LANGUAGE__',
], ],

View file

@ -1,26 +1,25 @@
#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; location __PATH__/ {
location __PATH__/ {
alias __INSTALL_DIR__/; alias __INSTALL_DIR__/;
if (!-e $request_filename) { if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?pagename=$1; rewrite ^(.*)$ /index.php?pagename=$1;
} }
#allow uploads up to 20MB in size #allow uploads up to 20MB in size
client_max_body_size 50M; client_max_body_size 50M;
client_body_buffer_size 128k; client_body_buffer_size 128k;
#Default indexes and catch-all #Default indexes and catch-all
index index.php; index index.php;
# make sure webfinger and other well known services aren't blocked # make sure webfinger and other well known services aren't blocked
# by denying dot files and rewrite request to the front controller # by denying dot files and rewrite request to the front controller
location ^~ /.well-known/ { location ^~ /.well-known/ {
allow all; allow all;
if (!-e $request_filename) { if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?pagename=$1; rewrite ^(.*)$ /index.php?pagename=$1;
} }
} }
include mime.types; include mime.types;
@ -30,15 +29,15 @@ location __PATH__/ {
deny all; deny all;
} }
#Execute and serve PHP files #Execute and serve PHP files
location ~* \.php$ { location ~* \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $uri =404; try_files $uri =404;
fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock;
fastcgi_index index.php; fastcgi_index index.php;
include fastcgi_params; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
} }
# deny access to all dot files # deny access to all dot files
location ~ /\. { location ~ /\. {

View file

@ -1,2 +1,2 @@
Friendica is a decentralised communications platform that integrates social communication. The platform links to independent social projects and corporate services. Friendica is a decentralised communications platform that integrates social communication. The platform links to independent social projects and corporate services.
Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on Friendica, Mastodon, Diaspora, GnuSocial, Pleroma, or Hubzilla, regardless where each user profile is hosted. Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on Friendica, Mastodon, Diaspora, GnuSocial, Pleroma, or Hubzilla, regardless where each user profile is hosted.

View file

@ -1,2 +1,2 @@
Friendica is a decentralised communications platform that integrates social communication. The platform links to independent social projects and corporate services. Friendica is a decentralised communications platform that integrates social communication. The platform links to independent social projects and corporate services.
Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on Friendica, Mastodon, Diaspora, GnuSocial, Pleroma, or Hubzilla, regardless where each user profile is hosted. Friendica connects you effortlessly to a federated communications network of several thousand servers, with more than half a million user registrations. You can directly connect to anyone on Friendica, Mastodon, Diaspora, GnuSocial, Pleroma, or Hubzilla, regardless where each user profile is hosted.

View file

@ -5,9 +5,9 @@ name = "Friendica"
description.en = "Decentralized Social Network" description.en = "Decentralized Social Network"
description.fr = "Réseau social décentralisé" description.fr = "Réseau social décentralisé"
version = "2023.12~ynh1" version = "2023.12~ynh2"
maintainers = [] maintainers = [ "" ]
[upstream] [upstream]
license = "AGPL-3.0-only" license = "AGPL-3.0-only"
@ -30,7 +30,7 @@ ram.runtime = "50M"
[install] [install]
[install.domain] [install.domain]
type = "domain" type = "domain"
[install.init_main_permission] [install.init_main_permission]
type = "group" type = "group"
default = "visitors" default = "visitors"
@ -42,7 +42,7 @@ ram.runtime = "50M"
ask.en = "Choose the application language" ask.en = "Choose the application language"
ask.fr = "Choisissez la langue de l'application" ask.fr = "Choisissez la langue de l'application"
type = "select" type = "select"
choices = ["de", "en", "es", "fr", "it", "pt"] choices = [ "de", "en", "es", "fr", "it", "pt" ]
default = "en" default = "en"
[resources] [resources]
@ -51,21 +51,23 @@ ram.runtime = "50M"
[resources.sources.main] [resources.sources.main]
url = "https://github.com/friendica/friendica/archive/refs/tags/2023.12.tar.gz" url = "https://github.com/friendica/friendica/archive/refs/tags/2023.12.tar.gz"
sha256 = "d55475628ae24aab1ee7ed3367d22b2fd3ee49200b5da276c69e97df2afbd943" sha256 = "d55475628ae24aab1ee7ed3367d22b2fd3ee49200b5da276c69e97df2afbd943"
autoupdate.strategy = "latest_github_tag" autoupdate.strategy = "latest_github_release"
[resources.sources.addons] [resources.sources.addons]
url = "https://github.com/friendica/friendica-addons/archive/refs/tags/2023.12.tar.gz" url = "https://github.com/friendica/friendica-addons/archive/refs/tags/2023.12.tar.gz"
sha256 = "d0228833584dd7dc0301ee04bd41728345c8051d84908849dea52ed04a7c8982" sha256 = "d0228833584dd7dc0301ee04bd41728345c8051d84908849dea52ed04a7c8982"
autoupdate.upstream = "https://github.com/friendica/friendica-addons"
autoupdate.strategy = "latest_github_tag"
[resources.system_user] [resources.system_user]
[resources.install_dir] [resources.install_dir]
[resources.permissions] [resources.permissions]
main.url = "/" main.url = "/"
[resources.apt] [resources.apt]
packages = "mariadb-server, php8.2-curl, php8.2-mbstring, php8.2-imagick, php8.2-xml, php8.2-zip, php8.2-mysql, php8.2-gd, php8.2-gmp" packages = "mariadb-server, php8.2-curl, php8.2-mbstring, php8.2-imagick, php8.2-xml, php8.2-zip, php8.2-mysql, php8.2-gd, php8.2-gmp, php8.2-intl"
[resources.database] [resources.database]
type = "mysql" type = "mysql"

View file

@ -15,9 +15,9 @@ source /usr/share/yunohost/helpers
#================================================= #=================================================
ynh_print_info --message="Declaring files to be backed up..." ynh_print_info --message="Declaring files to be backed up..."
(cd $install_dir && ynh_exec_as "$app" php$phpversion bin/console.php maintenance 1) (cd "$install_dir" && ynh_exec_as "$app" "php$phpversion" bin/console.php maintenance 1)
trap "(cd $install_dir && ynh_exec_as "$app" php$phpversion bin/console.php maintenance 0)" EXIT trap '(cd $install_dir && ynh_exec_as $app php$phpversion bin/console.php maintenance 0)' EXIT
#================================================= #=================================================
# BACKUP THE APP MAIN DIR # BACKUP THE APP MAIN DIR

View file

@ -13,7 +13,7 @@ source /usr/share/yunohost/helpers
# RETRIEVE ARGUMENTS FROM THE MANIFEST # RETRIEVE ARGUMENTS FROM THE MANIFEST
#================================================= #=================================================
email=$(ynh_user_get_info --username=$admin --key=mail) email=$(ynh_user_get_info --username="$admin" --key=mail)
timezone=$(cat /etc/timezone) timezone=$(cat /etc/timezone)
#================================================= #=================================================
@ -21,7 +21,7 @@ timezone=$(cat /etc/timezone)
#================================================= #=================================================
ynh_script_progression --message="Storing installation settings..." --weight=1 ynh_script_progression --message="Storing installation settings..." --weight=1
ynh_app_setting_set --app=$app --key=email --value=$email ynh_app_setting_set --app="$app" --key=email --value="$email"
#================================================= #=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE # DOWNLOAD, CHECK AND UNPACK SOURCE
@ -36,7 +36,9 @@ mkdir -p "$install_dir/view/smarty3"
chmod -R 775 "$install_dir/view/smarty3" chmod -R 775 "$install_dir/view/smarty3"
chmod -R o-rwx "$install_dir" chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir" chown -R "$app:www-data" "$install_dir"
ynh_add_config --template="local-sample.config.php" --destination="$install_dir/config/local.config.php"
#================================================= #=================================================
# SYSTEM CONFIGURATION # SYSTEM CONFIGURATION
@ -49,7 +51,7 @@ ynh_add_fpm_config
# Create a dedicated nginx config # Create a dedicated nginx config
ynh_add_nginx_config ynh_add_nginx_config
ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app" ynh_add_config --template="cron" --destination="/etc/cron.d/$app"
chown root: "/etc/cron.d/$app" chown root: "/etc/cron.d/$app"
chmod 644 "/etc/cron.d/$app" chmod 644 "/etc/cron.d/$app"
@ -65,7 +67,7 @@ ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failreg
ynh_script_progression --message="Adding the LDAP Auth addon configuration file..." --weight=1 ynh_script_progression --message="Adding the LDAP Auth addon configuration file..." --weight=1
# LDAP addon config # LDAP addon config
ynh_add_config --template="../conf/addon.config.php" --destination="$install_dir/config/addon.config.php" ynh_add_config --template="addon.config.php" --destination="$install_dir/config/addon.config.php"
#================================================= #=================================================
# INSTALL FRIENDICA # INSTALL FRIENDICA
@ -74,15 +76,15 @@ ynh_script_progression --message="Install Friendica..." --weight=1
pushd "$install_dir" pushd "$install_dir"
# Import Composer dependencies # Import Composer dependencies
ynh_exec_as "$app" php$phpversion bin/composer.phar install --no-dev --quiet ynh_exec_as "$app" "php$phpversion" bin/composer.phar install --no-dev --quiet
# Install application # Install application
ynh_exec_as "$app" php$phpversion bin/console.php autoinstall\ ynh_exec_as "$app" "php$phpversion" bin/console.php autoinstall\
--dbhost "localhost" --dbdata "$db_name" --dbuser "$db_user" --dbpass "$db_pwd"\ --dbhost "localhost" --dbdata "$db_name" --dbuser "$db_user" --dbpass "$db_pwd"\
--admin "$email" --tz "$timezone" --lang "$language" --url "https://$domain$path" --admin "$email" --tz "$timezone" --lang "$language" --url "https://$domain"
# Enable LDAP Auth addon # Enable LDAP Auth addon
ynh_exec_as "$app" php$phpversion bin/console.php addon enable ldapauth ynh_exec_as "$app" "php$phpversion" bin/console.php addon enable ldapauth
popd popd

View file

@ -17,7 +17,7 @@ ynh_script_progression --message="Restoring the app main directory..." --weight=
ynh_restore_file --origin_path="$install_dir" ynh_restore_file --origin_path="$install_dir"
chown -R $app:www-data "$install_dir" chown -R "$app:www-data" "$install_dir"
chmod -R 775 "$install_dir/view/smarty3" chmod -R 775 "$install_dir/view/smarty3"
#================================================= #=================================================
@ -25,7 +25,7 @@ chmod -R 775 "$install_dir/view/smarty3"
#================================================= #=================================================
ynh_script_progression --message="Restoring the MySQL database..." --weight=1 ynh_script_progression --message="Restoring the MySQL database..." --weight=1
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql ynh_mysql_connect_as --user="$db_user" --password="$db_pwd" --database="$db_name" < ./db.sql
#================================================= #=================================================
# RESTORE SYSTEM CONFIGURATIONS # RESTORE SYSTEM CONFIGURATIONS
@ -53,7 +53,7 @@ ynh_restore_file --origin_path="/etc/cron.d/$app"
#================================================= #=================================================
ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1
ynh_systemd_action --service_name=php$phpversion-fpm --action=reload ynh_systemd_action --service_name="php$phpversion-fpm" --action=reload
ynh_systemd_action --service_name=nginx --action=reload ynh_systemd_action --service_name=nginx --action=reload
@ -62,7 +62,7 @@ ynh_systemd_action --service_name=nginx --action=reload
#============== #==============
# exit maintenance mode since the app was backed up while in maintenance mode # exit maintenance mode since the app was backed up while in maintenance mode
(cd $install_dir && ynh_exec_as "$app" php$phpversion bin/console.php maintenance 0) (cd "$install_dir" && ynh_exec_as "$app" "php$phpversion" bin/console.php maintenance 0)
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT

View file

@ -20,7 +20,7 @@ upgrade_type=$(ynh_check_app_version_changed)
#================================================= #=================================================
ynh_script_progression --message="Stopping a systemd service..." --weight=1 ynh_script_progression --message="Stopping a systemd service..." --weight=1
ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" ynh_systemd_action --service_name="$app" --action="stop" --log_path="/var/log/$app/$app.log"
#================================================= #=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE # DOWNLOAD, CHECK AND UNPACK SOURCE
@ -36,7 +36,7 @@ then
fi fi
chmod -R o-rwx "$install_dir" chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir" chown -R "$app:www-data" "$install_dir"
#================================================= #=================================================
# REAPPLY SYSTEM CONFIGURATIONS # REAPPLY SYSTEM CONFIGURATIONS
@ -51,21 +51,31 @@ ynh_add_fpm_config
ynh_use_logrotate --non-append ynh_use_logrotate --non-append
ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app" ynh_add_config --template="cron" --destination="/etc/cron.d/$app"
chown root: "/etc/cron.d/$app" chown root: "/etc/cron.d/$app"
chmod 644 "/etc/cron.d/$app" chmod 644 "/etc/cron.d/$app"
# Create a dedicated Fail2Ban config # Create a dedicated Fail2Ban config
ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="^.*authenticate\: failed login attempt.*\"ip\"\:\"<HOST>\".*$" ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="^.*authenticate\: failed login attempt.*\"ip\"\:\"<HOST>\".*$"
#=================================================
# UPDATE A CONFIG FILE
#=================================================
ynh_script_progression --message="Updating a configuration file..." --weight=1
# fix the url if necessary (there should be no trailing slash)
if [ -f "$install_dir/config/local.config.php" ] && ! grep -q -e "'url' => 'https://$domain'," "$install_dir/config/local.config.php"; then
ynh_replace_string --match_string="'url' => 'https://.*'," --replace_string="'url' => 'https://$domain'," --target_file="$install_dir/config/local.config.php"
fi
#================================================= #=================================================
# STORE THE CONFIG FILE CHECKSUM # STORE THE CONFIG FILE CHECKSUM
#================================================= #=================================================
# Run Composer # Run Composer
pushd "$install_dir" pushd "$install_dir"
ynh_exec_as "$app" php$phpversion bin/composer.phar install --no-dev --quiet ynh_exec_as "$app" "php$phpversion" bin/composer.phar install --no-dev --quiet
ynh_exec_as "$app" php$phpversion bin/console.php dbstructure update ynh_exec_as "$app" "php$phpversion" bin/console.php dbstructure update
popd popd
#================================================= #=================================================