Рубрики
Uncategorized

… Развертывание приложения Meteor

Автор оригинала: Foysal.

...

… … … … … … … …

… …

… …

… …

  • Я использую фойсал в качестве имени пользователя и 199.199.19.19 как …
  • … … … ...

… …

… … …

mkdir repos && cd $_ 
mkdir allende.git && cd $_ 
git init --bare
touch hooks/post-receive && nano $_

… …

#!/bin/sh
. ~/.profile
REPO_DIR="$HOME/repos/allende.git"
APP_DIR="$HOME/meteorapps/allende"
OUTPUT_DIR='$HOME/meteorapps/allende-built'
BUILD_OUTPUT="$OUTPUT_DIR/allende.tar.gz"
APP_NAME='allende'
# architechture might need to be changed if your system is not 64bit
LOCAL_ARCHITECTURE='os.linux.x86_64'

export PORT=3000
export NODE_ENV='production'
export ROOT_URL='https://allende.com'
export MONGO_URL='mongodb://localhost:27017/allende'

while read oldrev newrev refname
do
    branch=$(git rev-parse --symbolic --abbrev-ref $refname)
    echo "Received $branch branch"

    if [ "master" = "$branch" ]; then
        # Copy the latest code from the git repo to the app directory
        echo "Copying Code Into $APP_DIR"
        git --work-tree=$APP_DIR --git-dir=$REPO_DIR checkout -f $branch
        
        # navigate into the app directory then build and run the app from there 
        echo "Building Meteor App"
        cd $APP_DIR
        meteor npm i
        METEOR_SETTINGS="$(cat settings.json)" meteor build --server-only $OUTPUT_DIR --architecture $LOCAL_ARCHITECTURE
        forever stop $APP_NAME
        tar -xzf $BUILD_OUTPUT -C $OUTPUT_DIR
        rm $BUILD_OUTPUT
        
        # install npm deps
        cd $OUTPUT_DIR/bundle/programs/server
        npm i --save bcrypt
        npm i --production

        # go back to main dir
        cd ../../

        echo "----------STARTING APP----------"
        # run the app
        forever start --id $APP_NAME main.js
        sleep 5
        forever list
    else
    	echo "Deploy is disabled for $branch branch"
    fi
done

… … … … … … …

… … … …

… …

npm i -g forever
curl https://install.meteor.com | /bin/sh

… …

git remote add production foysal@199.199.19.19:repos/allende.git
git push production master

… … …

Настройка apache

… … Создайте конфигурационный файл для нашего виртуального хоста: sudo touch/etc/apache2/sites-available/allende.com.conf && …


  ServerName allende.com

  # Handle proxy stuff
  ProxyPreserveHost On
  ProxyRequests off
  ProxyPass / http://199.199.19.19:3000/
  ProxyPassReverse / http://199.199.19.19:3000/

  
  	Order deny,allow
  	Allow from all
  

Теперь сохраните и выйдите из файла. … Теперь нам нужно включить эту конфигурацию, чтобы apache распознал эту новую конфигурацию. … …

sudo a2enmod proxy_http
sudo service apache2 restart
sudo a2ensite /etc/apache2/sites-available/allende.com.conf
sudo service apache2 reload

Та-Да! … Попробуйте его в своем браузере. Это здорово и все но я обещал вам безопасный сайт с зеленым значком замка одобрения из chrome. …

… … … … . ... ...

...

… но это довольно важно, однако, вы может не это необходимо … … … … … … Если вы настроили принудительно https, вам понадобится эта новая конфигурация, которая будет помещена … … …

  RewriteEngine on
  RewriteCond %{HTTP:Upgrade} websocket$ [NC]
  RewriteCond %{HTTP:Connection} Upgrade$ [NC]
  RewriteRule .* ws://199.199.19.19:3000%{REQUEST_URI} [P]

… …

… …

sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile

...

… …

… поэтому я, на самом деле, призываю вас исследовать некоторые из них и, возможно, …

Оригинал: «https://www.codementor.io/@foysalit/git-push-deploy-your-meteor-app-hsxs3hf20»