<?php namespace neam\bootstrap; // Expect the "paas" config require dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'remote' . DIRECTORY_SEPARATOR . 'include.php'; // Add deployment-only overrides $deploymentEnvPath = "deployments/" . Config::read("APPVHOST"); $_ENV['CONFIG_INCLUDE'] = "config/remote/include.php"; Config::expect("CONFIG_INCLUDE", $default = null, $required = true); Config::expect("ENV", $default = $deploymentEnvPath, $required = false); // Add config metadata Config::expect("BRANCH_TO_DEPLOY", $default = null, $required = true); Config::expect("PROJECT_GIT_REPO", $default = null, $required = true); Config::expect("COMMITSHA", $default = null, $required = true); // Loads sensitive (non-versioned) environment variables from .env to getenv(), $_ENV. //\Dotenv::makeMutable(); //\Dotenv::load($project_root . '/' . $deploymentEnvPath); // Include the secrets file containing non-versioned secrets require getenv('BUILD_DIR') . DIRECTORY_SEPARATOR . 'deploy/config/secrets.php';
<?php /** * The main application config */ namespace neam\bootstrap; // ==== Identity-related config ==== Config::expect("MAIL_SENDER_NAME", $default = "Foo Example App", $required = false); Config::expect("MAIL_SENDER_EMAIL", $default = "*****@*****.**", $required = false); // ==== Infrastructure-related config ==== // Since we define these as URLs $_ENV["EXPAND_CONFIG_URLS"] = "1"; // Support setting main db constants based on DATABASE_URL environment variable Config::expect("DATABASE_URL", $default = null, $required = false); // Require setting smtp constants based on SMTP_URL environment variable Config::expect("SMTP_URL", $default = null, $required = true); // smtp://username:password@host:587?encryption=tls // Sentry error reporting Config::expect("SENTRY_DSN", $default = null, $required = true); // Google Analytics ID Config::expect("GA_TRACKING_ID", $default = null, $required = true); // ==== Debug-related config ==== Config::expect("YII_DEBUG", $default = false);
namespace neam\bootstrap; // Required in order to prepare the deployment Config::expect("BRANCH_TO_DEPLOY", $default = null, $required = true); Config::expect("DRONE_BUILD_DIR", $default = null, $required = true); // Affects the resulting deployment subdomain Config::expect("DATA", $default = null, $required = true); Config::expect("GRANULARITY", $default = "project-branch-specific", $required = false); // Necessary to include in config since these are defined in secrets.php Config::expect("DEVELOPMENT_GA_TRACKING_ID", $default = "UA-XXXXXX-X", $required = strpos(Config::read("BRANCH_TO_DEPLOY"), "release/") !== false); Config::expect("PRODUCTION_GA_TRACKING_ID", $default = "UA-XXXXXX-X", $required = Config::read("BRANCH_TO_DEPLOY") === "master"); Config::expect("DEVELOPMENT_SMTP_HOST", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") !== "master"); Config::expect("DEVELOPMENT_SMTP_PORT", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") !== "master"); Config::expect("DEVELOPMENT_SMTP_USERNAME", $default = "", $required = false); Config::expect("DEVELOPMENT_SMTP_PASSWORD", $default = "", $required = false); Config::expect("DEVELOPMENT_SMTP_ENCRYPTION", $default = "", $required = false); Config::expect("PRODUCTION_SMTP_HOST", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master"); Config::expect("PRODUCTION_SMTP_PORT", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master"); Config::expect("PRODUCTION_SMTP_USERNAME", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master"); Config::expect("PRODUCTION_SMTP_PASSWORD", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master"); Config::expect("PRODUCTION_SMTP_ENCRYPTION", $default = "", $required = Config::read("BRANCH_TO_DEPLOY") === "master"); Config::expect("DEV_RDS_HOST", $default = "", $required = true); Config::expect("PROD_RDS_HOST", $default = "", $required = true); // Necessary only during build/deploy process (not by app itself) - thus we require it here, but not for setting app config Config::expect("TUTUM_USER", $default = null, $required = true); Config::expect("TUTUM_EMAIL", $default = null, $required = true); Config::expect("TUTUM_PASSWORD", $default = null, $required = true); Config::expect("TUTUM_APIKEY", $default = null, $required = true); // Include the secrets file containing non-versioned secrets require getenv('BUILD_DIR') . DIRECTORY_SEPARATOR . 'deploy/config/secrets.php';