Merge branch '1922-cache-discovery-python'
[arvados.git] / doc / install / install-api-server.md
index 416a2f1a76fac77216a4700866cdd622dc60dd16..dbae3dac8857ec1fc7d61022c661152b79aee92f 100644 (file)
@@ -22,6 +22,7 @@ Please follow the instructions on the [Download page](https://arvados.org/projec
 
 First configure the database:
 
 
 First configure the database:
 
+    cd arvados/services/api
     cp config/database.yml.sample config/database.yml
 
 Edit database.yml to your liking and make sure the database and db user exist.
     cp config/database.yml.sample config/database.yml
 
 Edit database.yml to your liking and make sure the database and db user exist.
@@ -33,34 +34,62 @@ Then set up omniauth:
 
     cp config/initializers/omniauth.rb.example config/initializers/omniauth.rb
 
 
     cp config/initializers/omniauth.rb.example config/initializers/omniauth.rb
 
-Edit config/initializers/omniauth.rb. Choose an APP_SECRET and APP_ID. Also set
-CUSTOM_PROVIDER_URL.
+Edit config/initializers/omniauth.rb. Choose an *APP_SECRET* and *APP_ID*. Also set
+*CUSTOM_PROVIDER_URL*.
 
 
-Make sure your Omniauth provider knows about your APP_ID and APP_SECRET
+Make sure your Omniauth provider knows about your *APP_ID* and *APP_SECRET*
 combination.
 
 combination.
 
+You also need to update config/initializers/secret_token.rb. Generate a new secret with
+
+    rake secret
+
+and put it in config/initializers/secret_token.rb:
+
+    Server::Application.config.secret_token = 'your-new-secret-here'
+
 Finally, edit your
 
     environments/production.rb
 
 Finally, edit your
 
     environments/production.rb
 
-file. Specifically, you want to make sure that 
+file. 
+
+First, you want to make sure that 
 
     config.uuid_prefix
 
 is set to a unique 5-digit hex string. You can replace the 'cfi-aws-0' string
 with a string of your choice to make that happen.
 
 
     config.uuid_prefix
 
 is set to a unique 5-digit hex string. You can replace the 'cfi-aws-0' string
 with a string of your choice to make that happen.
 
-The config.uuid_prefix string is a unique identifier for your API server. It
+The *config.uuid_prefix* string is a unique identifier for your API server. It
 also serves as the first part of the hostname for your API server, for instance
 
 also serves as the first part of the hostname for your API server, for instance
 
-    9ujm1.orvosapi.com
+    {{ site.arvados_api_host }}
+
+You should use your own domain instead of arvadosapi.com
 
 
-You should use your own domain instead of orvosapi.com
+Second, unless you are running on AWS, you will want to change the definition of
+
+    config.compute_node_nameservers
+
+If you know your nameservers and they are fixed, you can hardcode them, and
+make sure to remove the code that tries to look them up from the AWS metadata:
+
+    config.compute_node_nameservers = ['1.2.3.4','2.3.4.5','3.4.5.6']
+    #require 'net/http'
+    #config.compute_node_nameservers = ['local', 'public'].collect do |iface|
+    #  Net::HTTP.get(URI("http://169.254.169.254/latest/meta-data/#{iface}-ipv4")).match(/^[\d\.]+$/)[0]
+    #end << '172.16.0.23'
 
 ## Apache/Passenger
 
 Set up Apache and Passenger. Point them to the services/api directory in the source tree.
 
 
 ## Apache/Passenger
 
 Set up Apache and Passenger. Point them to the services/api directory in the source tree.
 
+To enable streaming so users can monitor crunch jobs in real time, add
+to your Apache configuration:
+
+    PassengerBufferResponse off
+
 ## Add an admin user
 
 Point browser to the API endpoint. Log in with a google account.
 ## Add an admin user
 
 Point browser to the API endpoint. Log in with a google account.
@@ -69,7 +98,7 @@ In the rails console:
 
     Thread.current[:user] = User.find(1)
     Thread.current[:user].is_admin = true
 
     Thread.current[:user] = User.find(1)
     Thread.current[:user].is_admin = true
-    User.find(1).update_attributes is_admin: true
+    User.find(1).update_attributes is_admin: true, is_active: true
     User.find(1).is_admin
 
 This should be
     User.find(1).is_admin
 
 This should be
@@ -80,6 +109,6 @@ This should be
 
 In rails console
 
 
 In rails console
 
-     a = ApiClient.new(owner:1); a.save!
+     a = ApiClient.new(owner_uuid:'0'); a.save!
      x = ApiClientAuthorization.new(api_client_id:a.id, user_id:1); x.save; x.api_token
 
      x = ApiClientAuthorization.new(api_client_id:a.id, user_id:1); x.save; x.api_token