2 # Copyright (C) The Arvados Authors. All rights reserved.
4 # SPDX-License-Identifier: AGPL-3.0
9 . /usr/local/lib/arvbox/common.sh
12 if test -s /var/lib/arvados/sso_rails_env ; then
13 export RAILS_ENV=$(cat /var/lib/arvados/sso_rails_env)
15 export RAILS_ENV=development
18 run_bundler --without=development
19 bundle exec passenger-config build-native-support
20 bundle exec passenger-config install-standalone-runtime
22 if test "$1" = "--only-deps" ; then
28 if ! test -s /var/lib/arvados/api_uuid_prefix ; then
29 ruby -e 'puts "x#{rand(2**64).to_s(36)[0,4]}"' > /var/lib/arvados/api_uuid_prefix
31 uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix)
33 if ! test -s /var/lib/arvados/sso_secret_token ; then
34 ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/sso_secret_token
36 secret_token=$(cat /var/lib/arvados/sso_secret_token)
38 test -s /var/lib/arvados/server-cert-${localip}.pem
40 cat >config/application.yml <<EOF
42 uuid_prefix: $uuid_prefix
43 secret_token: $secret_token
44 default_link_url: "http://$localip"
45 allow_account_registration: true
48 (cd config && /usr/local/lib/arvbox/yml_override.py application.yml)
50 if ! test -f /var/lib/arvados/sso_database_pw ; then
51 ruby -e 'puts rand(2**128).to_s(36)' > /var/lib/arvados/sso_database_pw
53 database_pw=$(cat /var/lib/arvados/sso_database_pw)
55 if ! (psql postgres -c "\du" | grep "^ arvados_sso ") >/dev/null ; then
56 psql postgres -c "create user arvados_sso with password '$database_pw'"
57 psql postgres -c "ALTER USER arvados_sso CREATEDB;"
60 sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
62 if ! test -f /var/lib/arvados/sso_database_setup ; then
63 bundle exec rake db:setup
65 if ! test -s /var/lib/arvados/sso_app_secret ; then
66 ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/sso_app_secret
68 app_secret=$(cat /var/lib/arvados/sso_app_secret)
70 bundle exec rails console <<EOF
73 c.app_id = "arvados-server"
74 c.app_secret = "$app_secret"
78 touch /var/lib/arvados/sso_database_setup
84 bundle exec rake assets:precompile
85 bundle exec rake db:migrate
88 if test "$1" = "--only-setup" ; then
92 exec bundle exec passenger start --port=${services[sso]} \
93 --ssl --ssl-certificate=/var/lib/arvados/server-cert-${localip}.pem \
94 --ssl-certificate-key=/var/lib/arvados/server-cert-${localip}.key