From dab2e3571a3afc33795fa54fef57f10243522f90 Mon Sep 17 00:00:00 2001 From: magikcypress Date: Sat, 8 Apr 2017 04:04:27 +0200 Subject: Initial commit --- scripts/install | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 scripts/install (limited to 'scripts/install') diff --git a/scripts/install b/scripts/install new file mode 100644 index 0000000..cfee5b2 --- /dev/null +++ b/scripts/install @@ -0,0 +1,181 @@ +#!/bin/bash + +# Exit on command errors and treat unset variables as an error +set -eu + +source .fonctions # Loads the generic functions usually used in the script +source /usr/share/yunohost/helpers # Source app helpers + +CLEAN_SETUP () { + # Clean installation residues that are not supported by the remove script. + # Clean hosts + sudo sed -i '/#MASTODON/d' /etc/hosts +} +TRAP_ON # Active trap to stop the script if an error is detected. + +domain=$YNH_APP_ARG_DOMAIN +path=$YNH_APP_ARG_PATH +admin_mastodon=$YNH_APP_ARG_ADMIN +is_public=$YNH_APP_ARG_IS_PUBLIC +#language=$YNH_APP_ARG_LANGUAGE + +app=$YNH_APP_INSTANCE_NAME + +CHECK_VAR "$app" "app name not set" + +CHECK_USER "$admin_mastodon" + +CHECK_PATH + +CHECK_DOMAINPATH + +CHECK_FINALPATH + +ynh_app_setting_set $app domain $domain +ynh_app_setting_set $app path $path +ynh_app_setting_set $app admin $admin_mastodon +ynh_app_setting_set $app is_public $is_public +# ynh_app_setting_set $app language $language + +# Create user unix +sudo adduser $app --home /opt/$app --gecos "First Last,RoomNumber,WorkPhone,HomePhone" --disabled-password --disabled-login + +# Install debian package +ynh_package_install imagemagick libpq-dev libxml2-dev libxslt1-dev file curl + +# Install redis package +ynh_package_install redis-server redis-tools + +# Install postgresql +ynh_package_install postgresql postgresql-contrib + +# Install Ruby +ynh_package_install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev + +# Install debian package backports +sudo cp ../conf/backports.list /etc/apt/sources.list.d/ +ynh_package_update +sudo apt-get -t jessie-backports -y install ffmpeg + +# Creates the destination directory and stores its location. +ynh_app_setting_set $app final_path $final_path + +# Install de Node.js +pushd /opt +curl -sL https://deb.nodesource.com/setup_4.x | bash - +sudo apt-get -y install nodejs +npm install -g yarn + +## Install postgresql database +dbname=$app +dbuser=$app +# Generate random password +dbpass=$(ynh_string_random) +ynh_psql_create_db "$dbname" "$dbuser" "$dbpass" +# sudo su -c "psql" postgres <<< \ +# "CREATE EXTENSION mastodon;" + +# Download all Ruby source +sudo git clone https://github.com/rbenv/rbenv.git $final_path/.rbenv +git clone https://github.com/rbenv/ruby-build.git $final_path/.rbenv/plugins/ruby-build +git clone https://github.com/tootsuite/mastodon.git $final_path/live +sudo chown -R $app: "${final_path}" + +# Install de rbenv +# Install ruby-build +# Install Mastodon +sudo su - $app <> ~/.bash_profile +echo 'export PATH="/opt/mastodon/.rbenv/bin:$PATH" +eval "$(/opt/mastodon/.rbenv/bin/rbenv init -)"' >> ~/.bashrc +type /opt/mastodon/.rbenv/bin/rbenv + +/opt/mastodon/.rbenv/bin/rbenv init + +/opt/mastodon/.rbenv/bin/rbenv install 2.3.1 +/opt/mastodon/.rbenv/versions/2.3.1/bin/ruby -v + +/opt/mastodon/.rbenv/versions/2.3.1/bin/gem install bundler +/opt/mastodon/live/bin/bundle install --deployment --without development test +yarn install +COMMANDS + +## Generate a new environnement +# Generate secret key +# Adjust Mastodon config +# Create database +# Preconfig CSS & JS +sudo su - $app <