Install Workbench

  1. Install dependencies
  2. Update config.yml
  3. Update Nginx configuration
  4. Trusted client flag
  5. Install arvados-workbench
  6. Restart the API server and controller
  7. Confirm working installation

Install dependencies

  1. Install Ruby and Bundler
  2. Install nginx
  3. Install Phusion Passenger

Update config.yml

Edit config.yml to set the keys below. The full set of configuration options are in the Workbench section of config.yml

    Services:
      Workbench1:
        ExternalURL: "https://workbench.ClusterID.example.com"
    Workbench:
      SecretKeyBase: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    Users:
      AutoAdminFirstUser: true

This application needs a secret token. Generate a new secret:

~$ ruby -e 'puts rand(2**400).to_s(36)'
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Then put that value in the Workbench.SecretKeyBase field.

You probably want to enable Users.AutoAdminFirstUser . The first user to log in when no other admin user exists will automatically be made an admin.

Update nginx configuration

Use a text editor to create a new file /etc/nginx/conf.d/arvados-workbench.conf with the following configuration. Options that need attention are marked in red.

server {
    listen       80;
    server_name  workbench.ClusterID.example.com;
    return 301   https://workbench.ClusterID.example.com$request_uri;
}

server {
  listen       443 ssl;
  server_name  workbench.ClusterID.example.com;

  ssl_certificate     /YOUR/PATH/TO/cert.pem;
  ssl_certificate_key /YOUR/PATH/TO/cert.key;

  root /var/www/arvados-workbench/current/public;
  index  index.html;

  passenger_enabled on;
  # If you're using RVM, uncomment the line below.
  #passenger_ruby /usr/local/rvm/wrappers/default/ruby;

  # `client_max_body_size` should match the corresponding setting in
  # the API.MaxRequestSize and Controller's server's Nginx configuration.
  client_max_body_size 128m;
}

Trusted client flag

In the API server project root, start the Rails console.

Change webserver-user to the user that runs your web server process. If you install Phusion Passenger as we recommend, this is www-data on Debian-based systems, and nginx on Red Hat-based systems.
apiserver:~$ cd /var/www/arvados-api/current
apiserver:/var/www/arvados-api/current$ sudo -u webserver-user RAILS_ENV=production bundle exec rails console

Create an ApiClient record for your Workbench installation with the is_trusted flag set.

irb(main):001:0> include CurrentApiClient
=> true
irb(main):002:0> act_as_system_user do ApiClient.create!(url_prefix: "https://workbench.ClusterID.example.com/", is_trusted: true) end
=> #<ApiClient id: 2, uuid: "...", owner_uuid: "...", modified_by_client_uuid: nil, modified_by_user_uuid: "...", modified_at: "2019-12-16 14:19:10", name: nil, url_prefix: "https://workbench.ClusterID.example.com/", created_at: "2019-12-16 14:19:10", updated_at: "2019-12-16 14:19:10", is_trusted: true>

Install arvados-workbench

Red Hat and Centos

# yum install arvados-workbench

Debian and Ubuntu

# apt-get install arvados-workbench

Restart the API server and controller

Make sure the cluster config file is up to date on the API server host then restart the API server and controller processes to ensure the configuration changes are visible to the whole cluster.

# systemctl restart nginx arvados-controller

Confirm working installation

Visit https://workbench.ClusterID.example.com in a browser. You should be able to log in using the login method you configured in the previous step. If Users.AutoAdminFirstUser is true, you will be an admin user.


Previous: Install the Single Sign On (SSO) server Next: Install Workbench 2

The content of this documentation is licensed under the Creative Commons Attribution-Share Alike 3.0 United States licence.
Code samples in this documentation are licensed under the Apache License, Version 2.0.