Skip to content

Instantly share code, notes, and snippets.

@haslinger
Last active October 10, 2016 07:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haslinger/652e82507139debbe04c446118a6efba to your computer and use it in GitHub Desktop.
Save haslinger/652e82507139debbe04c446118a6efba to your computer and use it in GitHub Desktop.
Deploy a Phoenix app from a Git repo onto a Ubuntu server
#!/bin/bash
echo -e "\n\e[96m === Change into directory ===\e[0m"
cd phoenix_deployment/pan/
echo -e "\n\e[96m === Start ssh agent ===\e[0m"
eval `ssh-agent -s`
echo -e "\n\e[96m === Add identity ===\e[0m"
ssh-add
echo -e "\n\e[96m === git pull repo ===\e[0m"
git pull origin master
echo -e "\n\e[96m === Get dependencies ===\e[0m"
MIX_ENV=prod mix deps.get
echo -e "\n\e[96m === Compile assets ===\e[0m"
MIX_ENV=prod mix phoenix.digest
echo -e "\n\e[96m === Compile app ===\e[0m"
MIX_ENV=prod mix compile
echo -e "\n\e[96m === Create release ===\e[0m"
MIX_ENV=prod mix release
echo -e "\n\e[96m === Create new app dir ===\e[0m"
sudo mkdir /var/phoenix/pan_new
echo -e "\n\e[96m === Move to deployment dir ===\e[0m"
cd /var/phoenix/pan_new
echo -e "\n\e[96m === Untar app ===\e[0m"
sudo tar xfz ~/phoenix_deployment/pan/rel/pan/releases/0.0.1/pan.tar.gz
echo -e "\n\e[96m === Set ownership ===\e[0m"
sudo chown -R www-data:www-data /var/phoenix/pan_new
echo -e "\n\e[96m === Stop service ===\e[0m"
sudo service pan stop
echo -e "\n\e[96m === Move old app out of the way ===\e[0m"
sudo mv /var/phoenix/pan /var/phoenix/pan-$(date -d "today" +"%Y%m%d-%H:%M:%S")
echo -e "\n\e[96m === Move new app in place ===\e[0m"
sudo mv /var/phoenix/pan_new /var/phoenix/pan
echo -e "\n\e[96m === Start service ===\e[0m"
sudo service pan start
echo -e "\n\e[96m === cd back into ~ ===\e[0m"
cd ~
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment