mirror of
https://github.com/YunoHost-Apps/duniter_ynh.git
synced 2024-09-03 18:26:35 +02:00
07c73d399a
A dedicated domain name is needed and make it easier to configure. Remove code on manifest, install and upgrade scripts.
79 lines
2.1 KiB
Bash
Executable file
79 lines
2.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Exit on command errors and treat unset variables as an error
|
|
set -eu
|
|
|
|
# Retrieve arguments
|
|
app=$YNH_APP_INSTANCE_NAME
|
|
domain=$YNH_APP_ARG_DOMAIN
|
|
path="/"
|
|
port=$YNH_APP_ARG_PORT
|
|
sync_node=$YNH_APP_ARG_SYNC_NODE
|
|
sync_port=$YNH_APP_ARG_SYNC_PORT
|
|
salt=$YNH_APP_ARG_SALT
|
|
password=$YNH_APP_ARG_PASSWORD
|
|
admin=$YNH_APP_ARG_ADMIN
|
|
is_cesium_public=$YNH_APP_ARG_IS_CESIUM_PUBLIC
|
|
|
|
# Source app helpers and functions
|
|
source /usr/share/yunohost/helpers
|
|
source functions.sh
|
|
|
|
# Check domain/path availability
|
|
sudo yunohost app checkurl "${domain}${path}" -a "$app" \
|
|
|| ynh_die "Path not available: ${domain}${path}"
|
|
|
|
# Check port availability
|
|
sudo yunohost app checkport $port
|
|
if [[ ! $? -eq 0 ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
# Check node availability
|
|
if curl --output /dev/null --silent --head --fail "$sync_node:$sync_port/node/summary"; then
|
|
echo "Node $sync_node:$sync_port is available"
|
|
else
|
|
ynh_die "Node $sync_node:$sync_port is not available" 2
|
|
fi
|
|
|
|
# Check the admin exists in YunoHost users
|
|
ynh_user_exists $admin
|
|
|
|
# Get CPU architecture and check it
|
|
arch=$(uname -m)
|
|
if [ $arch == "x86_64" ]; then
|
|
arch="x64"
|
|
fi
|
|
if [[ $arch != "x64" && $arch != "armv7l" ]]; then
|
|
ynh_die "$arch is not supported." 2
|
|
fi
|
|
|
|
# Store config on YunoHost instance
|
|
ynh_app_setting_set $app port $port
|
|
ynh_app_setting_set $app arch $arch
|
|
ynh_app_setting_set "$app" admin "$admin"
|
|
ynh_app_setting_set "$app" is_cesium_public "$is_cesium_public"
|
|
|
|
# Open port on firewall
|
|
sudo yunohost firewall allow TCP $port > /dev/null 2>&1
|
|
|
|
INSTALL_DUNITER_DEBIAN_PACKAGE
|
|
|
|
# Configure Duniter node
|
|
sudo $app config --ipv4 127.0.0.1 --port $port --remoteh $domain --remotep 443 --noupnp --salt $salt --passwd $password
|
|
|
|
# Reset Duniter node's existing data (blockchain, not conf)
|
|
sudo $app reset data > /dev/null
|
|
|
|
# Synchronize Duniter node
|
|
echo "Synchronizing with $sync_node:$sync_port. It may take a while."
|
|
sudo $app sync $sync_node $sync_port --nointeractive > /dev/null
|
|
|
|
# Launch Duniter node
|
|
sudo $app webstart
|
|
|
|
# Add Duniter service to the YunoHost monitoring
|
|
sudo yunohost service add $app --log /home/admin/.config/$app/"$app"_default/"$app".log
|
|
|
|
CONFIG_SSOWAT_FOR_RESTRICTED_ACCESS
|
|
CONFIG_NGINX_FOR_WEB_ADMIN
|