21700: Install Bundler system-wide in Rails postinst
[arvados.git] / tools / salt-install / config_examples / single_host / multiple_hostnames / pillars / nginx_workbench_configuration.sls
1 ---
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 {%- import_yaml "ssl_key_encrypted.sls" as ssl_key_encrypted_pillar %}
7
8 ### ARVADOS
9 arvados:
10   config:
11     group: www-data
12
13 ### NGINX
14 nginx:
15   ### SITES
16   servers:
17     managed:
18       ### DEFAULT
19       arvados_workbench_default.conf:
20         enabled: true
21         overwrite: true
22         config:
23           - server:
24             - server_name: workbench.__DOMAIN__
25             - listen:
26               - 80
27             - location /:
28               - return: '301 https://$host$request_uri'
29
30       arvados_workbench_ssl.conf:
31         enabled: true
32         overwrite: true
33         requires:
34           __CERT_REQUIRES__
35         config:
36           # Maps WB1 '/actions?uuid=X' URLs to their equivalent on WB2
37           - 'map $request_uri $actions_redirect':
38             - '~^/actions\?uuid=(.*-4zz18-.*)': '/collections/$1'
39             - '~^/actions\?uuid=(.*-j7d0g-.*)': '/projects/$1'
40             - '~^/actions\?uuid=(.*-tpzed-.*)': '/projects/$1'
41             - '~^/actions\?uuid=(.*-7fd4e-.*)': '/workflows/$1'
42             - '~^/actions\?uuid=(.*-xvhdp-.*)': '/processes/$1'
43             - '~^/actions\?uuid=(.*)': '/'
44             - default: 0
45
46           - server:
47             - server_name: workbench.__DOMAIN__
48             - listen:
49               - __CONTROLLER_EXT_SSL_PORT__ http2 ssl
50             - index: index.html index.htm
51
52     # REDIRECTS FROM WORKBENCH 1 TO WORKBENCH 2
53
54     # Paths that are not redirected because wb1 and wb2 have similar enough paths
55     # that a redirect is pointless and would create a redirect loop.
56     # rewrite ^/api_client_authorizations.* /api_client_authorizations redirect;
57     # rewrite ^/repositories.* /repositories redirect;
58     # rewrite ^/links.* /links redirect;
59     # rewrite ^/projects.* /projects redirect;
60     # rewrite ^/trash /trash redirect;
61
62             # WB1 '/actions?uuid=X' URL Redirects
63             - 'if ($actions_redirect)':
64               - return: '301 $actions_redirect'
65
66     # Redirects that include a uuid
67             - rewrite: '^/work_units/(.*) /processes/$1 redirect'
68             - rewrite: '^/container_requests/(.*) /processes/$1 redirect'
69             - rewrite: '^/users/(.*) /user/$1 redirect'
70             - rewrite: '^/groups/(.*) /group/$1 redirect'
71
72     # Special file download redirects
73             - 'if ($arg_disposition = attachment)':
74               - rewrite: '^/collections/([^/]*)/(.*) /?redirectToDownload=/c=$1/$2? redirect'
75
76             - 'if ($arg_disposition = inline)':
77               - rewrite: '^/collections/([^/]*)/(.*) /?redirectToPreview=/c=$1/$2? redirect'
78
79     # Redirects that go to a roughly equivalent page
80             - rewrite: '^/virtual_machines.* /virtual-machines-admin redirect'
81             - rewrite: '^/users/.*/virtual_machines /virtual-machines-user redirect'
82             - rewrite: '^/authorized_keys.* /ssh-keys-admin redirect'
83             - rewrite: '^/users/.*/ssh_keys /ssh-keys-user redirect'
84             - rewrite: '^/containers.* /all_processes redirect'
85             - rewrite: '^/container_requests /all_processes redirect'
86             - rewrite: '^/job.* /all_processes redirect'
87             - rewrite: '^/users/link_account /link_account redirect'
88             - rewrite: '^/keep_services.* /keep-services redirect'
89             - rewrite: '^/trash_items.* /trash redirect'
90
91     # Redirects that don't have a good mapping and
92     # just go to root.
93             - rewrite: '^/themes.* / redirect'
94             - rewrite: '^/keep_disks.* / redirect'
95             - rewrite: '^/user_agreements.* / redirect'
96             - rewrite: '^/nodes.* / redirect'
97             - rewrite: '^/humans.* / redirect'
98             - rewrite: '^/traits.* / redirect'
99             - rewrite: '^/sessions.* / redirect'
100             - rewrite: '^/logout.* / redirect'
101             - rewrite: '^/logged_out.* / redirect'
102             - rewrite: '^/current_token / redirect'
103             - rewrite: '^/logs.* / redirect'
104             - rewrite: '^/factory_jobs.* / redirect'
105             - rewrite: '^/uploaded_datasets.* / redirect'
106             - rewrite: '^/specimens.* / redirect'
107             - rewrite: '^/pipeline_templates.* / redirect'
108             - rewrite: '^/pipeline_instances.* / redirect'
109
110             - location /:
111               - root: /var/www/arvados-workbench2/workbench2
112               - try_files: '$uri $uri/ /index.html'
113               - 'if (-f $document_root/maintenance.html)':
114                 - return: 503
115             - location /config.json:
116               - return: {{ "200 '" ~ '{"API_HOST":"__DOMAIN__:__CONTROLLER_EXT_SSL_PORT__"}' ~ "'" }}
117             - include: snippets/ssl_hardening_default.conf
118             - ssl_certificate: __CERT_PEM__
119             - ssl_certificate_key: __CERT_KEY__
120             {%- if ssl_key_encrypted_pillar.ssl_key_encrypted.enabled %}
121             - ssl_password_file: {{ '/run/arvados/' | path_join(ssl_key_encrypted_pillar.ssl_key_encrypted.privkey_password_filename) }}
122             {%- endif %}
123             - access_log: /var/log/nginx/workbench2.__DOMAIN__.access.log combined
124             - error_log: /var/log/nginx/workbench2.__DOMAIN__.error.log