// ---------------------- // Bubble Activation JSON // ---------------------- // // Do not edit this file directly. Copy this file somewhere else and edit the copy. // // When you are happy with your edits, activate a blank bubble using: // // ./bin/bactivate /path/to/your/activation.json // // NOTE: In this file '//' is used for comments // Normally comments are not valid JSON, but when you run `bactivate` the Bubble toolchain strips out // the comments before sending the request to the Bubble server. // { /////////////////////// // Initial Admin /////////////////////// // email, password and description of the initial admin user "name": "root@local.local", // change this to an email address only you have access to "password": "REPLACE WITH YOUR ROOT PASSWORD", "description": "root user", "cloudConfigs" : { /////////////////////// // DNS /////////////////////// // You must configure at least one of these DNS services // Comment the other one out if you're not going to use it "Route53Dns" : { "credentials" : { "AWS_ACCESS_KEY_ID": "your_aws_access_key_id", "AWS_SECRET_KEY": "your_aws_secret_key" } }, "GoDaddyDns" : { "credentials" : { "GODADDY_API_KEY": "your_godaddy_api_key", "GODADDY_API_SECRET": "your_godaddy_api_secret" } }, /////////////////////// // Compute /////////////////////// // You must configure at least one of these Compute services // Comment the other one out if you're not going to use it "VultrCompute": { "credentials": {"API-Key": "your_vultr_api_key"} }, "DigitalOceanCompute": { "credentials": {"apiKey": "your_digitalocean_api_key"} }, // EC2 driver is incomplete, use one of the above instead "AmazonEC2Driver" : { "config": { // region must be a valid value from the Regions enum: https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/regions/Regions.java "region": "your_aws_region" // for example: us-east-1 }, "credentials" : { "AWS_ACCESS_KEY_ID": "your_aws_access_key_id", "AWS_SECRET_KEY": "your_aws_secret_key" } }, // Docker can be used for testing or for advanced use cases // Leave this out if you're not going to use it // "DockerCompute": { // "config": {}, // "credentials": { // // these are the default settings, change as needed // "host": "unix:///var/run/docker.sock", // "tlsVerify": "false", // if tlsVerify is "true" then certPath must be set // "certPath": null, // "registryUrl": null, // "registryUsername": null, // "registryEmail": null, // "registryPassword": null // } // }, /////////////////////// // Storage /////////////////////// // LocalStorage is required, just leave this as-is. // If you really want, you can change the baseDir "LocalStorage": { "config": { "baseDir": ".bubble_local_storage" }, "credentials": {} }, // You must configure the AWS S3 Storage service in order to launch new Bubbles "S3Storage" : { "config": { // region must be a valid value from the Regions enum: // https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-core/src/main/java/com/amazonaws/regions/Regions.java "region": "US_EAST_1", "bucket": "must be a valid bucket name that the credentials can read/write/list/delete", "prefix": "", // optional: all paths for S3 operations will be prefixed with this path "listFetchSize": 100 }, "credentials" : { "AWS_ACCESS_KEY_ID": "your_aws_access_key_id", "AWS_SECRET_KEY": "your_aws_secret_key" } }, /////////////////////// // Email /////////////////////// // You must configure an email service, it is required to send emails // Comment out the other ones out if you're not going to use them "SmtpEmail": { "config": { "tlsEnabled": true }, "credentials": { "user": "your_smtp_username", "password": "your_smtp_password", "host": "your_smtp_server_hostname", "port": "your_smtp_server_port" } }, "SendGridEmail": { "config": {}, "credentials": { "apiKey": "your_sendgrid_api_key" } }, "MailgunEmail": { "config": {}, "credentials": { "domain": "your_mailgun_domain", "apiKey": "your_mailgun_api_key" } }, /////////////////////// // TOTP Auth /////////////////////// // Required for TOTP-based authentication. Nothing to configure, just leave this as-is "TOTPAuthenticator": {}, /////////////////////// // SMS /////////////////////// // Required for sending SMS messages. Currently only Twilio is supported // Comment this out if you're not going to use it "TwilioSms": { "credentials": { "accountSID": "your_twilio_account_SID", "authToken": "your_twilio_auth_token", // text messages sent by Bubble will come "from" this phone number, must be in Twilio-compatible format "fromPhoneNumber": "your_twilio_from_number" } }, /////////////////////// // GeoLocation /////////////////////// // Required for locale and "nearest compute region" auto-detection. // Currently only MaxMind and Whois are supported. // MaxMind is free, but now requires registration and an API token. // Comment this out if you're not going to use it "MaxMindGeoLocation": { "config": { // these values work for the free GeoLite database, but you still have to specify an apiKey "url": "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=[[apiKey]]&suffix=tar.gz", "file": "GeoLite2-City_20[\\\\d]{6}/GeoLite2-City\\\\.mmdb" }, "credentials": {"apiKey": "your_maxmind_api_key"} }, // Whois is also free, but less accurate. It's worth a try if you have nothing better. "WhoisGeoLocation": { "config": { // Normally the default 'whois' settings are used. // If you want to pass `-h` and `-p` to whois to set the host and port // of another whois server to use, set the config params below "host": null, "port": null // If you're not going to change host/port, you can reduce this // config object to an empty JSON object {} }, "credentials": {}, "template": true }, /////////////////////// // GeoCode /////////////////////// // Required for "nearest compute region" auto-detection. Currently only Google GeoCoder is supported // Comment this out if you're not going to use it "GoogleGeoCode": { "credentials": {"apiKey": "your_google_api_key"} }, /////////////////////// // GeoTime /////////////////////// // Required for timezone auto-detection. Currently only Google GeoTime is supported // Comment this out if you're not going to use it "GoogleGeoTime": { "credentials": {"apiKey": "your_google_api_key"} } }, /////////////////////// // Initial Domain /////////////////////// // initial domain that new Bubbles will be launched within "domain": { "publicDns": "Route53Dns or GoDaddyDns", // name of a DNS provider configured above "name": "example.com" // a domain name that you own, that is managed by the DNS provider named in `publicDns` }, /////////////////////// // Expert Settings /////////////////////// // You can safely chop off everything from here down from your copy (well, except the closing curly-brace). // The settings below should rarely be changed, and omitting them is the same as not changing them. // You really shouldn't change them unless you know what you're doing. // ----------- // skipTests // ----------- // // Most of the cloud services you add above have "self-test" features in their Bubble driver. // Normally, Bubble will test each cloud driver to ensure that it is working properly before // allowing activation to proceed. // // The driver test can detect a lot of configuration problems, invalid API keys, and so on. // It's a good idea to leave the tests enabled. // // If, however, this is not the first time you've run with the exact same JSON file and you KNOW that // all the clouds/credentials/configs are correct, because they've passed tests before, then setting // this to true does save a little bit of time during activation. // // NOTE: DO NOT SET THIS TO true UNLESS YOU *KNOW* ALL YOUR DRIVERS ARE OK // // If the activation.json file has no `skipTests` property, then tests will be enabled // "skipTests": false, // set this to true to skip cloud driver tests // ----------- // skipPacker // ----------- // // Bubble needs to ensure that packer images are available on any cloud compute service where you could // launch a new Bubble. The easiest way to ensure this happens is to check for packer images immediately after // activation. This is the default behavior. // // It's a good idea to do this, because if the images don't exist, then Bubble won't check again until you're // about to launch your Bubble -- and then you take the 20-minute delay of building the image. // // If, however, you KNOW that the images exist, or you explicitly want to create them later using the // `pack_bubble` command, you can skip the packer check during activation by setting this to true // // NOTE: DO NOT SET THIS TO true UNLESS YOU *KNOW* THE PACKER IMAGES ARE VALID FOR YOUR CLOUD PROVIDER // // If the activation.json file has no `skipPacker` property, then packer images will be created during activation, // if not already present. // "skipPacker": false // set this to true to skip checking/creating packer images }