Merge branch '3699-arv-copy'
[arvados.git] / doc / install / install-workbench-app.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Install the Arvados Workbench application
5 ...
6
7 h2. Prerequisites
8
9 # A GNU/linux (virtual) machine (can be shared with the API server)
10 # A hostname for your Workbench application
11
12 h2. Install dependencies
13
14 If you haven't already installed the API server on the same host:
15
16 * Install Ruby 2.1 and Bundler: see the "dependencies" and "Ruby" sections on the "API server installation page":install-api-server.html#dependencies for details.
17 * Omit postgresql. Workbench doesn't need its own database.
18
19 Install graphviz.
20
21 <notextile>
22 <pre><code>~$ <span class="userinput">sudo apt-get install graphviz</span>
23 </code></pre>
24 </notextile>
25
26 h2. Download the source tree
27
28 <notextile>
29 <pre><code>~$ <span class="userinput">cd $HOME</span> # (or wherever you want to install)
30 ~$ <span class="userinput">git clone https://github.com/curoverse/arvados.git</span>
31 </code></pre></notextile>
32
33 See also: "Downloading the source code":https://arvados.org/projects/arvados/wiki/Download on the Arvados wiki.
34
35 The Workbench application is in @apps/workbench@ in the source tree.
36
37 h2. Install gem dependencies
38
39 <notextile>
40 <pre><code>~$ <span class="userinput">cd arvados/apps/workbench</span>
41 ~/arvados/apps/workbench$ <span class="userinput">bundle install</span>
42 </code></pre>
43 </notextile>
44
45 Alternatively, if you don't have sudo/root privileges on the host, install the gems in your own directory instead of installing them system-wide:
46
47 <notextile>
48 <pre><code>~$ <span class="userinput">cd arvados/apps/workbench</span>
49 ~/arvados/apps/workbench$ <span class="userinput">bundle install --path=vendor/bundle</span>
50 </code></pre></notextile>
51
52 The @bundle install@ command might produce a warning about the themes_for_rails gem. This is OK:
53
54 <notextile>
55 <pre><code>themes_for_rails at /home/<b>you</b>/.rvm/gems/ruby-2.1.1/bundler/gems/themes_for_rails-1fd2d7897d75 did not have a valid gemspec.
56 This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
57 The validation message from Rubygems was:
58   duplicate dependency on rails (= 3.0.11, development), (>= 3.0.0) use:
59     add_runtime_dependency 'rails', '= 3.0.11', '>= 3.0.0'
60 Using themes_for_rails (0.5.1) from https://github.com/holtkampw/themes_for_rails (at 1fd2d78)
61 </code></pre></notextile>
62
63 h2. Configure the Workbench application
64
65 This application needs a secret token. Generate a new secret:
66
67 <notextile>
68 <pre><code>~/arvados/apps/workbench$ <span class="userinput">rake secret</span>
69 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
70 </code></pre>
71 </notextile>
72
73 Copy @config/application.yml.example@ to @config/application.yml@ and edit it appropriately for your environment.
74
75 * Set @secret_token@ to the string you generated with @rake secret@.
76 * Point @arvados_login_base@ and @arvados_v1_base@ at your "API server":install-api-server.html, like this:
77
78 <notextile>
79 <pre><code>arvados_login_base: https://your.host:3030/login
80 arvados_v1_base: https://your.host:3030/arvados/v1
81 </code></pre>
82 </notextile>
83
84 * @site_name@ can be any string to identify this Workbench.
85 * If the SSL certificate you use for development isn't signed by a CA, make sure @arvados_insecure_https@ is @true@.
86
87 Copy @config/piwik.yml.example@ to @config/piwik.yml@ and edit to suit.
88
89 h2. Start a standalone server
90
91 For testing and development, the easiest way to get started is to run the web server that comes with Rails.
92
93 <notextile>
94 <pre><code>~/arvados/apps/workbench$ <span class="userinput">bundle exec rails server --port=3031</span>
95 </code></pre>
96 </notextile>
97
98 Point your browser to <notextile><code>http://<b>your.host</b>:3031/</code></notextile>.
99
100 h2. Trusted client setting
101
102 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.)
103
104 In the API server project root, start the rails console.  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:
105
106 <notextile><pre><code>~/arvados/services/api$ <span class="userinput">bundle exec rails console</span>
107 irb(main):001:0&gt; <span class="userinput">wb = ApiClient.all.last; [wb.url_prefix, wb.created_at]</span>
108 =&gt; ["https://workbench.example.com/", Sat, 19 Apr 2014 03:35:12 UTC +00:00]
109 irb(main):002:0&gt; <span class="userinput">include CurrentApiClient</span>
110 =&gt; true
111 irb(main):003:0&gt; <span class="userinput">act_as_system_user do wb.update_attributes!(is_trusted: true) end</span>
112 =&gt; true
113 </code></pre>
114 </notextile>
115
116 h2. Activate your own account
117
118 Unless you already activated your account when installing the API server, the first time you log in to Workbench you will see a message that your account is awaiting activation.
119
120 Activate your own account and give yourself administrator privileges by following the instructions in the "'Add an admin user' section of the API server install page":install-api-server.html#admin-user.