1
0
Fork 0
mirror of synced 2024-06-02 10:54:44 +12:00

Added config set for env vars

This commit is contained in:
Eldad Fux 2020-07-29 07:03:28 +03:00
parent dc1655b7f5
commit 13b4ee6624
3 changed files with 144 additions and 118 deletions

136
app/config/variables.php Normal file
View file

@ -0,0 +1,136 @@
<?php
return [
[
'name' => '_APP_ENV',
'default' => 'production',
'required' => false,
'question' => '',
],
[
'name' => '_APP_OPTIONS_ABUSE',
'default' => 'enabled',
'required' => false,
'question' => '',
],
[
'name' => '_APP_OPTIONS_FORCE_HTTPS',
'default' => 'enabled',
'required' => false,
'question' => '',
],
[
'name' => '_APP_OPENSSL_KEY_V1',
'default' => 'your-secret-key',
'required' => true,
'question' => 'Choose a secret API key, make sure to make a backup of your key in a secure location',
],
[
'name' => '_APP_DOMAIN',
'default' => 'localhost',
'required' => true,
'question' => 'Enter your Appwrite hostname',
],
[
'name' => '_APP_DOMAIN_TARGET',
'default' => 'localhost',
'required' => true,
'question' => "Enter a DNS A record hostname to server as a CNAME for your custom domains.\nYou can use the same value as used for the Appwrite hostname.",
],
[
'name' => '_APP_REDIS_HOST',
'default' => 'redis',
'required' => false,
'question' => '',
],
[
'name' => '_APP_REDIS_PORT',
'default' => '6379',
'required' => false,
'question' => '',
],
[
'name' => '_APP_DB_HOST',
'default' => 'mariadb',
'required' => false,
'question' => '',
],
[
'name' => '_APP_DB_PORT',
'default' => '3306',
'required' => false,
'question' => '',
],
[
'name' => '_APP_DB_SCHEMA',
'default' => 'appwrite',
'required' => false,
'question' => '',
],
[
'name' => '_APP_DB_USER',
'default' => 'user',
'required' => false,
'question' => '',
],
[
'name' => '_APP_DB_PASS',
'default' => 'password',
'required' => false,
'question' => '',
],
[
'name' => '_APP_INFLUXDB_HOST',
'default' => 'influxdb',
'required' => false,
'question' => '',
],
[
'name' => '_APP_INFLUXDB_PORT',
'default' => '8086',
'required' => false,
'question' => '',
],
[
'name' => '_APP_STATSD_HOST',
'default' => 'telegraf',
'required' => false,
'question' => '',
],
[
'name' => '_APP_STATSD_PORT',
'default' => '8125',
'required' => false,
'question' => '',
],
[
'name' => '_APP_SMTP_HOST',
'default' => 'smtp',
'required' => false,
'question' => '',
],
[
'name' => '_APP_SMTP_PORT',
'default' => '25',
'required' => false,
'question' => '',
],
[
'name' => '_APP_STORAGE_LIMIT',
'default' => '100000000',
'required' => false,
'question' => '',
],
[
'name' => '_APP_FUNCTIONS_TIMEOUT',
'default' => '900',
'required' => false,
'question' => '',
],
[
'name' => '_APP_FUNCTIONS_CONTAINERS',
'default' => '10',
'required' => false,
'question' => '',
],
];

View file

@ -67,6 +67,7 @@ Config::load('environments', __DIR__.'/config/environments.php');
Config::load('roles', __DIR__.'/config/roles.php'); // User roles and scopes
Config::load('scopes', __DIR__.'/config/scopes.php'); // User roles and scopes
Config::load('services', __DIR__.'/config/services.php'); // List of services
Config::load('variables', __DIR__.'/config/variables.php'); // List of env variables
Config::load('avatar-browsers', __DIR__.'/config/avatars/browsers.php');
Config::load('avatar-credit-cards', __DIR__.'/config/avatars/credit-cards.php');
Config::load('avatar-flags', __DIR__.'/config/avatars/flags.php');

View file

@ -3,6 +3,7 @@
global $cli;
use Utopia\CLI\Console;
use Utopia\Config\Config;
$cli
->task('install')
@ -25,118 +26,7 @@ $cli
* 6. Run data migration
*/
$vars = [
'_APP_ENV' => [
'default' => 'production',
'required' => false,
'question' => '',
],
'_APP_OPTIONS_ABUSE' => [
'default' => 'enabled',
'required' => false,
'question' => '',
],
'_APP_OPTIONS_FORCE_HTTPS' => [
'default' => 'enabled',
'required' => false,
'question' => '',
],
'_APP_OPENSSL_KEY_V1' => [
'default' => 'your-secret-key',
'required' => true,
'question' => 'Choose a secret API key, make sure to make a backup of your key in a secure location',
],
'_APP_DOMAIN' => [
'default' => 'localhost',
'required' => true,
'question' => 'Enter your Appwrite hostname',
],
'_APP_DOMAIN_TARGET' => [
'default' => 'localhost',
'required' => true,
'question' => "Enter a DNS A record hostname to server as a CNAME for your custom domains.\nYou can use the same value as used for the Appwrite hostname.",
],
'_APP_REDIS_HOST' => [
'default' => 'redis',
'required' => false,
'question' => '',
],
'_APP_REDIS_PORT' => [
'default' => '6379',
'required' => false,
'question' => '',
],
'_APP_DB_HOST' => [
'default' => 'mariadb',
'required' => false,
'question' => '',
],
'_APP_DB_PORT' => [
'default' => '3306',
'required' => false,
'question' => '',
],
'_APP_DB_SCHEMA' => [
'default' => 'appwrite',
'required' => false,
'question' => '',
],
'_APP_DB_USER' => [
'default' => 'user',
'required' => false,
'question' => '',
],
'_APP_DB_PASS' => [
'default' => 'password',
'required' => false,
'question' => '',
],
'_APP_INFLUXDB_HOST' => [
'default' => 'influxdb',
'required' => false,
'question' => '',
],
'_APP_INFLUXDB_PORT' => [
'default' => '8086',
'required' => false,
'question' => '',
],
'_APP_STATSD_HOST' => [
'default' => 'telegraf',
'required' => false,
'question' => '',
],
'_APP_STATSD_PORT' => [
'default' => '8125',
'required' => false,
'question' => '',
],
'_APP_SMTP_HOST' => [
'default' => 'smtp',
'required' => false,
'question' => '',
],
'_APP_SMTP_PORT' => [
'default' => '25',
'required' => false,
'question' => '',
],
'_APP_STORAGE_LIMIT' => [
'default' => '100000000',
'required' => false,
'question' => '',
],
'_APP_FUNCTIONS_TIMEOUT' => [
'default' => '900',
'required' => false,
'question' => '',
],
'_APP_FUNCTIONS_CONTAINERS' => [
'default' => '10',
'required' => false,
'question' => '',
],
];
$vars = Config::getParam('variables');
// var_dump(realpath(__DIR__.'/docker-compose.yml'));
// var_dump(yaml_parse_file(__DIR__.'/docker-compose.yml'));
@ -157,14 +47,14 @@ $cli
foreach($vars as $key => $var) {
if(!$var['required']) {
$input[$key] = $var['default'];
$input[$var['name']] = $var['default'];
continue;
}
$input[$key] = Console::confirm($var['question'].' (default: \''.$var['default'].'\')');
$input[$var['name']] = Console::confirm($var['question'].' (default: \''.$var['default'].'\')');
if(empty($input[$key])) {
$input[$key] = $var['default'];
$input[$var['name']] = $var['default'];
}
}
@ -188,9 +78,8 @@ $cli
// throw new Exception('Failed to save Docker Compose file');
// }
$stdout = null;
$stderr = null;
$stdout = '';
$stderr = '';
Console::execute('docker-compose -f /install/appwrite/docker-compose.yml up -d', null, $stdout, $stderr);
if ($stdout != NULL) {