2 # Copyright (C) The Arvados Authors. All rights reserved.
4 # SPDX-License-Identifier: AGPL-3.0
9 . /usr/local/lib/arvbox/common.sh
11 cd /usr/src/arvados/services/api
12 export RAILS_ENV=development
16 if ! test -s /var/lib/arvados/api_uuid_prefix ; then
17 ruby -e 'puts "#{rand(2**64).to_s(36)[0,5]}"' > /var/lib/arvados/api_uuid_prefix
19 uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix)
21 if ! test -s /var/lib/arvados/api_secret_token ; then
22 ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/api_secret_token
24 secret_token=$(cat /var/lib/arvados/api_secret_token)
26 if ! test -s /var/lib/arvados/blob_signing_key ; then
27 ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/blob_signing_key
29 blob_signing_key=$(cat /var/lib/arvados/blob_signing_key)
31 # self signed key will be created by SSO server script.
32 test -s /var/lib/arvados/self-signed.key
34 sso_app_secret=$(cat /var/lib/arvados/sso_app_secret)
36 if test -s /var/lib/arvados/vm-uuid ; then
37 vm_uuid=$(cat /var/lib/arvados/vm-uuid)
39 vm_uuid=$uuid_prefix-2x53u-$(ruby -e 'puts rand(2**400).to_s(36)[0,15]')
40 echo $vm_uuid > /var/lib/arvados/vm-uuid
43 cat >config/application.yml <<EOF
45 uuid_prefix: $uuid_prefix
46 secret_token: $secret_token
47 blob_signing_key: $blob_signing_key
48 sso_app_secret: $sso_app_secret
49 sso_app_id: arvados-server
50 sso_provider_url: "https://$localip:${services[sso]}"
52 workbench_address: "http://$localip/"
53 websocket_address: "ws://$localip:${services[websockets]}/websocket"
54 git_repo_ssh_base: "git@$localip:"
55 git_repo_https_base: "http://$localip:${services[arv-git-httpd]}/"
56 new_users_are_active: true
57 auto_admin_first_user: true
58 auto_setup_new_users: true
59 auto_setup_new_users_with_vm_uuid: $vm_uuid
60 auto_setup_new_users_with_repository: true
61 default_collection_replication: 1
62 docker_image_formats: ["v1"]
65 (cd config && /usr/local/lib/arvbox/application_yml_override.py)
67 if ! test -f /var/lib/arvados/api_database_pw ; then
68 ruby -e 'puts rand(2**128).to_s(36)' > /var/lib/arvados/api_database_pw
70 database_pw=$(cat /var/lib/arvados/api_database_pw)
72 if ! (psql postgres -c "\du" | grep "^ arvados ") >/dev/null ; then
73 psql postgres -c "create user arvados with password '$database_pw'"
74 psql postgres -c "ALTER USER arvados CREATEDB;"
77 sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
79 if ! test -f /var/lib/arvados/api_database_setup ; then
80 bundle exec rake db:setup
81 touch /var/lib/arvados/api_database_setup
84 if ! test -s /var/lib/arvados/superuser_token ; then
85 superuser_tok=$(bundle exec ./script/create_superuser_token.rb)
86 echo "$superuser_tok" > /var/lib/arvados/superuser_token
92 bundle exec rake db:migrate