Fix install instructions: create arvados repository.
[arvados.git] / doc / install / install-api-server.html.textile.liquid
index f29b2cf1d16fa119c29b9f96d0e910032e8ff75a..b65fe6975dfd9dbe4e2c8709e13a9c684fc7c2f7 100644 (file)
@@ -12,7 +12,7 @@ h2. Install prerequisites
 <pre><code>~$ <span class="userinput">sudo apt-get install \
     bison build-essential gettext libcurl3 libcurl3-gnutls \
     libcurl4-openssl-dev libpcre3-dev libpq-dev libreadline-dev \
-    libssl-dev libxslt1.1 postgresql sudo wget zlib1g-dev
+    libssl-dev libxslt1.1 postgresql git wget zlib1g-dev
 </span></code></pre></notextile>
 
 Also make sure you have "Ruby and bundler":install-manual-prerequisites-ruby.html installed.
@@ -59,7 +59,7 @@ Consult @config/application.default.yml@ for a full list of configuration option
 
 h3(#uuid_prefix). uuid_prefix
 
-It is recommended to explicitly define your @uuid_prefix@ in @config/application.yml@, by setting the 'uuid_prefix' field in the section for your environment.
+Define your @uuid_prefix@ in @config/application.yml@ by setting the @uuid_prefix@ field in the section for your environment.  This prefix is used for all database identifiers to identify the record as originating from this site.  It must be exactly 5 alphanumeric characters (lowercase ASCII letters and digits).
 
 h3(#git_repositories_dir). git_repositories_dir
 
@@ -77,7 +77,7 @@ h3. secret_token
 Generate a new secret token for signing cookies:
 
 <notextile>
-<pre><code>~/arvados/services/api$ <span class="userinput">rake secret</span>
+<pre><code>~/arvados/services/api$ <span class="userinput">ruby -e 'puts rand(2**400).to_s(36)'</span>
 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 </code></pre></notextile>
 
@@ -85,11 +85,11 @@ Then put that value in the @secret_token@ field.
 
 h3. blob_signing_key
 
-If you want access control on your "Keep":install-keep.html server(s), you should set @blob_signing_key@ to the same value as the permission key you provide to your Keepstore daemon(s).
+If you want access control on your "Keepstore":install-keepstore.html server(s), you should set @blob_signing_key@ to the same value as the permission key you provide to your Keepstore daemon(s).
 
 h3. workbench_address
 
-Fill in the url of your workbench application in in @workbench_address@, for example 
+Fill in the url of your workbench application in @workbench_address@, for example
 
 &nbsp;&nbsp;https://workbench.@prefix_uuid@.your.domain
 
@@ -109,12 +109,10 @@ Generate a new database password. Nobody ever needs to memorize it or type it, s
 Create a new database user with permission to create its own databases.
 
 <notextile>
-<pre><code>~/arvados/services/api$ <span class="userinput">sudo -u postgres createuser --createdb --encrypted --pwprompt arvados</span>
+<pre><code>~/arvados/services/api$ <span class="userinput">sudo -u postgres createuser --createdb --encrypted -R -S --pwprompt arvados</span>
 [sudo] password for <b>you</b>: <span class="userinput">yourpassword</span>
 Enter password for new role: <span class="userinput">paste-password-you-generated</span>
 Enter it again: <span class="userinput">paste-password-again</span>
-Shall the new role be a superuser? (y/n) <span class="userinput">n</span>
-Shall the new role be allowed to create more new roles? (y/n) <span class="userinput">n</span>
 </code></pre></notextile>
 
 Configure API server to connect to your database by creating and updating @config/database.yml@. Replace the @xxxxxxxx@ database password placeholders with the new password you generated above.
@@ -138,15 +136,13 @@ Alternatively, if the database user you intend to use for the API server is not
 ~/arvados/services/api$ <span class="userinput">RAILS_ENV=production bundle exec rake db:seed</span>
 </code></pre></notextile>
 
-<div class="alert alert-block alert-info">
-  <button type="button" class="close" data-dismiss="alert">&times;</button>
-  <h4>Note!</h4>
+{% include 'notebox_begin' %}
 You can safely ignore the following error message you may see when loading the database structure:
 <notextile>
 <pre><code>ERROR:  must be owner of extension plpgsql</code></pre></notextile>
-</div>
+{% include 'notebox_end' %}
 
-h2. Set up omniauth
+h2(#omniauth). Set up omniauth
 
 First copy the omniauth configuration file:
 
@@ -154,20 +150,14 @@ First copy the omniauth configuration file:
 <pre><code>~/arvados/services/api$ <span class="userinput">cp -i config/initializers/omniauth.rb.example config/initializers/omniauth.rb
 </code></pre></notextile>
 
-Edit @config/initializers/omniauth.rb@, and tell your api server to use the Curoverse SSO server for authentication. Use the @APP_SECRET@ specified in the snippet below.
+Edit @config/initializers/omniauth.rb@ to configure the SSO server for authentication.  @APP_ID@ and @APP_SECRET@ correspond to the @app_id@ and @app_secret@ set in "Create arvados-server client for Single Sign On (SSO)":install-sso.html#client and @CUSTOM_PROVIDER_URL@ is the address of your SSO server.
 
 <notextile>
-<pre><code>APP_ID = 'local_docker_installation'
-APP_SECRET = 'yohbai4eecohshoo1Yoot7tea9zoca9Eiz3Tajahweo9eePaeshaegh9meiye2ph'
-CUSTOM_PROVIDER_URL = 'https://auth.curoverse.com'
-</code></pre></notextile>
-</pre>
-
-<div class="alert alert-block alert-info">
-  <button type="button" class="close" data-dismiss="alert">&times;</button>
-  <h4>Note!</h4>
-  <p>You can also run your own SSO server. However, the SSO server codebase currently uses OpenID 2.0 to talk to Google's authentication service. Google <a href="https://developers.google.com/accounts/docs/OpenID2">has deprecated that protocol</a>. This means that new clients will not be allowed to talk to Google's authentication services anymore over OpenID 2.0, and they will phase out the use of OpenID 2.0 completely in the coming monts. We are working on upgrading the SSO server codebase to a newer protocol. That work should be complete by the end of November 2014. In the mean time, anyone is free to use the existing Curoverse SSO server for any local Arvados installation.</p>
-</div>
+<pre><code>APP_ID = 'arvados-server'
+APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+CUSTOM_PROVIDER_URL = 'https://sso.example.com/'
+</code></pre>
+</notextile>
 
 h2. Start the API server
 
@@ -181,7 +171,7 @@ If you plan to run in development mode, you can now run the development server t
 
 h3. Production environment
 
-We recommend "Passenger":https://www.phusionpassenger.com/ to run the API server in production. 
+We recommend "Passenger":https://www.phusionpassenger.com/ to run the API server in production.
 
 Point it to the services/api directory in the source tree.