3 navsection: installguide
4 title: Install the websocket server
7 Copyright (C) The Arvados Authors. All rights reserved.
9 SPDX-License-Identifier: CC-BY-SA-3.0
12 The arvados-ws server provides event notifications to websocket clients. It can be installed anywhere with access to Postgres database and the Arvados API server, typically behind a web proxy that provides SSL support. See the "godoc page":http://godoc.org/github.com/arvados/arvados/services/ws for additional information.
14 # "Update config.yml":#update-config
15 # "Update nginx configuration":#update-nginx
16 # "Install arvados-ws package":#install-packages
17 # "Start the service":#start-service
18 # "Restart the API server and controller":#restart-api
19 # "Confirm working installation":#confirm-working
21 h2(#configure). Update config.yml
23 Edit the cluster config at @config.yml@ and set @Services.Websocket.ExternalURL@ and @Services.Websocket.InternalURLs@. Replace @zzzzz@ with your cluster id.
29 "http://localhost:8005"</span>: {}
30 ExternalURL: <span class="userinput">wss://ws.ClusterID.example.com/websocket</span>
34 h2(#update-nginx). Update Nginx configuration
36 The arvados-ws service will be accessible from anywhere on the internet, so we recommend using SSL for transport encryption.
38 Use a text editor to create a new file @/etc/nginx/conf.d/arvados-ws.conf@ with the following configuration. Options that need attention are marked in <span class="userinput">red</span>.
42 server 127.0.0.1:<span class="userinput">8005</span>;
47 server_name ws.<span class="userinput">ClusterID.example.com</span>;
49 proxy_connect_timeout 90s;
50 proxy_read_timeout 300s;
53 ssl_certificate <span class="userinput">/YOUR/PATH/TO/cert.pem</span>;
54 ssl_certificate_key <span class="userinput">/YOUR/PATH/TO/cert.key</span>;
57 proxy_pass http://arvados-ws;
58 proxy_set_header Upgrade $http_upgrade;
59 proxy_set_header Connection "upgrade";
60 proxy_set_header Host $host;
61 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
66 {% assign arvados_component = 'arvados-ws' %}
68 {% include 'install_packages' %}
70 {% include 'start_service' %}
72 {% include 'restart_api' %}
74 h2(#confirm). Confirm working installation
76 Confirm the service is listening on its assigned port and responding to requests.
79 <pre><code>~$ <span class="userinput">curl https://<span class="userinput">ws.ClusterID.example.com</span>/websocket</span>
80 not websocket protocol