Merge branch '1922-cache-discovery-python'
[arvados.git] / doc / install / install-api-server.md
index 930ad46e530cb8239732c0971b273fde3b8401ae..dbae3dac8857ec1fc7d61022c661152b79aee92f 100644 (file)
@@ -22,6 +22,7 @@ Please follow the instructions on the [Download page](https://arvados.org/projec
 
 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.
@@ -33,19 +34,19 @@ Then set up omniauth:
 
     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.
 
 You also need to update config/initializers/secret_token.rb. Generate a new secret with
 
-  rake secret
+    rake secret
 
 and put it in config/initializers/secret_token.rb:
 
-  Server::Application.config.secret_token = 'your-new-secret-here'
+    Server::Application.config.secret_token = 'your-new-secret-here'
 
 Finally, edit your
 
@@ -60,10 +61,10 @@ First, you want to make sure that
 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
 
-    9ujm1.arvadosapi.com
+    {{ site.arvados_api_host }}
 
 You should use your own domain instead of arvadosapi.com
 
@@ -75,11 +76,20 @@ 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.
 
+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.
@@ -88,7 +98,7 @@ In the rails console:
 
     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
@@ -99,6 +109,6 @@ This should be
 
 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