1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/rocketchat_ynh.git synced 2024-09-03 20:16:25 +02:00

Improvements overall

This commit is contained in:
Selamanse 2017-07-21 10:54:41 +02:00
parent 19c910fb36
commit 14668f1d07
7 changed files with 47 additions and 38 deletions

View file

@ -1,7 +1,7 @@
# rocketchat_ynh # rocketchat_ynh
[![Build Status](https://travis-ci.org/selamanse/rocketchat_ynh.svg?branch=master)](https://travis-ci.org/selamanse/rocketchat_ynh) [![Build Status](https://travis-ci.org/selamanse/rocketchat_ynh.svg?branch=master)](https://travis-ci.org/selamanse/rocketchat_ynh)
rocket.chat for yunohost Rocketchat for yunohost
## Install with ## Install with

View file

@ -1,17 +1,16 @@
[Unit] [Unit]
Description=Rocket.Chat Description=rocketchat
After=network.target After=network.target
[Service] [Service]
Type=simple Type=simple
WorkingDirectory=/var/www/rocketchat WorkingDirectory=/var/www/rocketchat
User=www-data User=#USER#
Group=www-data
ExecStart=/usr/local/bin/node main.js ExecStart=/usr/local/bin/node main.js
Restart=always Restart=always
SyslogIdentifier=Rocket.Chat SyslogIdentifier=Rocket.Chat
Environment="BIND_IP=127.0.0.1" Environment="BIND_IP=127.0.0.1"
Environment="ROOT_URL=https://#ROOTURL##LOCATION#" Environment="ROOT_URL=https://#ROOTURL##LOCATION#"
Environment="PORT=3000" Environment="PORT=3000"
Environment="MONGO_URL=mongodb://localhost:27017/rocketchat" Environment="MONGO_URL=mongodb://localhost:27017/rocketchat"

View file

@ -7,7 +7,7 @@
}, },
"url": "https://github.com/selamanse/rocketchat_ynh", "url": "https://github.com/selamanse/rocketchat_ynh",
"license": "MIT", "license": "MIT",
"version": "0.57.2-rc.0", "version": "0.57.2-rc.1",
"maintainer": { "maintainer": {
"name": "selamanse", "name": "selamanse",
"email": "selamanse@scheinfrei.info", "email": "selamanse@scheinfrei.info",

View file

@ -45,4 +45,4 @@ ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "${backup_dir}/etc/nginx/conf
# BACKUP THE MONGODB DATABASE # BACKUP THE MONGODB DATABASE
#================================================= #=================================================
sudo mongodump -o "$final_path/dump" sudo mongodump -o "${backup_dir}/dump"

View file

@ -26,19 +26,23 @@ is_public=$YNH_APP_ARG_IS_PUBLIC
language=$YNH_APP_ARG_LANG language=$YNH_APP_ARG_LANG
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
user=$app
ROCKETCHAT_VERSION=0.57.2 ROCKETCHAT_VERSION=0.57.2
NODE_VERSION=4.7.1 NODE_VERSION=4.7.1
workdir=$(pwd) workdir=$(pwd)
# find suitable port (default 3000)
port=$(ynh_find_port 3000)
# Check domain/path availability # Check domain/path availability
sudo yunohost app checkurl $domain -a $app sudo yunohost app checkurl $domain -a $app
if [[ ! $? -eq 0 ]]; then if [[ ! $? -eq 0 ]]; then
ynh_die "domain not available" ynh_die "domain not available"
fi fi
final_path="/var/www/$app" final_path="/var/lib/$app"
[[ -d $final_path ]] && ynh_die \ [[ -d $final_path ]] && ynh_die \
"The destination directory '$final_path' already exists.\ "The destination directory '$final_path' already exists.\
You should safely delete it before installing this app." You should safely delete it before installing this app."
@ -47,6 +51,13 @@ final_path="/var/www/$app"
ynh_app_setting_set $app final_path $final_path ynh_app_setting_set $app final_path $final_path
ynh_app_setting_set $app is_public $is_public ynh_app_setting_set $app is_public $is_public
function waitforservice {
isup=false; x=45; while [ $x -gt 0 ];do echo "Waiting approx. $x seconds..."; \
x=$(( $x - 1 )); sleep 1; if $(curl -m 1 -s localhost:$port${path:-/}/api/v1/info | \
grep -e "success.*true" >/dev/null 2>&1); then isup=true; break; fi; done && if $isup; \
then echo "service is up"; else ynh_die "$app could not be started"; fi
}
#Install dependencies #Install dependencies
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 >/dev/null sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 >/dev/null
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
@ -60,17 +71,14 @@ sudo yunohost service add mongod -l /var/log/mongodb/mongod.log
sudo npm install -g n sudo npm install -g n
sudo n $NODE_VERSION sudo n $NODE_VERSION
# find suitable port (default 3000)
port=$(ynh_find_port 3000)
# Create destination # Create destination
sudo mkdir -p $final_path sudo mkdir -p $final_path
# Copy and set systemd configuration # Copy and set systemd configuration
sed -i "s@#ROOTURL#@$domain@g" ../conf/Rocketchat.service sed -i "s@#ROOTURL#@$domain@g" ../conf/rocketchat.service
sed -i "s@#LOCATION#@${path:-/}@g" ../conf/Rocketchat.service sed -i "s@#LOCATION#@${path:-/}@g" ../conf/rocketchat.service
sed -i "s@#PORT#@/$port@g" ../conf/Rocketchat.service sed -i "s@#PORT#@/$port@g" ../conf/rocketchat.service
sudo cp ../conf/Rocketchat.service /etc/systemd/system/ sudo cp ../conf/rocketchat.service /etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl daemon-reload
# Copy and set nginx configuration # Copy and set nginx configuration
@ -92,32 +100,32 @@ cd $final_path/programs/server/
sudo npm install sudo npm install
cd $final_path/ cd $final_path
sudo chown -R www-data: $final_path sudo useradd -d "$final_path" -M $user
sudo chown -R $user: $final_path
sudo service nginx reload sudo chown -R $user: $final_path
sudo systemctl reload nginx
if [ "$is_public" = "Yes" ]; if [ "$is_public" = "Yes" ];
then then
ynh_app_setting_set "$app" skipped_uris "/" ynh_app_setting_set "$app" skipped_uris "/"
fi fi
sudo systemctl start Rocketchat.service sudo systemctl start rocketchat.service
sudo systemctl enable Rocketchat.service sudo systemctl enable rocketchat.service
# add Rocketchat to services # add rocketchat to services
sudo yunohost service add Rocketchat sudo yunohost service add rocketchat
# wait for rocketchat to populate db and start (oneliner has to be improved) # wait for rocketchat to populate db and start
isup=false; x=45; while [ $x -gt 0 ];do echo "Waiting approx. $x seconds..."; \ waitforservice
x=$(( $x - 1 )); sleep 1; if $(curl -m 1 -s localhost:$port${path:-/}/api/v1/info | \
grep -e "success.*true" >/dev/null 2>%1); then isup=true; break; fi; done && if $isup; \
then echo "service is up"; else ynh_die "$app could not be started"; fi
cd $workdir sudo mongo < $workdir/conf/rocketchat_ldap.js
sudo mongo < ../conf/rocketchat_ldap.js sudo systemctl restart rocketchat.service
sudo systemctl restart Rocketchat.service waitforservice
sudo yunohost app ssowatconf sudo yunohost app ssowatconf

View file

@ -11,16 +11,18 @@ source /usr/share/yunohost/helpers
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get $app domain) domain=$(ynh_app_setting_get $app domain)
final_path=$(ynh_app_setting_get $app final_path)
sudo systemctl stop Rocketchat.service sudo systemctl stop $app.service
# remove Rocketchat from services # remove Rocketchat from services
sudo yunohost service remove Rocketchat sudo yunohost service remove $app
sudo rm -rf /var/www/rocketchat sudo rm -rf $final_path
sudo rm -f /etc/nginx/conf.d/$domain.d/rocketchat.conf sudo rm -f /etc/nginx/conf.d/$domain.d/$app.conf
sudo rm -rf /var/log/rocketchat/ sudo rm -rf /var/log/$app
sudo rm -f /etc/systemd/system/Rocketchat.service sudo rm -f /etc/systemd/system/$app.service
sudo userdel -r $app
sudo systemctl daemon-reload sudo systemctl daemon-reload
sudo systemctl restart nginx sudo systemctl reload nginx

View file

@ -54,4 +54,4 @@ ynh_restore_file "$final_path"
# RESTORE THE MONGODB # RESTORE THE MONGODB
#================================================= #=================================================
sudo mongorestore --dbpath /var/lib/mongo "$final_path/dump" sudo mongorestore --dbpath /var/lib/mongodb ./dump