4ed25e03c05929bdceecd968d494e194500f7959
[arvados.git] / tools / arvbox / lib / arvbox / docker / api-setup.sh
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 cd /usr/src/arvados/services/api
13
14 if test -s /var/lib/arvados/api_rails_env ; then
15   export RAILS_ENV=$(cat /var/lib/arvados/api_rails_env)
16 else
17   export RAILS_ENV=development
18 fi
19
20 set -u
21
22 flock /var/lib/arvados/cluster_config.yml.lock /usr/local/lib/arvbox/cluster-config.sh
23
24 if test -a /usr/src/arvados/services/api/config/arvados_config.rb ; then
25     rm -f config/application.yml config/database.yml
26 else
27     uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix)
28     secret_token=$(cat /var/lib/arvados/api_secret_token)
29     blob_signing_key=$(cat /var/lib/arvados/blob_signing_key)
30     management_token=$(cat /var/lib/arvados/management_token)
31     sso_app_secret=$(cat /var/lib/arvados/sso_app_secret)
32     database_pw=$(cat /var/lib/arvados/api_database_pw)
33     vm_uuid=$(cat /var/lib/arvados/vm-uuid)
34
35 cat >config/application.yml <<EOF
36 $RAILS_ENV:
37   uuid_prefix: $uuid_prefix
38   secret_token: $secret_token
39   blob_signing_key: $blob_signing_key
40   sso_app_secret: $sso_app_secret
41   sso_app_id: arvados-server
42   sso_provider_url: "https://$localip:${services[sso]}"
43   sso_insecure: false
44   workbench_address: "https://$localip/"
45   websocket_address: "wss://$localip:${services[websockets-ssl]}/websocket"
46   git_repo_ssh_base: "git@$localip:"
47   git_repo_https_base: "http://$localip:${services[arv-git-httpd]}/"
48   new_users_are_active: true
49   auto_admin_first_user: true
50   auto_setup_new_users: true
51   auto_setup_new_users_with_vm_uuid: $vm_uuid
52   auto_setup_new_users_with_repository: true
53   default_collection_replication: 1
54   docker_image_formats: ["v2"]
55   keep_web_service_url: https://$localip:${services[keep-web-ssl]}/
56   ManagementToken: $management_token
57 EOF
58
59 (cd config && /usr/local/lib/arvbox/yml_override.py application.yml)
60 sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
61 fi
62
63 if ! test -f /var/lib/arvados/api_database_setup ; then
64    bundle exec rake db:setup
65    touch /var/lib/arvados/api_database_setup
66 fi
67
68 if ! test -s /var/lib/arvados/superuser_token ; then
69     superuser_tok=$(bundle exec ./script/create_superuser_token.rb)
70     echo "$superuser_tok" > /var/lib/arvados/superuser_token
71 fi
72
73 rm -rf tmp
74 mkdir -p tmp/cache
75
76 bundle exec rake db:migrate