#!/bin/bash # # Copyright (c) 2020 Bubble, Inc. All rights reserved. For personal (non-commercial) use, see license: https://getbubblenow.com/bubble-license/ # # # Create a new user and start a network for that user # # Usage: create_user_and_network # # json-file : a JSON file containing specs for the new user and network # # The default values are: # # { # "rootUsername": "root", # "rootPassword": "password", # "sageFqdn": "_required", # "nginxPort": "1443", # "username": "user-<>", # "password": "<>", # "network": "test-net-{{rand 5}}", # "email": "user-<>@example.com", # "domain": "bubblev.org", # "locale": "en_US", # "lang": "en", # "timezone": "EST", # "plan": "bubble pro", # "footprint": "Worldwide, excluding OFAC", # "compute": "VultrCompute", # "region": "New Jersey" # } # # The required fields above have a value of "_required". A minimal example would be: # # { # "sageFqdn": "api-XXXXX.staging.bubblev.org" # } # # This would add a user with a random name user-{{rand 5}} with a random password and random @example.com email address, # and a randomly named network with the name test-net-{{rand 5}} # # Environment variables # # BUBBLE_API : which API to use. Default is local (http://127.0.0.1:PORT, where PORT is found in .bubble.env) # BUBBLE_USER : account to use. Default is root # BUBBLE_PASS : password for account. Default is root # BUBBLE_SCRIPTS : location of run.sh script. Default is to assume it is in the same directory containing this script # SCRIPT="${0}" SCRIPT_DIR=$(cd $(dirname ${SCRIPT}) && pwd) . ${SCRIPT_DIR}/bubble_common JSON="${1:?no json provided}" if [[ ! -f "${JSON}" ]] ; then die "json file not found: ${JSON}" fi cat "${JSON}" | exec ${SCRIPT_DIR}/bscript debug ${SCRIPT_DIR}/../scripts/create_user_and_network.json --no-login --vars -