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

Merge pull request #67 from YunoHost-Apps/testing

This commit is contained in:
Salamandar 2024-07-10 17:37:39 +02:00 committed by GitHub
commit 907aff9e09
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 121 additions and 104 deletions

View file

@ -5,7 +5,7 @@ It shall NOT be edited by hand.
# Movim for YunoHost
[![Integration level](https://dash.yunohost.org/integration/movim.svg)](https://dash.yunohost.org/appci/app/movim) ![Working status](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Integration level](https://dash.yunohost.org/integration/movim.svg)](https://ci-apps.yunohost.org/ci/apps/movim/) ![Working status](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Install Movim with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=movim)
@ -19,7 +19,7 @@ It shall NOT be edited by hand.
Web-based cross-platform XMPP client
**Shipped version:** 0.19~ynh6
**Shipped version:** 0.25.1~ynh1
**Demo:** <https://nl.movim.eu/?login>

View file

@ -5,7 +5,7 @@ No se debe editar a mano.
# Movim para Yunohost
[![Nivel de integración](https://dash.yunohost.org/integration/movim.svg)](https://dash.yunohost.org/appci/app/movim) ![Estado funcional](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Estado En Mantención](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Nivel de integración](https://dash.yunohost.org/integration/movim.svg)](https://ci-apps.yunohost.org/ci/apps/movim/) ![Estado funcional](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Estado En Mantención](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Instalar Movim con Yunhost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=movim)
@ -19,7 +19,7 @@ No se debe editar a mano.
Web-based cross-platform XMPP client
**Versión actual:** 0.19~ynh6
**Versión actual:** 0.25.1~ynh1
**Demo:** <https://nl.movim.eu/?login>

View file

@ -5,7 +5,7 @@ EZ editatu eskuz.
# Movim YunoHost-erako
[![Integrazio maila](https://dash.yunohost.org/integration/movim.svg)](https://dash.yunohost.org/appci/app/movim) ![Funtzionamendu egoera](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Mantentze egoera](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Integrazio maila](https://dash.yunohost.org/integration/movim.svg)](https://ci-apps.yunohost.org/ci/apps/movim/) ![Funtzionamendu egoera](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Mantentze egoera](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Instalatu Movim YunoHost-ekin](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=movim)
@ -19,7 +19,7 @@ EZ editatu eskuz.
Web-based cross-platform XMPP client
**Paketatutako bertsioa:** 0.19~ynh6
**Paketatutako bertsioa:** 0.25.1~ynh1
**Demoa:** <https://nl.movim.eu/?login>

View file

@ -5,7 +5,7 @@ Il NE doit PAS être modifié à la main.
# Movim pour YunoHost
[![Niveau dintégration](https://dash.yunohost.org/integration/movim.svg)](https://dash.yunohost.org/appci/app/movim) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Niveau dintégration](https://dash.yunohost.org/integration/movim.svg)](https://ci-apps.yunohost.org/ci/apps/movim/) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Installer Movim avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=movim)
@ -19,7 +19,7 @@ Il NE doit PAS être modifié à la main.
Client XMPP multiplateforme basé sur le Web
**Version incluse:** 0.19~ynh6
**Version incluse:** 0.25.1~ynh1
**Démo:** <https://nl.movim.eu/?login>

View file

@ -5,7 +5,7 @@ NON debe editarse manualmente.
# Movim para YunoHost
[![Nivel de integración](https://dash.yunohost.org/integration/movim.svg)](https://dash.yunohost.org/appci/app/movim) ![Estado de funcionamento](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Estado de mantemento](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Nivel de integración](https://dash.yunohost.org/integration/movim.svg)](https://ci-apps.yunohost.org/ci/apps/movim/) ![Estado de funcionamento](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![Estado de mantemento](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![Instalar Movim con YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=movim)
@ -19,7 +19,7 @@ NON debe editarse manualmente.
Web-based cross-platform XMPP client
**Versión proporcionada:** 0.19~ynh6
**Versión proporcionada:** 0.25.1~ynh1
**Demo:** <https://nl.movim.eu/?login>

View file

@ -5,7 +5,7 @@
# YunoHost 上的 Movim
[![集成程度](https://dash.yunohost.org/integration/movim.svg)](https://dash.yunohost.org/appci/app/movim) ![工作状态](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![维护状态](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![集成程度](https://dash.yunohost.org/integration/movim.svg)](https://ci-apps.yunohost.org/ci/apps/movim/) ![工作状态](https://ci-apps.yunohost.org/ci/badges/movim.status.svg) ![维护状态](https://ci-apps.yunohost.org/ci/badges/movim.maintain.svg)
[![使用 YunoHost 安装 Movim](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=movim)
@ -19,7 +19,7 @@
Web-based cross-platform XMPP client
**分发版本:** 0.19~ynh6
**分发版本:** 0.25.1~ynh1
**演示:** <https://nl.movim.eu/?login>

View file

@ -1,17 +0,0 @@
<?php
# This is the database configuration of Movim
# You need to copy an rename this file to 'db.inc.php' and complete the values
$conf = [
# The type can be 'pgsql' or 'mysql'
'type' => 'pgsql',
# The database username
'username' => '__DB_USER__',
# The password
'password' => '__DB_PWD__',
# Where can we find the database ?
'host' => 'localhost',
# The port number, 3306 for MySQL and 5432 for PostgreSQL
'port' => 5432,
# The database name
'database' => '__DB_NAME__'
];

14
conf/dot_env Normal file
View file

@ -0,0 +1,14 @@
# Database configuration
DB_DRIVER=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=__DB_NAME__
DB_USERNAME=__DB_USER__
DB_PASSWORD=__DB_PWD__
# Daemon configuration
DAEMON_URL=https://__DOMAIN____PATH__/
DAEMON_PORT=__PORT__
DAEMON_INTERFACE=127.0.0.1
DAEMON_DEBUG=false
DAEMON_VERBOSE=false

View file

@ -1,45 +1,45 @@
#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent;
location __PATH__/ {
# Path to source
alias __INSTALL_DIR__/public/;
# Path to source
alias __INSTALL_DIR__/public/;
more_set_headers "Access-Control-Allow-Origin: *";
index index.php;
index index.php;
try_files $uri $uri/ __PATH__/index.php;
# Common parameter to increase upload size limit in conjunction with dedicated php-fpm file
client_max_body_size 100M;
location ~ [^/]\.php(/|$) {
# more_set_headers X-Cache $upstream_cache_status;
# fastcgi_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
# fastcgi_cache nginx_cache;
# fastcgi_cache_valid any 7d;
# fastcgi_cache_bypass $no_cache;
# fastcgi_no_cache $no_cache;
try_files $uri $uri/ index.php;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
location __PATH__/ws/ {
proxy_pass http://127.0.0.1:__PORT__;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
location __PATH__/ws/ {
proxy_pass http://127.0.0.1:__PORT__/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
}
# To avoid disconnecting after 60sec :
proxy_read_timeout 14400s;
proxy_send_timeout 14400s;
# (14400s is 4h)
}
# Include SSOWAT user panel.
include conf.d/yunohost_panel.conf.inc;
# Include SSOWAT user panel.
include conf.d/yunohost_panel.conf.inc;
}

View file

@ -6,10 +6,8 @@ After=nginx.service network.target local-fs.target
Type=simple
User=__APP__
Group=__APP__
Environment=PUBLIC_URL=https://__DOMAIN____PATH__/
Environment=WS_PORT=__PORT__
WorkingDirectory=__INSTALL_DIR__/
ExecStart=/usr/bin/php__PHPVERSION__ daemon.php start --url=${PUBLIC_URL} --port=${WS_PORT}
ExecStart=/usr/bin/php__PHPVERSION__ daemon.php start
StandardOutput=syslog
SyslogIdentifier=__APP__
PIDFile=/run/movim.pid

View file

@ -1 +1,6 @@
The app can be configured at <https://__DOMAIN____PATH__/?admin> using the username and password defined during the installation.
A Jabber user can be set as admin by running this command (they need to login once before):
```
sudo -u __APP__ php__PHPVERSION__ __INSTALL_DIR__/daemon.php setAdmin <your jabber id>
```
The app can be configured at <https://__DOMAIN____PATH__/?admin>.

View file

@ -1 +1,6 @@
L'application peut être configurée sur <https://__DOMAIN____PATH__/?admin> en utilisant le nom d'utilisateur et le mot de passe définis lors de l'installation.
Un utilisateur Jabber peut être mis admini via cette commande (iel doit s'être loggué une fois avant):
```
sudo -u __APP__ php__PHPVERSION__ __INSTALL_DIR__/daemon.php setAdmin <your jabber id>
```
L'application peut être configurée sur <https://__DOMAIN____PATH__/?admin>.

6
doc/POST_INSTALL.md Normal file
View file

@ -0,0 +1,6 @@
No user was set as admin! You need to login once, and then run this command:
```
sudo -u __APP__ php__PHPVERSION__ __INSTALL_DIR__/daemon.php setAdmin <your jabber id>
```
As described here: https://github.com/movim/movim/blob/master/INSTALL.md .

View file

@ -7,7 +7,7 @@ name = "Movim"
description.en = "Decentralized social platform based on XMPP"
description.fr = "Plateforme sociale décentralisée basée sur XMPP"
version = "0.19~ynh6"
version = "0.25.1~ynh1"
maintainers = []
@ -35,24 +35,14 @@ ram.runtime = "50M"
[install.domain]
type = "domain"
[install.path]
type = "path"
default = "/movim"
[install.init_main_permission]
type = "group"
default = "visitors"
[install.admin]
type = "user"
[install.password]
type = "password"
[resources]
[resources.sources.main]
url = "https://github.com/movim/movim/archive/v0.19.tar.gz"
sha256 = "df98b5b0df6fd6bfa5fda88f387ac017bc7bcead42c462745296604f3e0ee501"
url = "https://github.com/movim/movim/archive/refs/tags/v0.25.1.tar.gz"
sha256 = "94692ef5effcf5a42b340fdc2cb9e2d0cb43824fdef82f9cc4a0c4d5c6c80d35"
autoupdate.strategy = "latest_github_tag"
@ -67,12 +57,12 @@ ram.runtime = "50M"
[resources.apt]
packages = [
"php7.4-curl",
"php7.4-mbstring",
"php7.4-imagick",
"php7.4-gd",
"php7.4-pgsql",
"php7.4-xml",
"php8.2-curl",
"php8.2-mbstring",
"php8.2-imagick",
"php8.2-gd",
"php8.2-pgsql",
"php8.2-xml",
"postgresql",
"postgresql-contrib",
"apt-transport-https",

View file

@ -4,7 +4,7 @@
# COMMON VARIABLES
#=================================================
YNH_COMPOSER_VERSION="2.2.5"
YNH_COMPOSER_VERSION="2.7.7"
#=================================================
# PERSONAL HELPERS

View file

@ -23,6 +23,7 @@ ynh_app_setting_set --app="$app" --key=fpm_usage --value="$fpm_usage"
#=================================================
ynh_script_progression --message="Configuring $app's PostgreSQL database..."
# FIXME: is it actually required?
ynh_psql_execute_as_root --database="$db_name" --sql="CREATE EXTENSION IF NOT EXISTS unaccent;"
ynh_psql_execute_as_root --database="$db_name" --sql="CREATE EXTENSION IF NOT EXISTS pg_trgm;"
@ -34,8 +35,11 @@ ynh_script_progression --message="Setting up source files..."
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$install_dir"
# Temporary workaround to fix movim.ERROR: Error: Call to undefined function GuzzleHttp\Psr7\uri_for()
ynh_replace_string --match_string="0.3.5" --replace_string="0.4.1" --target_file="$install_dir/composer.json"
# Patch call to php in composer
ynh_replace_string -f "$install_dir/composer.json" --match_string='"vendor/bin/phinx' --replace_string='"@php vendor/bin/phinx'
# Patch call to php in daemon code
ynh_replace_string -f "$install_dir/src/Movim/Daemon/Session.php" --match_string="exec php" --replace_string="exec php$phpversion"
chmod -R o-rwx "$install_dir"
chown -R "$app:www-data" "$install_dir"
@ -45,10 +49,10 @@ chown -R "$app:www-data" "$install_dir"
#=================================================
ynh_script_progression --message="Adding $app's configuration file..."
ynh_add_config --template="db.example.inc.php" --destination="$install_dir/config/db.inc.php"
ynh_add_config --template="dot_env" --destination="$install_dir/.env"
chmod 400 "$install_dir/config/db.inc.php"
chown "$app:$app" "$install_dir/config/db.inc.php"
chmod 400 "$install_dir/.env"
chown "$app:$app" "$install_dir/.env"
#=================================================
# BUILD MOVIM
@ -58,8 +62,9 @@ ynh_script_progression --message="Building Movim..."
# Install composer
ynh_install_composer
ynh_exec_warn_less ynh_composer_exec --commands="movim:migrate"
ynh_exec_as "$app" "php$phpversion" "$install_dir/daemon.php" config --username="$admin" --password="$password" --quiet
COMPOSER_ALLOW_SUPERUSER=1 ynh_exec_warn_less ynh_composer_exec --commands="movim:migrate"
chmod -R o-rwx "$install_dir"
chown -R "$app:www-data" "$install_dir"
#=================================================
# SYSTEM CONFIGURATION

View file

@ -37,16 +37,27 @@ if [ -z "${fpm_usage:-}" ]; then
ynh_app_setting_set --app="$app" --key=fpm_usage --value="$fpm_usage"
fi
if [ -f "$install_dir/config/db.inc.php" ]; then
ynh_secure_remove --file="$install_dir/config/db.inc.php"
fi
if [[ -n "${path:-}" ]] && [[ "${path:-}" != "/" ]]; then
ynh_die --message="Movim can't be installed in a subdir anymore. Please change_url to the root of a domain before upgrading."
fi
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_script_progression --message="Upgrading source files..."
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$install_dir" --full_replace=1 --keep="config/db.inc.php"
ynh_setup_source --dest_dir="$install_dir" --full_replace=1 --keep=".env"
# Temporary workaround to fix movim.ERROR: Error: Call to undefined function GuzzleHttp\Psr7\uri_for()
ynh_replace_string --match_string="0.3.5" --replace_string="0.4.1" --target_file="$install_dir/composer.json"
# Patch call to php in composer
ynh_replace_string -f "$install_dir/composer.json" --match_string='"vendor/bin/phinx' --replace_string='"@php vendor/bin/phinx'
# Patch call to php in daemon code
ynh_replace_string -f "$install_dir/src/Movim/Daemon/Session.php" --match_string="exec php" --replace_string="exec php$phpversion"
chmod -R o-rwx "$install_dir"
chown -R "$app:www-data" "$install_dir"
@ -56,10 +67,10 @@ chown -R "$app:www-data" "$install_dir"
#=================================================
ynh_script_progression --message="Updating $app's configuration file..."
ynh_add_config --template="db.example.inc.php" --destination="$install_dir/config/db.inc.php"
ynh_add_config --template="dot_env" --destination="$install_dir/.env"
chmod 400 "$install_dir/config/db.inc.php"
chown "$app:$app" "$install_dir/config/db.inc.php"
chmod 400 "$install_dir/.env"
chown "$app:$app" "$install_dir/.env"
#=================================================
# BUILD MOVIM
@ -68,9 +79,9 @@ ynh_script_progression --message="Building Movim..."
ynh_exec_warn_less ynh_install_composer
ynh_exec_warn_less ynh_composer_exec --commands="config --global discard-changes true --quiet"
ynh_exec_warn_less ynh_composer_exec --commands="update --no-interaction --quiet"
ynh_exec_warn_less ynh_composer_exec --commands="movim:migrate --quiet"
COMPOSER_ALLOW_SUPERUSER=1 ynh_exec_warn_less ynh_composer_exec --commands="config --global discard-changes true --quiet"
COMPOSER_ALLOW_SUPERUSER=1 ynh_exec_warn_less ynh_composer_exec --commands="update --no-interaction --quiet"
COMPOSER_ALLOW_SUPERUSER=1 ynh_exec_warn_less ynh_composer_exec --commands="movim:migrate --quiet"
#=================================================
# REAPPLY SYSTEM CONFIGURATIONS