Merge branch '14988-wb-rails5-upgrade'
[arvados.git] / tools / arvbox / lib / arvbox / docker / service / controller / run
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 exec 2>&1
7 set -ex -o pipefail
8
9 . /usr/local/lib/arvbox/common.sh
10 . /usr/local/lib/arvbox/go-setup.sh
11
12 flock /var/lib/gopath/gopath.lock go get -t "git.curoverse.com/arvados.git/cmd/arvados-server"
13 install $GOPATH/bin/arvados-server /usr/local/bin
14 (cd /usr/local/bin && ln -sf arvados-server arvados-controller)
15
16 if test "$1" = "--only-deps" ; then
17     exit
18 fi
19
20 uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix)
21 secret_token=$(cat /var/lib/arvados/api_secret_token)
22 blob_signing_key=$(cat /var/lib/arvados/blob_signing_key)
23 management_token=$(cat /var/lib/arvados/management_token)
24 sso_app_secret=$(cat /var/lib/arvados/sso_app_secret)
25 vm_uuid=$(cat /var/lib/arvados/vm-uuid)
26 database_pw=$(cat /var/lib/arvados/api_database_pw)
27
28 if test -s /var/lib/arvados/api_rails_env ; then
29   database_env=$(cat /var/lib/arvados/api_rails_env)
30 else
31   database_env=development
32 fi
33
34 mkdir -p /etc/arvados
35
36 cat >/var/lib/arvados/cluster_config.yml <<EOF
37 Clusters:
38   ${uuid_prefix}:
39     ManagementToken: $management_token
40     Services:
41       Workbench1:
42         ExternalURL: "https://$localip:${services[workbench]}"
43       Workbench2:
44         ExternalURL: "https://$localip:${services[workbench2-ssl]}"
45       SSO:
46         ExternalURL: "https://$localip:${services[sso]}"
47       Websocket:
48         ExternalURL: "wss://$localip:${services[websockets-ssl]}/websocket"
49       GitSSH:
50         ExternalURL: "ssh://git@$localip:"
51       GitHTTP:
52         ExternalURL: "http://$localip:${services[arv-git-httpd]}/"
53       WebDAV:
54         ExternalURL: "https://$localip:${services[keep-web-ssl]}/"
55     NodeProfiles:  # to be deprecated in favor of "Services" section
56       "*":
57         arvados-controller:
58           Listen: ":${services[controller]}" # choose a port
59         arvados-api-server:
60           Listen: ":${services[api]}" # must match Rails server port in your Nginx config
61     PostgreSQL:
62       ConnectionPool: 32 # max concurrent connections per arvados server daemon
63       Connection:
64         # All parameters here are passed to the PG client library in a connection string;
65         # see https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-PARAMKEYWORDS
66         Host: localhost
67         User: arvados
68         Password: ${database_pw}
69         DBName: arvados_${database_env}
70         client_encoding: utf8
71     API:
72       RailsSessionSecretToken: $secret_token
73     Collections:
74       BlobSigningKey: $blob_signing_key
75       DefaultReplication: 1
76     Containers:
77       SupportedDockerImageFormats: ["v2"]
78     Login:
79       ProviderAppSecret: $sso_app_secret
80       ProviderAppID: arvados-server
81     Users:
82       NewUsersAreActive: true
83       AutoAdminFirstUser: true
84       AutoSetupNewUsers: true
85       AutoSetupNewUsersWithVmUUID: $vm_uuid
86       AutoSetupNewUsersWithRepository: true
87 EOF
88
89 /usr/local/lib/arvbox/yml_override.py /var/lib/arvados/cluster_config.yml
90
91 cp /var/lib/arvados/cluster_config.yml /etc/arvados/config.yml
92
93 exec /usr/local/lib/arvbox/runsu.sh /usr/local/bin/arvados-controller