X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/51dc4f3f6d1faa0dfa79ae4d282f584fbe797299..f8fdd0cbdf1de1464bc1fc7cc5e7660205edf56b:/doc/install/install-workbench-app.html.textile.liquid diff --git a/doc/install/install-workbench-app.html.textile.liquid b/doc/install/install-workbench-app.html.textile.liquid index 0b98fe474e..22fc1557a8 100644 --- a/doc/install/install-workbench-app.html.textile.liquid +++ b/doc/install/install-workbench-app.html.textile.liquid @@ -6,43 +6,30 @@ title: Install Workbench h2. Install prerequisites -The Arvados package repository includes Workbench server package that can help automate much of the deployment. +The Arvados package repository includes a Workbench server package that can help automate much of the deployment. h3(#install_ruby_and_bundler). Install Ruby and Bundler {% include 'install_ruby_and_bundler' %} -h3(#build_tools_workbench). Build tools - -* The Arvados Python SDK -* Graphviz -* Build tools to build gem dependencies -* Nginx +h2(#install_workbench). Install Workbench and dependencies Workbench doesn't need its own database, so it does not need to have PostgreSQL installed. -On older distributions, you may need to use a backports repository to satisfy these requirements. For example, on older Red Hat-based systems, consider using the "nginx16":https://www.softwarecollections.org/en/scls/rhscl/nginx16/ Software Collection. - On a Debian-based system, install the following packages: -
~$ sudo apt-get install bison build-essential graphviz git nginx python-arvados-python-client arvados-workbench
+
~$ sudo apt-get install bison build-essential graphviz git python-arvados-python-client arvados-workbench
 
On a Red Hat-based system, install the following packages: -
~$ sudo yum install bison make automake gcc gcc-c++ graphviz git nginx python27-python-arvados-python-client arvados-workbench
+
~$ sudo yum install bison make automake gcc gcc-c++ graphviz git python27-python-arvados-python-client arvados-workbench
 
-{% include 'notebox_begin' %} - -If you intend to use specific versions of these packages from Software Collections, you may have to adapt some of the package names to match; e.g., @nginx16@. - -{% include 'notebox_end' %} - {% include 'note_python27_sc' %} h2. Set up configuration files @@ -100,6 +87,73 @@ h2. Configure Piwik In @/var/www/arvados-workbench/current/config@, copy @piwik.yml.example@ to @piwik.yml@ and edit to suit. +h2. Set up Web server + +For best performance, we recommend you use Nginx as your Web server front-end, with a Passenger backend to serve Workbench. To do that: + + +
    +
  1. Install Nginx and Phusion Passenger.
  2. + +
  3. If you're deploying on CentOS and using the python27 Software Collection, configure Nginx to use it: + +
    ~$ sudo usermod --shell /bin/bash nginx
    +~$ sudo -u nginx sh -c 'echo "[[ -z \$PS1 && -e /opt/rh/python27/enable ]] && source /opt/rh/python27/enable" >>~/.bash_profile'
    +
    + +
  4. + +
  5. Edit the http section of your Nginx configuration to run the Passenger server, and act as a front-end for it. You might add a block like the following, adding SSL and logging parameters to taste:

    + +
    server {
    +  listen 127.0.0.1:9000;
    +  server_name localhost-workbench;
    +
    +  root /var/www/arvados-workbench/current/public;
    +  index  index.html index.htm index.php;
    +
    +  passenger_enabled on;
    +  # If you're using RVM, uncomment the line below.
    +  #passenger_ruby /usr/local/rvm/wrappers/default/ruby;
    +}
    +
    +upstream workbench {
    +  server     127.0.0.1:9000  fail_timeout=10s;
    +}
    +
    +proxy_http_version 1.1;
    +
    +server {
    +  listen       [your public IP address]:443 ssl;
    +  server_name  workbench.uuid-prefix.your.domain;
    +
    +  ssl on;
    +  ssl_certificate     /YOUR/PATH/TO/cert.pem;
    +  ssl_certificate_key /YOUR/PATH/TO/cert.key;
    +
    +  index  index.html index.htm index.php;
    +  client_max_body_size 128m;
    +
    +  location / {
    +    proxy_pass            http://workbench;
    +    proxy_redirect        off;
    +    proxy_connect_timeout 90s;
    +    proxy_read_timeout    300s;
    +
    +    proxy_set_header      X-Forwarded-Proto https;
    +    proxy_set_header      Host $http_host;
    +    proxy_set_header      X-Real-IP $remote_addr;
    +    proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
    +  }
    +}
    +
    +
  6. + +
  7. Restart Nginx.
  8. + +
+
+ h2. Prepare the Workbench deployment Now that all your configuration is in place, run @/usr/local/bin/arvados-workbench-upgrade.sh@. This will install and check your configuration, and install necessary gems. @@ -119,10 +173,6 @@ Using themes_for_rails (0.5.1) from https://github.com/holtkampw/themes_for_rail This command aborts when it encounters an error. It's safe to rerun multiple times, so if there's a problem with your configuration, you can fix that and try again. -h2. Set up Web server - -{% include 'install_nginx_workbench' %} - h2. Trusted client setting Log in to Workbench once to ensure that the Arvados API server has a record of the Workbench client. (It's OK if Workbench says your account hasn't been activated yet. We'll deal with that next.) @@ -146,9 +196,8 @@ Next, we're going to use the rails console on the API server to
/var/www/arvados-api/current$ RAILS_ENV=production bundle exec rails console
 irb(main):001:0> Thread.current[:user] = User.all.select(&:identity_url).last
-irb(main):002:0> Thread.current[:user].is_admin = true
-irb(main):003:0> Thread.current[:user].update_attributes is_admin: true, is_active: true
-irb(main):004:0> User.where(is_admin: true).collect &:email
+irb(main):002:0> Thread.current[:user].update_attributes is_admin: true, is_active: true
+irb(main):003:0> User.where(is_admin: true).collect &:email
 => ["root", "your_address@example.com"]