#!/bin/bash # This file is in the public domain. # main.sh is the main script that asks the questions and # puts the answers into environment variables located at "config/taler-internal.conf or config/taler.conf" files # Nginx configuration - Reads values directly from these "config files". set -eu # include functions source file source functions.sh # Clear logs > setup.log # include variables from configuration mkdir -p config/ touch config/user.conf config/internal.conf # Values supplied by user source config/user.conf # Values we generated source config/internal.conf # Ask questions to user # START USER INTERACTION say "Welcome to the GNU Taler regional currency setup!" say "" say "All configuration values asked during the setup script" say "can be changed in config/user.conf." say "Logs are written in setup.log." say "" ask_questions # END USER INTERACTION # Check if the user is root, otherwise EXIT. check_user # Installation of deb packages required say "" say "Installing packages (step 1 of 5)" . install_packages.sh check_dns if test -z "${BANK_EXCHANGE_PASSWORD:-}"; then BANK_EXCHANGE_PASSWORD=$(uuidgen) echo "BANK_EXCHANGE_PASSWORD=\"${BANK_EXCHANGE_PASSWORD}\"" >>config/internal.conf fi if test -z "${BANK_PORT:-}"; then echo "BANK_PORT=8080" >>config/user.conf fi if test "${ENABLE_TLS:-}" == "y"; then export PROTO="https" else export PROTO="http" fi say "" say "Configuring nginx (step 2 of 5)" ./config_nginx.sh say "" say "Setting up libeufin (step 3 of 5)" ./setup-libeufin.sh say "" say "Setting up exchange (step 4 of 5)" ./setup-exchange.sh say "" say "Setting up merchant (step 5 of 5)" ./setup-merchant.sh # Final message to the user say "" say "Congratulations, you have successfully installed GNU Taler" say "Your bank is at ${PROTO}://bank.${DOMAIN_NAME}/" say "A merchant is at ${PROTO}://backend.${DOMAIN_NAME}/" say "You should set credentials for the merchant soon." say "For currency conversion to work, you must manually complete" say "the EBICS configuration." exit 0 # END INSTALLATION