X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/95e59f8e8c427bf199445a75102f1dfaeb4bf8a6..8884a9fff1ee4d5f6df3fc3ef43aed3a9eec9ea2:/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 9c1e56067f..4131849ba8 100644 --- a/doc/install/install-workbench-app.html.textile.liquid +++ b/doc/install/install-workbench-app.html.textile.liquid @@ -1,58 +1,162 @@ --- layout: default navsection: installguide -title: Install the Arvados Workbench application +title: Install Workbench ... -h2. Prerequisites +This installation guide assumes you are on a 64 bit Debian or Ubuntu system. -# A GNU/linux (virtual) machine (can be shared with the API server) -# A hostname for your Workbench application +h2. Install prerequisites + + +
~$ sudo apt-get install \
+    bison build-essential gettext libcurl3 libcurl3-gnutls \
+    libcurl4-openssl-dev libpcre3-dev libpq-dev libreadline-dev \
+    libssl-dev libxslt1.1 git wget zlib1g-dev graphviz
+
+ +Also make sure you have "Ruby and bundler":install-manual-prerequisites-ruby.html installed. + +Workbench doesn't need its own database, so it does not need to have PostgreSQL installed. h2. Download the source tree -Please follow the instructions on the "Download page":https://arvados.org/projects/arvados/wiki/Download in the wiki. + +
~$ cd $HOME # (or wherever you want to install)
+~$ git clone https://github.com/curoverse/arvados.git
+
+ +See also: "Downloading the source code":https://arvados.org/projects/arvados/wiki/Download on the Arvados wiki. + +The Workbench application is in @apps/workbench@ in the source tree. + +h2. Install gem dependencies + + +
~$ cd arvados/apps/workbench
+~/arvados/apps/workbench$ bundle install
+
+
-The Workbench application is in @arvados/apps/workbench@. +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: + + +
~$ cd arvados/apps/workbench
+~/arvados/apps/workbench$ bundle install --path=vendor/bundle
+
+ +The @bundle install@ command might produce a warning about the themes_for_rails gem. This is OK: + + +
themes_for_rails at /home/you/.rvm/gems/ruby-2.1.1/bundler/gems/themes_for_rails-1fd2d7897d75 did not have a valid gemspec.
+This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
+The validation message from Rubygems was:
+  duplicate dependency on rails (= 3.0.11, development), (>= 3.0.0) use:
+    add_runtime_dependency 'rails', '= 3.0.11', '>= 3.0.0'
+Using themes_for_rails (0.5.1) from https://github.com/holtkampw/themes_for_rails (at 1fd2d78)
+
+ +h2. Choose your environment + +The Workbench application can be run in @development@ or in @production@ mode. Unless this installation is going to be used for development on the Workbench applicatoin itself, you should run it in @production@ mode. + +Copy the example environment file for your environment. For example, if you choose @production@: + + +
~/arvados/apps/workbench$ cp -i config/environments/production.rb.example config/environments/production.rb
+
h2. Configure the Workbench application +First, copy the example configuration file: + + +
~/arvados/apps/workbench$ cp -i config/application.yml.example config/application.yml
+
+ +The Workbench application reads the @config/application.yml@ file, as well as the @config/application.defaults.yml@ file. Values in @config/application.yml@ take precedence over the defaults that are defined in @config/application.defaults.yml@. The @config/application.yml.example@ file is not read by the Workbench application and is provided for installation convenience, only. + +Consult @config/application.default.yml@ for a full list of configuration options. Always put your local configuration in @config/application.yml@, never edit @config/application.default.yml@. + +h3. secret_token + This application needs a secret token. Generate a new secret: -
~/arvados/apps/workbench$ rake secret
+
~/arvados/apps/workbench$ ruby -e 'puts rand(2**400).to_s(36)'
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
-Copy @config/application.yml.example@ to @config/application.yml@ and edit it appropriately for your environment. +Then put that value in the @secret_token@ field. + +h3. arvados_login_base and arvados_v1_base + +Point @arvados_login_base@ and @arvados_v1_base@ at your "API server":install-api-server.html. For example like this: + + +
arvados_login_base: https://prefix_uuid.your.domain/login
+arvados_v1_base: https://prefix_uuid.your.domain/arvados/v1
+
+
+ +h3. site_name -* Set @secret_token@ to the string you generated with @rake secret@. -* Point @arvados_login_base@ and @arvados_v1_base@ at your "API server":install-api-server.html -* @site_name@ can be any string to identify this Workbench. -* Assuming that the SSL certificate you use for development isn't signed by a CA, make sure @arvados_insecure_https@ is @true@. +@site_name@ can be set to any arbitrary string. It is used to identify this Workbench to people visiting it. + +h3. arvados_insecure_https + +If the SSL certificate you use for your API server isn't an official certificate signed by a CA, make sure @arvados_insecure_https@ is @true@. + +h3. other options + +Consult @application.default.yml@ for a full list of configuration options. Always put your local configuration in @application.yml@ instead of editing @application.default.yml@. Copy @config/piwik.yml.example@ to @config/piwik.yml@ and edit to suit. -h3. Apache/Passenger (optional) +h2. Start the Workbench application + +h3. Development environment -Set up Apache and Passenger. Point them to the apps/workbench directory in the source tree. +If you plan to run in development mode, you can now run the development server this way: + + +
~/arvados/apps/workbench$ bundle exec rails server --port=3031
+
+ +h3. Production environment + +We recommend "Passenger":https://www.phusionpassenger.com/ to run the API server in production. + +Point it to the apps/workbench directory in the source tree. h2. Trusted client setting -Log in to Workbench once (this ensures that the Arvados API server has a record of the Workbench client). +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.) -In the API server project root, start the rails console. Locate the ApiClient record for your Workbench installation, then set the `is_trusted` flag for the appropriate client record: +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: -
~/arvados/services/api$ RAILS_ENV=development bundle exec rails console
-irb(main):001:0> ApiClient.where('url_prefix like ?', '%workbench%')
-=> {:id => 1234}
-irb(main):002:0> ApiClient.find(1234).update_attributes is_trusted: true
+
~/arvados/services/api$ RAILS_ENV=production bundle exec rails console
+irb(main):001:0> wb = ApiClient.all.last; [wb.url_prefix, wb.created_at]
+=> ["https://workbench.example.com/", Sat, 19 Apr 2014 03:35:12 UTC +00:00]
+irb(main):002:0> include CurrentApiClient
+=> true
+irb(main):003:0> act_as_system_user do wb.update_attributes!(is_trusted: true) end
+=> true
 
-h2. Running tests +h2(#admin-user). Add an admin user -The Workbench application includes a series of integration tests. When you run these, it starts the API server in a test environment, with all of its fixtures loaded, then tests Workbench by starting that server and making requests against it. +Next, we're going to use the rails console on the API server to activate our own account and give yourself admin privileges: -In addition to bundled gems, running the integration tests requires "PhantomJS":http://phantomjs.org/download.html to test JavaScript elements. The simplest way to get started is to download one of the binary builds provided, and install the executable into one of the directories in your @$PATH@. \ No newline at end of file + +
~/arvados/services/api$ 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
+=> ["root", "your_address@example.com"]
+
+ +At this point, you should have a working Workbench login with administrator privileges. Revisit your Workbench URL in a browser and reload the page to access it.