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.
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;
}
In the API server project root, start the Rails console.
Changewebserver-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 bin/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>
# dnf install arvados-workbench
# apt-get install arvados-workbench
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
# arvados-server check
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.
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.