Merge branch 'master' into 15572-new-install-docs
[arvados.git] / doc / install / install-workbench-app.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Install Workbench
5 ...
6 {% comment %}
7 Copyright (C) The Arvados Authors. All rights reserved.
8
9 SPDX-License-Identifier: CC-BY-SA-3.0
10 {% endcomment %}
11
12 # "Install dependencies":#dependencies
13 # "Update config.yml":#update-config
14 # "Update Nginx configuration":#update-nginx
15 # "Install arvados-workbench":#install-packages
16 # "Restart the API server and controller":#restart-api
17 # "Confirm working installation":#confirm-working
18 # "Trusted client setting":#trusted_client
19
20 h2(#dependencies). Install dependencies
21
22 # "Install Ruby and Bundler":ruby.html
23 # "Install nginx":nginx.html
24 # "Install Phusion Passenger":https://www.phusionpassenger.com/library/walkthroughs/deploy/ruby/ownserver/nginx/oss/install_passenger_main.html
25
26 h2(#configure). Update config.yml
27
28 Edit @/etc/arvados/config.yml@ to set the keys below.  The full set of configuration options are in the "Workbench section of config.yml":{{site.baseurl}}/admin/config.html
29
30 <notextile>
31 <pre><code>    Services:
32       Workbench:
33         ExternalURL: <span class="userinput">"https://workbench.ClustedID.example.com"</span>
34     Workbench:
35       SecretKeyBase: <span class="userinput">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
36     Users:
37       AutoAdminFirstUser: true
38 </code></pre>
39 </notextile>
40
41 This application needs a secret token. Generate a new secret:
42
43 <notextile>
44 <pre><code>~$ <span class="userinput">ruby -e 'puts rand(2**400).to_s(36)'</span>
45 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
46 </code></pre>
47 </notextile>
48
49 Then put that value in the @Workbench.SecretKeyBase@ field.
50
51 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.
52
53 h2(#update-nginx). Update nginx configuration
54
55 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 with "TODO".
56
57 <notextile>
58 <pre><code>server {
59   listen       <span class="userinput">[your public IP address]</span>:443 ssl;
60   server_name  workbench.<span class="userinput">ClusterID.example.com</span>;
61
62   ssl on;
63   ssl_certificate     <span class="userinput">/YOUR/PATH/TO/cert.pem</span>;
64   ssl_certificate_key <span class="userinput">/YOUR/PATH/TO/cert.key</span>;
65
66   root /var/www/arvados-workbench/current/public;
67   index  index.html;
68
69   passenger_enabled on;
70   # If you're using RVM, uncomment the line below.
71   #passenger_ruby /usr/local/rvm/wrappers/default/ruby;
72
73   # `client_max_body_size` should match the corresponding setting in
74   # the API.MaxRequestSize and Controller's server's Nginx configuration.
75   client_max_body_size 128m;
76 }
77 </code></pre>
78 </notextile>
79
80 h2(#install-packages). Install arvados-workbench
81
82 h3. Centos 7
83
84 <notextile>
85 <pre><code># <span class="userinput">yum install arvados-workbench</span>
86 </code></pre>
87 </notextile>
88
89 h3. Debian and Ubuntu
90
91 <notextile>
92 <pre><code># <span class="userinput">apt-get --no-install-recommends install arvados-workbench</span>
93 </code></pre>
94 </notextile>
95
96 h2(#restart-api). Restart the API server and controller
97
98 After adding Workbench to the Services section, make sure the cluster config file is up to date on the API server host, and restart the API server and controller processes to ensure the changes are applied.
99
100 <notextile>
101 <pre><code># <span class="userinput">systemctl restart nginx arvados-controller</span>
102 </code></pre>
103 </notextile>
104
105 h2(#confirm-working). Confirm working installation
106
107 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.
108
109 h2(#trusted_client). Trusted client flag
110
111 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.)
112
113 In the <strong>API server</strong> project root, start the Rails console.  {% include 'install_rails_command' %}
114
115 At the console, enter the following commands to locate the ApiClient record for your Workbench installation (typically, while you're setting this up, the @last@ one in the database is the one you want), then set the @is_trusted@ flag for the appropriate client record:
116
117 <notextile><pre><code>irb(main):001:0&gt; <span class="userinput">wb = ApiClient.all.last; [wb.url_prefix, wb.created_at]</span>
118 =&gt; ["https://workbench.example.com/", Sat, 19 Apr 2014 03:35:12 UTC +00:00]
119 irb(main):002:0&gt; <span class="userinput">include CurrentApiClient</span>
120 =&gt; true
121 irb(main):003:0&gt; <span class="userinput">act_as_system_user do wb.update_attributes!(is_trusted: true) end</span>
122 =&gt; true
123 </code></pre>
124 </notextile>
125