mirror of
https://github.com/YunoHost-Apps/ghost_ynh.git
synced 2024-09-03 19:16:02 +02:00
commit
d386b9daea
9 changed files with 26 additions and 182 deletions
11
README.md
11
README.md
|
@ -1,16 +1,15 @@
|
||||||
# Ghost for YunoHost
|
# Ghost for YunoHost
|
||||||
|
|
||||||
[](https://dash.yunohost.org/appci/app/ghost)  
|
[](https://dash.yunohost.org/appci/app/ghost)  
|
||||||
|
|
||||||
[](https://install-app.yunohost.org/?app=ghost)
|
[](https://install-app.yunohost.org/?app=ghost)
|
||||||
|
|
||||||
> *This package allows you to install Ghost quickly and simply on a YunoHost server.
|
> *This package allows you to install Ghost quickly and simply on a YunoHost server.
|
||||||
If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.*
|
If you don't have YunoHost, please consult [the guide](https://yunohost.org/install) to learn how to install it.*
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
Ghost is a fully open source, adaptable platform for building and running a modern online publication.
|
Ghost is a fully open source, adaptable platform for building and running a modern online publication.
|
||||||
|
|
||||||
**Shipped version:** 3.41.8
|
**Shipped version:** 4.3.3
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
|
@ -44,8 +43,8 @@ Ghost is a fully open source, adaptable platform for building and running a mode
|
||||||
|
|
||||||
#### Supported architectures
|
#### Supported architectures
|
||||||
|
|
||||||
* x86-64 - [](https://ci-apps.yunohost.org/ci/apps/ghost/)
|
* x86-64 - [](https://ci-apps.yunohost.org/ci/apps/ghost/)
|
||||||
* ARMv8-A - [](https://ci-apps-arm.yunohost.org/ci/apps/ghost/)
|
* ARMv8-A - [](https://ci-apps-arm.yunohost.org/ci/apps/ghost/)
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
upgrade=1 from_commit=6e4b84cabe351f9c62678089f236f1b3bb21d543
|
upgrade=1 from_commit=6e4b84cabe351f9c62678089f236f1b3bb21d543
|
||||||
backup_restore=1
|
backup_restore=1
|
||||||
multi_instance=1
|
multi_instance=1
|
||||||
port_already_use=0
|
|
||||||
change_url=0
|
change_url=0
|
||||||
;;; Options
|
;;; Options
|
||||||
Email=
|
Email=
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
SOURCE_URL=https://github.com/TryGhost/Admin/archive/3.41.8.zip
|
SOURCE_URL=https://github.com/TryGhost/Admin/archive/v4.3.3.zip
|
||||||
SOURCE_SUM=252080e8b4fdc558300b2d33701735a3e2a6d7d82ef66a5eeb9b651a488c67e0
|
SOURCE_SUM=b5f6a125ec9c9bf26a5035a39b947f1d520621d5c7994aab6f6bcf54a3bc8e1e
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FORMAT=zip
|
SOURCE_FORMAT=zip
|
||||||
SOURCE_IN_SUBDIR=false
|
SOURCE_IN_SUBDIR=false
|
||||||
SOURCE_FILENAME=
|
SOURCE_FILENAME=
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
SOURCE_URL=https://github.com/TryGhost/Ghost/releases/download/3.41.8/Ghost-3.41.8.zip
|
SOURCE_URL=https://github.com/TryGhost/Ghost/releases/download/v4.3.3/Ghost-4.3.3.zip
|
||||||
SOURCE_SUM=e650e3d55155c5974a8c3e58bf996c523be51b3a38f9728517b14d9114e0106a
|
SOURCE_SUM=7b3acd2acdbb26521c0ec6c717484c173b8751bcd054018e5a335495426338c8
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FORMAT=zip
|
SOURCE_FORMAT=zip
|
||||||
SOURCE_IN_SUBDIR=false
|
SOURCE_IN_SUBDIR=false
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"en": "Just a blogging platform",
|
"en": "Just a blogging platform",
|
||||||
"fr": "Plateforme de blogging"
|
"fr": "Plateforme de blogging"
|
||||||
},
|
},
|
||||||
"version": "3.41.8~ynh1",
|
"version": "4.3.3~ynh1",
|
||||||
"url": "https://ghost.org/",
|
"url": "https://ghost.org/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"maintainer": {
|
"maintainer": {
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
"email": "julien.malik@paraiso.me"
|
"email": "julien.malik@paraiso.me"
|
||||||
},
|
},
|
||||||
"requirements": {
|
"requirements": {
|
||||||
"yunohost": ">= 3.8.1"
|
"yunohost": ">= 4.1.7"
|
||||||
},
|
},
|
||||||
"multi_instance": true,
|
"multi_instance": true,
|
||||||
"services": [
|
"services": [
|
||||||
|
@ -26,29 +26,17 @@
|
||||||
{
|
{
|
||||||
"name": "domain",
|
"name": "domain",
|
||||||
"type": "domain",
|
"type": "domain",
|
||||||
"ask": {
|
|
||||||
"en": "Choose a domain for Ghost",
|
|
||||||
"fr": "Choisissez un domaine pour Ghost"
|
|
||||||
},
|
|
||||||
"example": "domain.org"
|
"example": "domain.org"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "path",
|
"name": "path",
|
||||||
"type": "path",
|
"type": "path",
|
||||||
"ask": {
|
|
||||||
"en": "Choose a path for Ghost",
|
|
||||||
"fr": "Choisissez un chemin pour Ghost"
|
|
||||||
},
|
|
||||||
"example": "/blog",
|
"example": "/blog",
|
||||||
"default": "/blog"
|
"default": "/blog"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "is_public",
|
"name": "is_public",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"ask": {
|
|
||||||
"en": "Is it a public application?",
|
|
||||||
"fr": "Est-ce une application publique ?"
|
|
||||||
},
|
|
||||||
"default": true
|
"default": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source ynh_add_config
|
|
||||||
source ynh_send_readme_to_admin__2
|
source ynh_send_readme_to_admin__2
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
@ -49,7 +48,6 @@ ynh_script_progression --message="Storing installation settings..." --weight=1
|
||||||
|
|
||||||
ynh_app_setting_set --app=$app --key=domain --value=$domain
|
ynh_app_setting_set --app=$app --key=domain --value=$domain
|
||||||
ynh_app_setting_set --app=$app --key=path --value=$path_url
|
ynh_app_setting_set --app=$app --key=path --value=$path_url
|
||||||
ynh_app_setting_set --app=$app --key=is_public --value=$is_public
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD MODIFICATIONS
|
# STANDARD MODIFICATIONS
|
||||||
|
@ -176,14 +174,14 @@ ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --l
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SSOWAT
|
# SETUP SSOWAT
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Configuring SSOwat..."
|
ynh_script_progression --message="Configuring permissions..."
|
||||||
|
|
||||||
if [ $is_public -eq 1 ]
|
if [ $is_public -eq 1 ]
|
||||||
then
|
then
|
||||||
ynh_permission_update --permission="main" --add="visitors"
|
ynh_permission_update --permission="main" --add="visitors"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_permission_create --permission="admin" --url="/ghost" --allowed="visitors" --auth_header="false" --protected="true"
|
ynh_permission_create --permission="admin" --url="/ghost" --allowed="visitors" --auth_header="false" --protected="true"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
|
@ -197,8 +195,8 @@ ynh_systemd_action --service_name=nginx --action=reload
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_print_info --message="Sending a readme for the admin..."
|
ynh_print_info --message="Sending a readme for the admin..."
|
||||||
|
|
||||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="../conf/message"
|
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="../conf/message"
|
||||||
ynh_replace_string --match_string="__PATH_URL__" --replace_string="$path_url" --target_file="../conf/message"
|
ynh_replace_string --match_string="__PATH_URL__" --replace_string="$path_url" --target_file="../conf/message"
|
||||||
|
|
||||||
ynh_send_readme_to_admin --app_message="../conf/message"
|
ynh_send_readme_to_admin --app_message="../conf/message"
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ yunohost service add $app --description="$app daemon for Ghost" --log="/var/log/
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Starting a systemd service..."
|
ynh_script_progression --message="Starting a systemd service..."
|
||||||
|
|
||||||
ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Ghost boot"
|
ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Ghost boot"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALIZATION
|
# GENERIC FINALIZATION
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source ynh_add_config
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -19,7 +18,6 @@ app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||||
is_public=$(ynh_app_setting_get --app=$app --key=is_public)
|
|
||||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||||
|
@ -38,21 +36,19 @@ upgrade_type=$(ynh_check_app_version_changed)
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Ensuring downward compatibility..."
|
ynh_script_progression --message="Ensuring downward compatibility..."
|
||||||
|
|
||||||
# Fix is_public as a boolean value
|
|
||||||
if [ "$is_public" = "Yes" ]; then
|
|
||||||
ynh_app_setting_set --app=$app --key=is_public --value=1
|
|
||||||
is_public=1
|
|
||||||
elif [ "$is_public" = "No" ]; then
|
|
||||||
ynh_app_setting_set --app=$app --key=is_public --value=0
|
|
||||||
is_public=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If db_name doesn't exist, create it
|
# If db_name doesn't exist, create it
|
||||||
if [ -z "$db_name" ]; then
|
if [ -z "$db_name" ]; then
|
||||||
db_name=$(ynh_sanitize_dbid --db_name=$app)
|
db_name=$(ynh_sanitize_dbid --db_name=$app)
|
||||||
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
|
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Cleaning legacy permissions
|
||||||
|
if ynh_legacy_permissions_exists; then
|
||||||
|
ynh_legacy_permissions_delete_all
|
||||||
|
|
||||||
|
ynh_app_setting_delete --app=$app --key=is_public
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -75,7 +71,7 @@ ynh_abort_if_errors
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Stopping a systemd service..."
|
ynh_script_progression --message="Stopping a systemd service..."
|
||||||
|
|
||||||
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
|
||||||
|
@ -200,7 +196,7 @@ yunohost service add $app --description="$app daemon for Ghost" --log="/var/log/
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Starting a systemd service..."
|
ynh_script_progression --message="Starting a systemd service..."
|
||||||
|
|
||||||
ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Ghost boot"
|
ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Ghost boot"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# RELOAD NGINX
|
||||||
|
|
|
@ -1,137 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Create a dedicated config file from a template
|
|
||||||
#
|
|
||||||
# examples:
|
|
||||||
# ynh_add_config --template=".env" --destination="$final_path/.env"
|
|
||||||
# ynh_add_config --template="../conf/.env" --destination="$final_path/.env"
|
|
||||||
# ynh_add_config --template="/etc/nginx/sites-available/default" --destination="etc/nginx/sites-available/mydomain.conf"
|
|
||||||
#
|
|
||||||
# usage: ynh_add_config --template="template" --destination="destination"
|
|
||||||
# | arg: -t, --template= - Template config file to use
|
|
||||||
# | arg: -d, --destination= - Destination of the config file
|
|
||||||
#
|
|
||||||
# The template can be by default the name of a file in the conf directory
|
|
||||||
# of a YunoHost Package, a relative path or an absolute path
|
|
||||||
# The helper will use the template $template to generate a config file
|
|
||||||
# $destination by replacing the following keywords with global variables
|
|
||||||
# that should be defined before calling this helper :
|
|
||||||
# __PATH__ by $path_url
|
|
||||||
# __NAME__ by $app
|
|
||||||
# __NAMETOCHANGE__ by $app
|
|
||||||
# __USER__ by $app
|
|
||||||
# __FINALPATH__ by $final_path
|
|
||||||
# __PHPVERSION__ by $YNH_PHP_VERSION
|
|
||||||
#
|
|
||||||
# And any dynamic variables that should be defined before calling this helper like:
|
|
||||||
# __DOMAIN__ by $domain
|
|
||||||
# __APP__ by $app
|
|
||||||
# __VAR_1__ by $var_1
|
|
||||||
# __VAR_2__ by $var_2
|
|
||||||
#
|
|
||||||
# The helper will verify the checksum and backup the destination file
|
|
||||||
# if it's different before applying the new template.
|
|
||||||
# And it will calculate and store the destination file checksum
|
|
||||||
# into the app settings when configuration is done.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
ynh_add_config () {
|
|
||||||
# Declare an array to define the options of this helper.
|
|
||||||
local legacy_args=tdv
|
|
||||||
local -A args_array=( [t]=template= [d]=destination= )
|
|
||||||
local template
|
|
||||||
local destination
|
|
||||||
# Manage arguments with getopts
|
|
||||||
ynh_handle_getopts_args "$@"
|
|
||||||
local template_path
|
|
||||||
|
|
||||||
if [ -f "../conf/$template" ]; then
|
|
||||||
template_path="../conf/$template"
|
|
||||||
elif [ -f "../settings/conf/$template" ]; then
|
|
||||||
template_path="../settings/conf/$template"
|
|
||||||
elif [ -f "$template" ]; then
|
|
||||||
template_path=$template
|
|
||||||
else
|
|
||||||
ynh_die --message="The provided template $template doesn't exist"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ynh_backup_if_checksum_is_different --file="$destination"
|
|
||||||
|
|
||||||
cp "$template_path" "$destination"
|
|
||||||
|
|
||||||
ynh_replace_vars --file="$destination"
|
|
||||||
|
|
||||||
ynh_store_file_checksum --file="$destination"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Replace variables in a file
|
|
||||||
#
|
|
||||||
# usage: ynh_replace_vars --file="file"
|
|
||||||
# | arg: -f, --file= - File where to replace variables
|
|
||||||
#
|
|
||||||
# The helper will replace the following keywords with global variables
|
|
||||||
# that should be defined before calling this helper :
|
|
||||||
# __PATH__ by $path_url
|
|
||||||
# __NAME__ by $app
|
|
||||||
# __NAMETOCHANGE__ by $app
|
|
||||||
# __USER__ by $app
|
|
||||||
# __FINALPATH__ by $final_path
|
|
||||||
# __PHPVERSION__ by $YNH_PHP_VERSION
|
|
||||||
#
|
|
||||||
# And any dynamic variables that should be defined before calling this helper like:
|
|
||||||
# __DOMAIN__ by $domain
|
|
||||||
# __APP__ by $app
|
|
||||||
# __VAR_1__ by $var_1
|
|
||||||
# __VAR_2__ by $var_2
|
|
||||||
#
|
|
||||||
#
|
|
||||||
ynh_replace_vars () {
|
|
||||||
# Declare an array to define the options of this helper.
|
|
||||||
local legacy_args=f
|
|
||||||
local -A args_array=( [f]=file= )
|
|
||||||
local file
|
|
||||||
# Manage arguments with getopts
|
|
||||||
ynh_handle_getopts_args "$@"
|
|
||||||
|
|
||||||
# Replace specific YunoHost variables
|
|
||||||
if test -n "${path_url:-}"
|
|
||||||
then
|
|
||||||
# path_url_slash_less is path_url, or a blank value if path_url is only '/'
|
|
||||||
local path_url_slash_less=${path_url%/}
|
|
||||||
ynh_replace_string --match_string="__PATH__/" --replace_string="$path_url_slash_less/" --target_file="$file"
|
|
||||||
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file="$file"
|
|
||||||
fi
|
|
||||||
if test -n "${app:-}"; then
|
|
||||||
ynh_replace_string --match_string="__NAME__" --replace_string="$app" --target_file="$file"
|
|
||||||
ynh_replace_string --match_string="__NAMETOCHANGE__" --replace_string="$app" --target_file="$file"
|
|
||||||
ynh_replace_string --match_string="__USER__" --replace_string="$app" --target_file="$file"
|
|
||||||
fi
|
|
||||||
if test -n "${final_path:-}"; then
|
|
||||||
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$file"
|
|
||||||
fi
|
|
||||||
if test -n "${YNH_PHP_VERSION:-}"; then
|
|
||||||
ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$YNH_PHP_VERSION" --target_file="$file"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Replace othes variables
|
|
||||||
|
|
||||||
# List other unique (__ __) variables in $file
|
|
||||||
local uniques_vars=( $(grep -o '__[A-Z0-9_]*__' $file | sort --unique | sed "s@__\([^.]*\)__@\L\1@g" ))
|
|
||||||
|
|
||||||
# Do the replacement
|
|
||||||
local delimit=@
|
|
||||||
for one_var in "${uniques_vars[@]}"
|
|
||||||
do
|
|
||||||
# Validate that one_var is indeed defined
|
|
||||||
test -n "${!one_var:-}" || ynh_die --message="\$$one_var wasn't initialized when trying to replace __${one_var^^}__ in $file"
|
|
||||||
|
|
||||||
# Escape delimiter in match/replace string
|
|
||||||
match_string="__${one_var^^}__"
|
|
||||||
match_string=${match_string//${delimit}/"\\${delimit}"}
|
|
||||||
replace_string="${!one_var}"
|
|
||||||
replace_string=${replace_string//${delimit}/"\\${delimit}"}
|
|
||||||
|
|
||||||
# Actually replace (sed is used instead of ynh_replace_string to avoid triggering an epic amount of debug logs)
|
|
||||||
sed --in-place "s${delimit}${match_string}${delimit}${replace_string}${delimit}g" "$file"
|
|
||||||
done
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue