Skip to content

Instantly share code, notes, and snippets.

@zeehio
Last active December 29, 2015 15:19
Show Gist options
  • Save zeehio/7690102 to your computer and use it in GitHub Desktop.
Save zeehio/7690102 to your computer and use it in GitHub Desktop.
Install rstudio-server and setup nginx on in order to have http://default_server/rstudio on Ubuntu precise (and other ubuntus probably)
#!/bin/bash -x
# Distribution codename:
which lsb_release >/dev/null|| (echo "Could not find lsb_release" ; exit 1)
which apt-get >/dev/null|| (echo "Could not find apt-get" ; exit 1)
codename=$(lsb_release -cs) # "precise"
# Add R repository:
rsourceslist="/etc/apt/sources.list.d/r_sources.list"
if [ ! -f "${rsourceslist}" ]; then
echo "deb http://cran.rstudio.com/bin/linux/ubuntu $codename/" | \
sudo tee "${rsourceslist}" || \
(echo "Could not write r_sources.list"; exit 1)
fi
# Add signing key for R repository:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 || exit 1
# Update package list
sudo apt-get update || exit 1
# Install R and R-development:
sudo apt-get install r-base r-base-dev || exit 1
# Install common dependencies to build packages:
sudo apt-get install build-essential xsltproc libgsl0-dev libjpeg-dev \
libncurses5-dev libpng12-dev libsqlite3-dev libssl-dev \
zlib1g-dev libopenmpi-dev libnetcdf-dev pandoc \
texlive-latex-base texlive-latex-recommended texlive-science \
markdown texlive-font-utils latex-beamer texlive-lang-spanish \
liblapack-dev libblas-dev libatlas-dev p7zip-full \
zip unzip tar git-core dh-make devscripts \
m4 tcl8.5 tk8.5 || exit 1
sudo apt-get build-dep r-cran-rgl || exit 1
# Install Rstudio:
sudo apt-get install gdebi-core || exit 1
sudo apt-get install libapparmor1 || exit 1 # Required only for Ubuntu, not Debian
rpackagefilename="rstudio-server-0.97.551-amd64.deb"
wget "http://download2.rstudio.org/$rpackagefilename" || exit 1
sudo gdebi "$rpackagefilename" || exit 1
echo "using nginx and reverse proxy..."
# Config rserver.conf
rserverconf="/etc/rstudio/rserver.conf"
if [ -f "$rserverconf" ]; then
sudo mv "$rserverconf" "${rserverconf}.bak"
fi
echo "www-address=127.0.0.1" | sudo tee "$rserverconf"
# Config rsession.conf
rsessionconf="/etc/rstudio/rsession.conf"
if [ -f "$rsessionconf" ]; then
sudo mv "$rsessionconf" "${rsessionconf}.bak"
fi
echo "r-libs-user=~/R/%p-library/%v" | sudo tee "$rsessionconf"
# Restart rstudio-server:
sudo rstudio-server restart
# Install nginx:
which nginx || ( ps aux | grep nginx | grep -v grep ) || sudo apt-get install nginx
nginxlocationsdir="/etc/nginx/isplab_locations"
sudo mkdir -p "$nginxlocationsdir"
cat << EOF | sudo tee "${nginxlocationsdir}/rstudio-server.conf"
location /rstudio/ {
rewrite ^/rstudio/(.*)$ /\$1 break;
proxy_pass http://localhost:8787;
proxy_redirect http://localhost:8787/ \$scheme://\$host/rstudio/;
access_log /var/log/nginx/rstudio-access.log;
error_log /var/log/nginx/rstudio-error.log;
}
EOF
isplab_nginx_main="/etc/nginx/sites-available/isplab-main.conf"
if [ ! -f "${isplab_nginx_main}" ]; then
cat << EOF | sudo tee "${isplab_nginx_main}"
server {
listen 80 default_server;
index index.html;
root /var/www;
include /etc/nginx/isplab_locations/*.conf;
}
EOF
fi
(cd "/etc/nginx/sites-enabled"; sudo ln -s "../sites-available/isplab-main.conf" "isplab-main.conf")
sudo service nginx reload || (echo "Error reloading nginx"; exit 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment