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
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.
**Shipped version:** 2023.12~ynh1
**Shipped version:** 2023.12~ynh2
**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
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.
**Version incluse :** 2023.12~ynh1
**Version incluse :** 2023.12~ynh2
**Démo :** https://dir.friendica.social/servers

View file

@ -32,7 +32,7 @@ return [
// ****************************************************************
'config' => [
'php_path' => '/usr/bin/php'
'php_path' => '/usr/bin/php',
'admin_email' => '__EMAIL__',
'sitename' => 'Friendica Social Network',
'register_policy' => \Friendica\Module\Register::OPEN,
@ -40,7 +40,7 @@ return [
],
'system' => [
'url' => 'https://__DOMAIN__',
'basepath' => '__INSTALL_DIR__'
'basepath' => '__INSTALL_DIR__',
'default_timezone' => '__TIMEZONE__',
'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) {
rewrite ^(.*)$ /index.php?pagename=$1;
}
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?pagename=$1;
}
#allow uploads up to 20MB in size
client_max_body_size 50M;
client_body_buffer_size 128k;
#allow uploads up to 20MB in size
client_max_body_size 50M;
client_body_buffer_size 128k;
#Default indexes and catch-all
index index.php;
#Default indexes and catch-all
index index.php;
# make sure webfinger and other well known services aren't blocked
# by denying dot files and rewrite request to the front controller
location ^~ /.well-known/ {
allow all;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?pagename=$1;
}
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?pagename=$1;
}
}
include mime.types;
@ -30,15 +29,15 @@ location __PATH__/ {
deny all;
}
#Execute and serve PHP files
location ~* \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
#Execute and serve PHP files
location ~* \.php$ {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# deny access to all dot files
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 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 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.

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 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 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.

View file

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

View file

@ -15,9 +15,9 @@ source /usr/share/yunohost/helpers
#=================================================
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

View file

@ -13,7 +13,7 @@ source /usr/share/yunohost/helpers
# 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)
#=================================================
@ -21,7 +21,7 @@ timezone=$(cat /etc/timezone)
#=================================================
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
@ -36,7 +36,9 @@ mkdir -p "$install_dir/view/smarty3"
chmod -R 775 "$install_dir/view/smarty3"
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
@ -49,7 +51,7 @@ ynh_add_fpm_config
# Create a dedicated 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"
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
# 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
@ -74,15 +76,15 @@ ynh_script_progression --message="Install Friendica..." --weight=1
pushd "$install_dir"
# 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
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"\
--admin "$email" --tz "$timezone" --lang "$language" --url "https://$domain$path"
--admin "$email" --tz "$timezone" --lang "$language" --url "https://$domain"
# 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

View file

@ -17,7 +17,7 @@ ynh_script_progression --message="Restoring the app main directory..." --weight=
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"
#=================================================
@ -25,7 +25,7 @@ chmod -R 775 "$install_dir/view/smarty3"
#=================================================
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
@ -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_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
@ -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
(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

View file

@ -20,7 +20,7 @@ upgrade_type=$(ynh_check_app_version_changed)
#=================================================
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
@ -36,7 +36,7 @@ then
fi
chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir"
chown -R "$app:www-data" "$install_dir"
#=================================================
# REAPPLY SYSTEM CONFIGURATIONS
@ -51,21 +51,31 @@ ynh_add_fpm_config
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"
chmod 644 "/etc/cron.d/$app"
# Create a dedicated Fail2Ban config
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
#=================================================
# Run Composer
pushd "$install_dir"
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/composer.phar install --no-dev --quiet
ynh_exec_as "$app" "php$phpversion" bin/console.php dbstructure update
popd
#=================================================