h2(#dependencies). Install dependencies
# "Install PostgreSQL":install-postgresql.html
-# "Install Ruby and Bundler":ruby.html
# "Install nginx":nginx.html
-# "Install Phusion Passenger":https://www.phusionpassenger.com/library/walkthroughs/deploy/ruby/ownserver/nginx/oss/install_passenger_main.html
h2(#database-setup). Set up database
</code></pre>
</notextile>
-Replace the @$postgres_password@ placeholder with the password you generated during "database setup":#database-setup .
+Replace the @$postgres_password@ placeholder with the password you generated during "database setup":#database-setup.
h3. Services
h2(#update-nginx). Update nginx configuration
-Use a text editor to create a new file @/etc/nginx/conf.d/arvados-api-and-controller.conf@ with the following configuration. Options that need attention are marked in <span class="userinput">red</span>.
+Use a text editor to create a new file @/etc/nginx/conf.d/arvados-controller.conf@ with the following configuration. Options that need attention are marked in <span class="userinput">red</span>.
<notextile>
<pre><code>proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
}
}
+</code></pre>
+</notextile>
-server {
- # This configures the Arvados API server. It is written using Ruby
- # on Rails and uses the Passenger application server.
-
- listen <span class="userinput">localhost:8004</span>;
- server_name localhost-api;
+{% assign arvados_component = 'arvados-api-server arvados-controller' %}
- root /var/www/arvados-api/current/public;
- index index.html index.htm index.php;
+{% include 'install_packages' %}
- passenger_enabled on;
+h3(#railsapi-config). Configure Rails API server
- # <span class="userinput">If you are using RVM, uncomment the line below.</span>
- # <span class="userinput">If you're using system ruby, leave it commented out.</span>
- #passenger_ruby /usr/local/rvm/wrappers/default/ruby;
+By default, the Rails API server is configured to listen on @localhost:8004@, matching the example cluster configuration above. If you need to change this, edit the @arvados-railsapi.service@ definition to redefine the @PASSENGER_ADDRESS@ and @PASSENGER_PORT@ environment variables, like this:
- # This value effectively limits the size of API objects users can
- # create, especially collections. If you change this, you should
- # also ensure the following settings match it:
- # * `client_max_body_size` in the previous server section
- # * `API.MaxRequestSize` in config.yml
- client_max_body_size 128m;
-}
-</code></pre>
+<notextile>
+<pre><code># <span class="userinput">systemctl edit arvados-railsapi.service</span>
+### Editing /etc/systemd/system/arvados-railsapi.service.d/override.conf in your editor
+<span class="userinput">[Service]
+Environment=PASSENGER_ADDRESS=<strong>0.0.0.0</strong>
+Environment=PASSENGER_PORT=<strong>8040</strong>
+</span></code></pre>
</notextile>
-{% assign arvados_component = 'arvados-api-server arvados-controller' %}
-
-{% include 'install_packages' %}
+You can similarly define other Passenger settings if desired. The "Passenger Standalone reference":https://www.phusionpassenger.com/library/config/standalone/reference/ documents all the available settings.
-{% assign arvados_component = 'arvados-controller' %}
+{% assign arvados_component = 'arvados-railsapi arvados-controller' %}
{% include 'start_service' %}
h2(#confirm-working). Confirm working installation
-Confirm working controller:
+We recommend using the "Cluster diagnostics tool.":diagnostics.html The first few tests (10, 20, 30) will succeed if you have a working API server and controller. Of course, tests for services that you have not yet installed and configured will fail.
+
+Here are some other checks you can perform manually.
+
+h3. Confirm working controller
<notextile><pre><code>$ curl https://<span class="userinput">ClusterID.example.com</span>/arvados/v1/config
</code></pre></notextile>
-Confirm working Rails API server:
+h3. Confirm working Rails API server
<notextile><pre><code>$ curl https://<span class="userinput">ClusterID.example.com</span>/discovery/v1/apis/arvados/v1/rest
</code></pre></notextile>
-Confirm that you can use the system root token to act as the system root user:
+h3. Confirm that you can use the system root token to act as the system root user
<notextile><pre><code>$ curl -H "Authorization: Bearer $system_root_token" https://<span class="userinput">ClusterID.example.com</span>/arvados/v1/users/current
</code></pre></notextile>
h3. Troubleshooting
-If you are getting TLS errors, make sure the @ssl_certificate@ directive in your nginx configuration has the "full certificate chain":http://nginx.org/en/docs/http/configuring_https_servers.html#chains
-
-Logs can be found in @/var/www/arvados-api/current/log/production.log@ and using @journalctl -u arvados-controller@.
+If you are getting TLS errors, make sure the @ssl_certificate@ directive in your nginx configuration has the "full certificate chain":http://nginx.org/en/docs/http/configuring_https_servers.html#chains.
-See also the admin page on "Logging":{{site.baseurl}}/admin/logging.html .
+Logs can be found in @/var/www/arvados-api/current/log/production.log@ and using @journalctl -u arvados-controller@. See also the admin page on "Logging":{{site.baseurl}}/admin/logging.html.