diff --git a/scripts/install b/scripts/install index c4dd10f..0fc34f2 100755 --- a/scripts/install +++ b/scripts/install @@ -7,149 +7,35 @@ source _common.sh source /usr/share/yunohost/helpers -### Install parameters are automatically saved as settings -### -### Settings are automatically loaded as bash variables -### in every app script context, therefore typically these will exist: -### - $domain -### - $path -### - $language -### ... etc -### -### Resources defined in the manifest are provisioned prior to this script -### and corresponding settings are also available, such as: -### - $install_dir -### - $port -### - $db_name -### ... -### -### $app is the app id (i.e. 'example' for first install, -### or 'example__2', '__3'... for multi-instance installs) +#================================================= +# INTALL NODEJS +#================================================= ynh_script_progression --message="Installing dependencies..." --weight=7 -# Install Nodejs ynh_hide_warnings ynh_nodejs_install #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= + ynh_script_progression "Setting up source files..." -### `ynh_setup_source` is used to install an app from a zip or tar.gz file, -### downloaded from an upstream source, like a git repository. -### `ynh_setup_source` use the file manifest.toml - -# Download, check integrity, uncompress and patch the source from manifest.toml ynh_setup_source --dest_dir="$install_dir" -### $install_dir will automatically be initialized with some decent -### permission by default... however, you may need to recursively reapply -### ownership to all files such as after the ynh_setup_source step chown -R "$app:www-data" "$install_dir" -#================================================= -# APP INITIAL CONFIGURATION -#================================================= -ynh_script_progression "Adding $app's configuration files..." - -### You can add specific configuration files. -### -### Typically, put your template conf file in ../conf/your_config_file -### The template may contain strings such as __FOO__ or __FOO_BAR__, -### which will automatically be replaced by the values of $foo and $foo_bar -### -### ynh_config_add will also keep track of the config file's checksum, -### which later during upgrade may allow to automatically backup the config file -### if it's found that the file was manually modified -### -### Check the documentation of `ynh_config_add` for more info. - -#ynh_config_add --template="run.sh" --destination="$install_dir/run.sh" - -# FIXME: this should be handled by the core in the future -### You may need to use chmod 600 instead of 400, -### for example if the app is expected to be able to modify its own config -#chmod +x "$install_dir/run.sh" -#chmod 400 "$install_dir/run.sh" -#chown "$app:$app" "$install_dir/run.sh" - -### For more complex cases where you want to replace stuff using regexes, -### you shoud rely on ynh_replace (which is basically a wrapper for sed) -### When doing so, you also need to manually call ynh_store_file_checksum -### -### ynh_replace --match="match_string" --replace="replace_string" --file="$install_dir/some_config_file" -### ynh_store_file_checksum "$install_dir/some_config_file" - #================================================= # SYSTEM CONFIGURATION #================================================= + ynh_script_progression "Adding system configurations related to $app..." -### `ynh_config_add_phpfpm` is used to set up a PHP config. -### You can remove it if your app doesn't use PHP. -### `ynh_config_add_phpfpm` will use the files conf/extra_php-fpm.conf -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "BACKUP THE PHP-FPM CONFIGURATION" in the backup script -### - Remove also the section "REMOVE PHP-FPM CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE PHP-FPM CONFIGURATION" in the restore script -### with the reload at the end of the script. -### - And the section "PHP-FPM CONFIGURATION" in the upgrade script - -# Create a dedicated NGINX config using the conf/nginx.conf template ynh_config_add_nginx -### `ynh_config_add_systemd` is used to configure a systemd script for an app. -### It can be used for apps that use sysvinit (with adaptation) or systemd. -### Have a look at the app to be sure this app needs a systemd script. -### `ynh_config_add_systemd` will use the file conf/systemd.service -### If you're not using these lines: -### - You can remove those files in conf/. -### - Remove the section "BACKUP SYSTEMD" in the backup script -### - Remove also the section "STOP AND REMOVE SERVICE" in the remove script -### - As well as the section "RESTORE SYSTEMD" in the restore script -### - And the section "SETUP SYSTEMD" in the upgrade script - -# Create a dedicated systemd config ynh_config_add_systemd -### `yunohost service add` integrates a service in YunoHost. It then gets -### displayed in the admin interface and through the others `yunohost service` commands. -### (N.B.: this line only makes sense if the app adds a service to the system!) -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "REMOVE SERVICE INTEGRATION IN YUNOHOST" in the remove script -### - As well as the section "INTEGRATE SERVICE IN YUNOHOST" in the restore script -### - And the section "INTEGRATE SERVICE IN YUNOHOST" in the upgrade script - -### Additional options starting with 3.8: -### -### --needs_exposed_ports "$port" a list of ports that needs to be publicly exposed -### which will then be checked by YunoHost's diagnosis system -### (N.B. DO NOT USE THIS if the port is only internal!!!) -### -### --test_status "some command" a custom command to check the status of the service -### (only relevant if 'systemctl status' doesn't do a good job) -### -### --test_conf "some command" some command similar to "nginx -t" that validates the conf of the service -### -### Re-calling 'yunohost service add' during the upgrade script is the right way -### to proceed if you later realize that you need to enable some flags that -### weren't enabled on old installs (be careful it'll override the existing -### service though so you should re-provide all relevant flags when doing so) -yunohost service add "$app" --description="A modern and self-hosted take on file uploading services that can handle anything you throw at it thanks to it's robust and fast API, chunked uploads support and more." --log="/var/log/$app/$app.log" - -### `ynh_config_add_logrotate` is used to configure a logrotate configuration for the logs of this app. -### Use this helper only if there is effectively a log file for this app. -### If you're not using this helper: -### - Remove the section "BACKUP LOGROTATE" in the backup script -### - Remove also the section "REMOVE LOGROTATE CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE LOGROTATE CONFIGURATION" in the restore script -### - And the section "SETUP LOGROTATE" in the upgrade script - -# Use logrotate to manage application logfile(s) -ynh_config_add_logrotate +yunohost service add "$app" --description="a beautiful and performant vault to save all your files in the cloud" --log="/var/log/$app/$app.log" ynh_script_progression "Installing $app..." @@ -163,17 +49,9 @@ popd #================================================= # START SYSTEMD SERVICE #================================================= + ynh_script_progression "Starting $app's systemd service..." -### `ynh_systemctl` is used to start a systemd service for an app. -### Only needed if you have configure a systemd service -### If you're not using these lines: -### - Remove the section "STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the backup script -### - As well as the section "START SYSTEMD SERVICE" in the restore script -### - As well as the section"STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the upgrade script -### - And the section "STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the change_url script - -# Start a systemd service ynh_systemctl --service="$app" --action="start" #=================================================