diff --git a/files/functions b/files/functions index f05bb20..c7cc112 100644 --- a/files/functions +++ b/files/functions @@ -54,6 +54,7 @@ function site_init { ln -sf /etc/openstackid/environment.php $target_dir/bootstrap/environment.php ln -sf /etc/openstackid/recaptcha.php $target_dir/app/config/packages/greggilbert/recaptcha/$LARAVEL_ENV/config.php ln -sf /etc/openstackid/database.php $target_dir/app/config/$LARAVEL_ENV/database.php + ln -sf /etc/openstackid/app.php $target_dir/app/config/$LARAVEL_ENV/app.php ln -sf /etc/openstackid/log.php $target_dir/app/config/$LARAVEL_ENV/log.php ln -sf /etc/openstackid/server.php $target_dir/app/config/$LARAVEL_ENV/server.php # convert app/storage into symlink and set permissions @@ -164,6 +165,7 @@ function site_update { ln -sf /etc/openstackid/environment.php $target_dir/bootstrap/environment.php ln -sf /etc/openstackid/recaptcha.php $target_dir/app/config/packages/greggilbert/recaptcha/$LARAVEL_ENV/config.php ln -sf /etc/openstackid/database.php $target_dir/app/config/$LARAVEL_ENV/database.php + ln -sf /etc/openstackid/app.php $target_dir/app/config/$LARAVEL_ENV/app.php ln -sf /etc/openstackid/log.php $target_dir/app/config/$LARAVEL_ENV/log.php ln -sf /etc/openstackid/server.php $target_dir/app/config/$LARAVEL_ENV/server.php # link shared app/storage directory diff --git a/manifests/deploy.pp b/manifests/deploy.pp index 8541d5e..c7411dd 100644 --- a/manifests/deploy.pp +++ b/manifests/deploy.pp @@ -51,4 +51,3 @@ define openstackid::deploy ( require => File[$deploy_dirs], } } - diff --git a/manifests/init.pp b/manifests/init.pp index 81864b2..8e2fd9e 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -51,6 +51,9 @@ class openstackid ( $openstackid_release = 'latest', $ssl_enable = true, $oauth2_enable = true, + $app_url = '', + $app_key = '', + $app_timezone = 'UTC' ) { # php packages needed for openid server @@ -102,6 +105,17 @@ class openstackid ( ] } + file { '/etc/openstackid/app.php': + ensure => present, + content => template('openstackid/app.php.erb'), + owner => 'root', + group => 'www-data', + mode => '0640', + require => [ + File['/etc/openstackid'], + ] + } + file { '/etc/openstackid/log.php': ensure => present, content => template('openstackid/log.php.erb'), @@ -230,6 +244,7 @@ class openstackid ( File['/etc/openstackid/log.php'], File['/etc/openstackid/environment.php'], File['/etc/openstackid/server.php'], + File['/etc/openstackid/app.php'], Package['curl'], Package[$php5_packages] ], } @@ -244,6 +259,7 @@ class openstackid ( Httpd::Vhost[$vhost_name], File['/etc/openstackid/recaptcha.php'], File['/etc/openstackid/database.php'], + File['/etc/openstackid/app.php'], File['/etc/openstackid/log.php'], File['/etc/openstackid/environment.php'], File['/etc/openstackid/server.php'], diff --git a/templates/app.php.erb b/templates/app.php.erb new file mode 100644 index 0000000..d26d58d --- /dev/null +++ b/templates/app.php.erb @@ -0,0 +1,186 @@ + false, + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => '<%= @app_url %>', + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => '<%= @app_timezone %>', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => '<%= @app_key %>', + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => array( + 'Illuminate\Foundation\Providers\ArtisanServiceProvider', + 'Illuminate\Auth\AuthServiceProvider', + 'Illuminate\Cache\CacheServiceProvider', + 'Illuminate\Session\CommandsServiceProvider', + 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', + 'Illuminate\Routing\ControllerServiceProvider', + 'Illuminate\Cookie\CookieServiceProvider', + 'Illuminate\Database\DatabaseServiceProvider', + 'Illuminate\Encryption\EncryptionServiceProvider', + 'Illuminate\Filesystem\FilesystemServiceProvider', + 'Illuminate\Hashing\HashServiceProvider', + 'Illuminate\Html\HtmlServiceProvider', + 'Illuminate\Log\LogServiceProvider', + 'Illuminate\Mail\MailServiceProvider', + 'Illuminate\Database\MigrationServiceProvider', + 'Illuminate\Pagination\PaginationServiceProvider', + 'Illuminate\Queue\QueueServiceProvider', + 'Illuminate\Remote\RemoteServiceProvider', + 'Illuminate\Auth\Reminders\ReminderServiceProvider', + 'Illuminate\Database\SeedServiceProvider', + 'Illuminate\Session\SessionServiceProvider', + 'Illuminate\Translation\TranslationServiceProvider', + 'Illuminate\Validation\ValidationServiceProvider', + 'Illuminate\View\ViewServiceProvider', + 'Illuminate\Workbench\WorkbenchServiceProvider', + 'Illuminate\Redis\RedisServiceProvider', + 'services\utils\UtilsProvider', + 'repositories\RepositoriesProvider', + 'services\oauth2\OAuth2ServiceProvider', + 'services\openid\OpenIdProvider', + 'auth\AuthenticationServiceProvider', + 'services\ServicesProvider', + 'strategies\StrategyProvider', + 'oauth2\OAuth2ServiceProvider', + 'openid\OpenIdServiceProvider', + 'Greggilbert\Recaptcha\RecaptchaServiceProvider', + 'services\oauth2\CORS\CORSProvider', + ), + + /* + |-------------------------------------------------------------------------- + | Service Provider Manifest + |-------------------------------------------------------------------------- + | + | The service provider manifest is used by Laravel to lazy load service + | providers which are not needed for each request, as well to keep a + | list of all of the services. Here, you may set its storage spot. + | + */ + + 'manifest' => storage_path().'/meta', + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => array( + + 'App' => 'Illuminate\Support\Facades\App', + 'Artisan' => 'Illuminate\Support\Facades\Artisan', + 'Auth' => 'Illuminate\Support\Facades\Auth', + 'Blade' => 'Illuminate\Support\Facades\Blade', + 'Cache' => 'Illuminate\Support\Facades\Cache', + 'ClassLoader' => 'Illuminate\Support\ClassLoader', + 'Config' => 'Illuminate\Support\Facades\Config', + 'Controller' => 'Illuminate\Routing\Controller', + 'Cookie' => 'Illuminate\Support\Facades\Cookie', + 'Crypt' => 'Illuminate\Support\Facades\Crypt', + 'DB' => 'Illuminate\Support\Facades\DB', + 'Eloquent' => 'Illuminate\Database\Eloquent\Model', + 'Event' => 'Illuminate\Support\Facades\Event', + 'File' => 'Illuminate\Support\Facades\File', + 'Form' => 'Illuminate\Support\Facades\Form', + 'Hash' => 'Illuminate\Support\Facades\Hash', + 'HTML' => 'Illuminate\Support\Facades\HTML', + 'Input' => 'Illuminate\Support\Facades\Input', + 'Lang' => 'Illuminate\Support\Facades\Lang', + 'Log' => 'Illuminate\Support\Facades\Log', + 'Mail' => 'Illuminate\Support\Facades\Mail', + 'Paginator' => 'Illuminate\Support\Facades\Paginator', + 'Password' => 'Illuminate\Support\Facades\Password', + 'Queue' => 'Illuminate\Support\Facades\Queue', + 'Redirect' => 'Illuminate\Support\Facades\Redirect', + 'Request' => 'Illuminate\Support\Facades\Request', + 'Response' => 'Illuminate\Support\Facades\Response', + 'Route' => 'Illuminate\Support\Facades\Route', + 'Schema' => 'Illuminate\Support\Facades\Schema', + 'Seeder' => 'Illuminate\Database\Seeder', + 'Session' => 'Illuminate\Support\Facades\Session', + 'SSH' => 'Illuminate\Support\Facades\SSH', + 'Str' => 'Illuminate\Support\Str', + 'URL' => 'Illuminate\Support\Facades\URL', + 'Validator' => 'Illuminate\Support\Facades\Validator', + 'View' => 'Illuminate\Support\Facades\View', + 'RedisLV4' => 'Illuminate\Support\Facades\Redis', + ), + +);