Merge pull request #392 from Attendize/fix-docker-install-process
Fix docker install process
This commit is contained in:
commit
d06322b1da
|
|
@ -5,7 +5,7 @@ APP_CIPHER=AES-256-CBC
|
|||
APP_KEY=
|
||||
APP_TIMEZONE=
|
||||
|
||||
DB_TYPE=pgsql
|
||||
DB_TYPE=mysql
|
||||
DB_HOST=db
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=attendize
|
||||
|
|
@ -23,8 +23,8 @@ MAIL_DRIVER=smtp
|
|||
MAIL_PORT=25
|
||||
MAIL_ENCRYPTION=
|
||||
MAIL_HOST=maildev
|
||||
MAIL_FROM_ADDRESS=
|
||||
MAIL_FROM_NAME=
|
||||
MAIL_FROM_ADDRESS=testing@attendize.com
|
||||
MAIL_FROM_NAME=testing_service
|
||||
MAIL_PASSWORD=
|
||||
MAIL_USERNAME=
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
FROM php:7.0.30-fpm
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libpq-dev \
|
||||
libmcrypt-dev \
|
||||
libpng-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libfreetype6-dev \
|
||||
libxrender1 \
|
||||
libfontconfig \
|
||||
libxext-dev \
|
||||
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
|
||||
&& docker-php-ext-install -j$(nproc) pdo_mysql mysqli mcrypt gd zip
|
||||
|
||||
RUN apt-get install -y zip unzip curl git
|
||||
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
RUN php composer-setup.php --install-dir=/usr/bin --filename=composer
|
||||
RUN php -r "unlink('composer-setup.php');"
|
||||
WORKDIR /usr/share/nginx/html/attendize
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
FROM php:7.0-fpm
|
||||
FROM php:7.0.30-fpm
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libpq-dev \
|
||||
libmcrypt-dev \
|
||||
|
|
@ -9,5 +9,5 @@ RUN apt-get update && apt-get install -y \
|
|||
libfontconfig \
|
||||
libxext-dev \
|
||||
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
|
||||
&& docker-php-ext-install -j$(nproc) pdo_pgsql pgsql mcrypt gd zip
|
||||
&& docker-php-ext-install -j$(nproc) pdo_mysql mysqli mcrypt gd zip
|
||||
WORKDIR /usr/share/nginx/html/attendize
|
||||
|
|
|
|||
|
|
@ -7,35 +7,23 @@ use Artisan;
|
|||
use Config;
|
||||
use DB;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\MessageBag;
|
||||
use PhpSpec\Exception\Example\ExampleException;
|
||||
use Log;
|
||||
|
||||
class InstallerController extends Controller
|
||||
{
|
||||
|
||||
private $data;
|
||||
|
||||
/**
|
||||
* InstallerController constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
/**
|
||||
* If we're already installed kill the request
|
||||
* @todo Check if DB is installed etc.
|
||||
*/
|
||||
if (file_exists(base_path('installed'))) {
|
||||
abort(403, 'Unauthorized action.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application installer
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function showInstaller()
|
||||
{
|
||||
public function __construct() {
|
||||
/*
|
||||
* Path we need to make sure are writable
|
||||
*/
|
||||
$data['paths'] = [
|
||||
$this->data['paths'] = [
|
||||
storage_path('app'),
|
||||
storage_path('framework'),
|
||||
storage_path('logs'),
|
||||
|
|
@ -50,7 +38,7 @@ class InstallerController extends Controller
|
|||
/*
|
||||
* Required PHP extensions
|
||||
*/
|
||||
$data['requirements'] = [
|
||||
$this->data['requirements'] = [
|
||||
'openssl',
|
||||
'pdo',
|
||||
'mbstring',
|
||||
|
|
@ -63,12 +51,32 @@ class InstallerController extends Controller
|
|||
/*
|
||||
* Optional PHP extensions
|
||||
*/
|
||||
$data['optional_requirements'] = [
|
||||
'pdo_pgsql',
|
||||
$this->data['optional_requirements'] = [
|
||||
'pdo_mysql',
|
||||
'pdo_pgsql',
|
||||
];
|
||||
}
|
||||
|
||||
return view('Installer.Installer', $data);
|
||||
/**
|
||||
* Show the application installer
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function showInstaller()
|
||||
{
|
||||
/**
|
||||
* If we're already installed display user friendly message and direct them to the appropriate next steps.
|
||||
*
|
||||
* @todo Check if DB is installed etc.
|
||||
* @todo Add some automated checks to see exactly what the state of the install is. Potentially would be nice to
|
||||
* allow the user to restart the install process
|
||||
*/
|
||||
if (file_exists(base_path('installed'))) {
|
||||
return view('Installer.AlreadyInstalled', $this->data);
|
||||
}
|
||||
|
||||
|
||||
return view('Installer.Installer', $this->data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -87,6 +95,32 @@ class InstallerController extends Controller
|
|||
$database['username'] = $request->get('database_username');
|
||||
$database['password'] = $request->get('database_password');
|
||||
|
||||
try {
|
||||
$this->validate($request, [
|
||||
'database_type' => 'required',
|
||||
'database_host' => 'required',
|
||||
'database_name' => 'required',
|
||||
'database_username' => 'required',
|
||||
'database_password' => 'required'
|
||||
]);
|
||||
$connectionDetailsValid = true;
|
||||
} catch (\Exception $e) {
|
||||
Log::error('Please enter all app settings. ' . $e->getMessage());
|
||||
$connectionDetailsValid = false;
|
||||
}
|
||||
|
||||
if (!$connectionDetailsValid) {
|
||||
|
||||
if ($request->get('test') === 'db') {
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => trans("Installer.connection_failure"),
|
||||
'test' => 1,
|
||||
];
|
||||
}
|
||||
return view('Installer.Installer', $this->data);
|
||||
}
|
||||
|
||||
$mail['driver'] = $request->get('mail_driver');
|
||||
$mail['port'] = $request->get('mail_port');
|
||||
$mail['username'] = $request->get('mail_username');
|
||||
|
|
@ -101,9 +135,8 @@ class InstallerController extends Controller
|
|||
$version = file_get_contents(base_path('VERSION'));
|
||||
|
||||
if ($request->get('test') === 'db') {
|
||||
$is_db_valid = self::testDatabase($database);
|
||||
|
||||
if ($is_db_valid === 'yes') {
|
||||
$db_valid = self::testDatabase($database);
|
||||
if ($db_valid) {
|
||||
return [
|
||||
'status' => 'success',
|
||||
'message' => trans("Installer.connection_success"),
|
||||
|
|
@ -118,6 +151,16 @@ class InstallerController extends Controller
|
|||
];
|
||||
}
|
||||
|
||||
//if a user doesn't use the default database details, enters incorrect values in the form, and then proceeds
|
||||
//the installation fails miserably. Rather check if the database connection details are valid and fail
|
||||
//gracefully
|
||||
$db_valid = self::testDatabase($database);
|
||||
if (!$db_valid) {
|
||||
return view('Installer.Installer', $this->data)->withErrors(
|
||||
new MessageBag(['Database connection failed. Please check the details you have entered and try again.']));
|
||||
}
|
||||
|
||||
|
||||
$config_string = file_get_contents(base_path() . '/.env.example');
|
||||
$config_temp = explode("\n", $config_string);
|
||||
foreach($config_temp as $key=>$row)
|
||||
|
|
@ -141,7 +184,8 @@ class InstallerController extends Controller
|
|||
"MAIL_FROM_ADDRESS" => $mail['from_address'],
|
||||
"MAIL_PASSWORD" => $mail['password'],
|
||||
];
|
||||
foreach($config as $key=>$val) {
|
||||
|
||||
foreach($config as $key => $val) {
|
||||
$set = false;
|
||||
foreach($config_temp as $rownum=>$row) {
|
||||
if($row[0]==$key) {
|
||||
|
|
@ -195,13 +239,19 @@ class InstallerController extends Controller
|
|||
Config::set("database.connections.{$database['type']}.username", $database['username']);
|
||||
Config::set("database.connections.{$database['type']}.password", $database['password']);
|
||||
|
||||
$databaseConnectionValid = FALSE;
|
||||
|
||||
try {
|
||||
DB::reconnect();
|
||||
$success = DB::connection()->getDatabaseName() ? 'yes' : 'no';
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
$pdo = DB::connection()->getPdo();
|
||||
if(!empty($pdo)) {
|
||||
$databaseConnectionValid = TRUE;
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Log::error('Database connection details invalid' . $e->getMessage());
|
||||
}
|
||||
|
||||
return $success;
|
||||
return $databaseConnectionValid;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
version: '2'
|
||||
version: '3.2'
|
||||
|
||||
services:
|
||||
web:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile-nginx
|
||||
env_file:
|
||||
- ./.env
|
||||
ports:
|
||||
- "8080:80"
|
||||
networks:
|
||||
|
|
@ -25,6 +27,16 @@ services:
|
|||
- .:/usr/share/nginx/html/attendize
|
||||
networks:
|
||||
- attendizenet
|
||||
composer:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile-composer
|
||||
depends_on:
|
||||
- php
|
||||
volumes:
|
||||
- .:/usr/share/nginx/html/attendize
|
||||
networks:
|
||||
- attendizenet
|
||||
php-worker:
|
||||
build:
|
||||
context: .
|
||||
|
|
@ -39,15 +51,20 @@ services:
|
|||
networks:
|
||||
- attendizenet
|
||||
db:
|
||||
image: postgres
|
||||
image: mysql:5.7.22
|
||||
restart: always
|
||||
env_file:
|
||||
- ./.env
|
||||
environment:
|
||||
- POSTGRES_USER=attendize
|
||||
- POSTGRES_PASSWORD=attendize
|
||||
- POSTGRES_DB=attendize
|
||||
MYSQL_ROOT_PASSWORD: "yes"
|
||||
MYSQL_HOST: ${DB_HOST}
|
||||
MYSQL_DATABASE: ${DB_DATABASE}
|
||||
MYSQL_USER: ${DB_USERNAME}
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
ports:
|
||||
- "5433:5432"
|
||||
- "3306:3306"
|
||||
volumes:
|
||||
- ./docker/pgdata:/var/lib/postgresql/data
|
||||
- "mysql-data:/var/lib/mysql"
|
||||
networks:
|
||||
- attendizenet
|
||||
maildev:
|
||||
|
|
@ -64,3 +81,6 @@ services:
|
|||
networks:
|
||||
attendizenet:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
mysql-data:
|
||||
132
readme.md
132
readme.md
|
|
@ -12,15 +12,16 @@ https://www.attendize.com
|
|||
|
||||
> PLEASE NOTE: Attendize is in the early stages of development and therefore is likely to contain bugs and unfinished features.
|
||||
|
||||
> Please ask any questions/report bugs in our new support forum: https://attendize.com/forum/
|
||||
> Please ask any questions/report bugs here: https://github.com/Attendize/Attendize/issues
|
||||
|
||||
Demo Event Page: http://attendize.website/e/799/attendize-test-event-w-special-guest-attendize
|
||||
---
|
||||
Demo Back-end Demo: http://attendize.website/signup
|
||||
|
||||
|
||||
|
||||
*Attendize* is an open-source event ticketing and event management application built using the Laravel PHP framework. Attendize was created to offer event organisers a simple solution to managing general admission events, without paying extortionate service fees.
|
||||
|
||||
Current Features (v1.X.X)
|
||||
### Current Features (v1.X.X)
|
||||
---
|
||||
- Beautiful mobile friendly event pages
|
||||
- Easy attendee management - Refunds, Messaging etc.
|
||||
|
|
@ -47,7 +48,7 @@ Current Features (v1.X.X)
|
|||
- Ability to ask custom questions during checkout
|
||||
- Browser based QR code scanner for door management
|
||||
|
||||
Roadmap
|
||||
### Roadmap
|
||||
---
|
||||
- Theme support
|
||||
- Plugin Support
|
||||
|
|
@ -59,35 +60,122 @@ Roadmap
|
|||
- Support for more payment providers
|
||||
- WordPress Plug-in
|
||||
|
||||
Official Documentation
|
||||
### Contribution
|
||||
---
|
||||
Feel free to fork and contribute. If you are unsure about adding a feature create a Github issue to ask for Feedback.
|
||||
|
||||
### Installation
|
||||
---
|
||||
To get developing straight away use the pre-configured Docker environment and follow the steps below.
|
||||
Docker needs to be installed on your machine for this to work. Follow the Docker installation steps for your environment here https://docs.docker.com/install
|
||||
|
||||
### Docker dev environment installation steps
|
||||
---
|
||||
|
||||
Limited Documentation available at https://www.attendize.com/documentation.php. Github will be updated with more comprehensive documentation soon.
|
||||
1. Clone the codebase from Github
|
||||
```git clone https://github.com/Attendize/Attendize```
|
||||
|
||||
2. Change directory to the cloned codebase
|
||||
```cd Attendize```
|
||||
|
||||
Contribution
|
||||
---
|
||||
3. Make a copy of the laravel environment file. It can be useful to set APP_DEBUG=true to help you debug any issues you might have
|
||||
```cp .env.example .env```
|
||||
|
||||
Feel free to fork and contribute. I could use the help!
|
||||
4. Set permissions correctly on storage and public/user_content folders
|
||||
```chmod -R a+w storage```
|
||||
```chmod -R a+w public/user_content```
|
||||
|
||||
Docker dev environment (not yet stable)
|
||||
---
|
||||
5. Run the docker-compose build command
|
||||
```docker-compose build```
|
||||
|
||||
To run a docker dev entionment do the following:
|
||||
6. Run composer to pull in the various dependencies for the project
|
||||
```docker run --rm -it -v $(pwd):/usr/share/nginx/html/attendize attendize_composer composer install```
|
||||
|
||||
```
|
||||
git clone https://github.com/Attendize/Attendize
|
||||
cd Attendize
|
||||
cp .env.example .env
|
||||
chmod -R a+w storage
|
||||
chmod -R a+w public/user_content
|
||||
docker-compose build
|
||||
docker run --rm -v $(pwd):/app composer/composer install
|
||||
docker-compose up -d
|
||||
7. Run the Laravel generate a key for the app
|
||||
```docker run --rm -it -v $(pwd):/usr/share/nginx/html/attendize attendize_php php artisan key:generate```
|
||||
|
||||
8. Run docker-compose up to create the development environment. You can drop the -d flag to see output from the containers which is useful for debugging.
|
||||
```docker-compose up -d```
|
||||
|
||||
At this point you should be able to browse to `http://localhost:8080`. You can follow the web instructions to continue installing Attendize. If you are comfortable
|
||||
on the command line you can run Step 9 below.
|
||||
|
||||
9. Run the command to create the various database tables
|
||||
```
|
||||
docker-compose run php php artisan attendize:install
|
||||
```
|
||||
|
||||
Attendize will be available at `http://localhost:8080` and maildev at `http://localhost:1080`
|
||||
Attendize should now be available at `http://localhost:8080` and maildev at `http://localhost:1080`
|
||||
|
||||
|
||||
### Manual Installation
|
||||
---
|
||||
Attendize should run on most pre-configured LAMP or LEMP environments as long as certain requirements are adhered to.
|
||||
|
||||
#### Requirements
|
||||
|
||||
##### PHP Version and Extension
|
||||
PHP >= 5.5.9
|
||||
OpenSSL PHP Extension
|
||||
PDO PHP Extension
|
||||
Mbstring PHP Extension
|
||||
Tokenizer PHP Extension
|
||||
Fileinfo PHP Extension
|
||||
GD PHP Extension
|
||||
|
||||
##### MySQL
|
||||
MySQL version 5.6 and 5.7 have been tested
|
||||
|
||||
##### Apache and Nginx
|
||||
Most versions should work. Check the troubleshooting guide below for correct Nginx and Apache configurations.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
#### If you have an old version of Attendize installed you can destroy your old environments using the commands below. Please take note that if you have a pre-existing MySQL
|
||||
|
||||
#### Most problems can be fixed my making sure the following files and folders are writable:
|
||||
|
||||
Storage/app/
|
||||
Storage/framework/
|
||||
Storage/logs/
|
||||
Storage/cache/
|
||||
public/user_content/
|
||||
bootstrap/cache/
|
||||
.env
|
||||
Always check the log in Storage/logs as it will likely show you what the problem is.
|
||||
|
||||
#### Trouble generating PDF tickets? / Checkout failing
|
||||
|
||||
Attendize uses Wkhtml2PDF to generate tickets. If you are getting errors while generating PDFs make sure all the driver files in vendor\nitmedia\wkhtml2pdf\src\Nitmedia\Wkhtml2pdf\lib executable.
|
||||
|
||||
Also make sure the setting for WKHTML2PDF_BIN_FILE is correct in the .env file. The acceptable options are:
|
||||
|
||||
wkhtmltopdf-0.12.1-OS-X.i386 - Mac OS X 10.8+ (Carbon), 32-bit
|
||||
wkhtmltopdf-amd64 - Linux (Debian Wheezy), 64-bit, for recent distributions (i.e. glibc 2.13 or later)
|
||||
wkhtmltopdf-i386 - Linux (Debian Wheezy), 32-bit, for recent distributions (i.e. glibc 2.13 or later)
|
||||
|
||||
#### TokenMismatchException error
|
||||
This error can occur when the session expires, try refreshing the page.
|
||||
|
||||
#### Installer not showing up?
|
||||
Try navigating to your-site.com/public/. If that works and your-site.com/ doesn't, it means your server configuration needs to be updated.
|
||||
|
||||
##### Apache
|
||||
Make sure the mod_rewrite module is enabled and the .htaccess file is being recognised.
|
||||
|
||||
##### Nginx
|
||||
On Nginx, use the following directive in your site configuration:
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
}
|
||||
|
||||
##### Seeing 'Maximum function nesting level of '100' reached' error?
|
||||
This appears to occur when xdebug is enabled.
|
||||
|
||||
Adding:
|
||||
xdebug.max_nesting_level = 200
|
||||
to php.ini and restarting apache should solve the issue.
|
||||
|
||||
|
||||
License
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1,46 +1,50 @@
|
|||
<?php
|
||||
/*************************************************************************
|
||||
Generated via "php artisan localization:missing" at 2018/04/17 16:35:44
|
||||
*************************************************************************/
|
||||
* Generated via "php artisan localization:missing" at 2018/04/17 16:35:44
|
||||
*************************************************************************/
|
||||
|
||||
return array (
|
||||
return array(
|
||||
'connection_success' => 'Success, Your connection works!',
|
||||
'connection_failure' => 'Unable to connect! Please check your settings',
|
||||
'app_settings' => 'App settings',
|
||||
'application_url' => 'Application URL',
|
||||
'database_host' => 'Database Host',
|
||||
'database_name' => 'Database Name',
|
||||
'database_password' => 'Database Password',
|
||||
'database_settings' => 'Database Settings',
|
||||
'database_test_connect_failure' => 'Unable to connect. Please check your settings.',
|
||||
'database_test_connect_failure_error_message' => 'Error Message',
|
||||
'database_test_connect_failure_error_type' => 'Error Type',
|
||||
'database_test_connect_failure_message' => 'Unable to connect. Please check your settings.',
|
||||
'database_test_connect_success' => 'Success! Database settings are working!',
|
||||
'database_type' => 'Database Type',
|
||||
'database_username' => 'Database Username',
|
||||
'email_settings' => 'Email Settings',
|
||||
'files_n_folders_check' => 'Files & Folders Check',
|
||||
'install' => 'Install Attendize',
|
||||
'mail_encryption' => 'Mail Encryption',
|
||||
'mail_from_address' => 'Mail From Address',
|
||||
'mail_from_help' => 'To use PHP\'s <a target="_blank" href="http://php.net/manual/en/function.mail.php">mail</a> feature enter <b>mail</b> in this box and leave the below fields empty.',
|
||||
'mail_from_name' => 'Mail From Name',
|
||||
'mail_host' => 'Mail Host',
|
||||
'mail_password' => 'Mail Password',
|
||||
'mail_port' => 'Mail Port',
|
||||
'mail_username' => 'Mail Username',
|
||||
'optional_requirement_not_met' => 'Warning: <b>:requirement</b> extension is not loaded',
|
||||
'path_not_writable' => 'Warning: <b>:path</b> is not writable',
|
||||
'path_writable' => 'Success: <b>:path</b> is writable',
|
||||
'php_enough' => 'Success: The application requires PHP >= <b>:requires</b> and yours is <b>:has</b>',
|
||||
'php_optional_requirements_check' => 'PHP Optional Requirements Check',
|
||||
'php_requirements_check' => 'PHP Requirements Check',
|
||||
'php_too_low' => 'Warning: The application requires PHP >= <b>:requires.</b> Your version is <b>:has</b>.',
|
||||
'php_version_check' => 'PHP Version Check',
|
||||
'requirement_met' => 'Success: <b>:requirement</b> extension is loaded',
|
||||
'requirement_not_met' => 'Error: <b>:requirement</b> extension is not loaded',
|
||||
'setup' => 'Attendize Setup',
|
||||
'test_database_connection' => 'Test Database Connection',
|
||||
'title' => 'Attendize Web Installer',
|
||||
);
|
||||
'app_settings' => 'App settings',
|
||||
'application_url' => 'Application URL',
|
||||
'database_host' => 'Database Host',
|
||||
'database_name' => 'Database Name',
|
||||
'database_password' => 'Database Password',
|
||||
'database_settings' => 'Database Settings',
|
||||
'database_message' => 'If you are using the docker environment for development you can simple use the pre-filled values. If you are using your own environment you will need to update the database settings. Use the Test Database Connection to ensure your details are correct. Incorrect database details will result in installation issues.',
|
||||
'database_test_connect_failure' => 'Unable to connect. Please check your settings.',
|
||||
'database_test_connect_failure_error_message' => 'Error Message',
|
||||
'database_test_connect_failure_error_type' => 'Error Type',
|
||||
'database_test_connect_failure_message' => 'Unable to connect. Please check your settings.',
|
||||
'database_test_connect_success' => 'Success! Database settings are working!',
|
||||
'database_type' => 'Database Type',
|
||||
'database_username' => 'Database Username',
|
||||
'email_settings' => 'Email Settings',
|
||||
'files_n_folders_check' => 'Files & Folders Check',
|
||||
'install' => 'Install Attendize',
|
||||
'mail_encryption' => 'Mail Encryption',
|
||||
'mail_from_address' => 'Mail From Address',
|
||||
'mail_from_help' => 'To use PHP\'s <a target="_blank" href="http://php.net/manual/en/function.mail.php">mail</a> feature enter <b>mail</b> in this box and leave the below fields empty.',
|
||||
'mail_from_name' => 'Mail From Name',
|
||||
'mail_host' => 'Mail Host',
|
||||
'mail_password' => 'Mail Password',
|
||||
'mail_port' => 'Mail Port',
|
||||
'mail_username' => 'Mail Username',
|
||||
'optional_requirement_not_met' => 'Warning: <b>:requirement</b> extension is not loaded',
|
||||
'path_not_writable' => 'Warning: <b>:path</b> is not writable',
|
||||
'path_writable' => 'Success: <b>:path</b> is writable',
|
||||
'php_enough' => 'Success: The application requires PHP >= <b>:requires</b> and yours is <b>:has</b>',
|
||||
'php_optional_requirements_check' => 'PHP Optional Requirements Check',
|
||||
'php_requirements_check' => 'PHP Requirements Check',
|
||||
'php_too_low' => 'Warning: The application requires PHP >= <b>:requires.</b> Your version is <b>:has</b>.',
|
||||
'php_version_check' => 'PHP Version Check',
|
||||
'requirement_met' => 'Success: <b>:requirement</b> extension is loaded',
|
||||
'requirement_not_met' => 'Error: <b>:requirement</b> extension is not loaded',
|
||||
'setup' => 'Attendize Setup',
|
||||
'setup_completed' => 'Attendize Setup Already',
|
||||
'setup_completed_already_message' => "An install file has been detected which means Attendize setup process has already completed. <br /> If you haven't setup a default user you can " .
|
||||
"<a href='/signup'>Signup Default User</a><br />If you have already created a default user you can <a href='/login'>Login Here </a>",
|
||||
'test_database_connection' => 'Test Database Connection',
|
||||
'title' => 'Attendize Web Installer',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
@extends('Shared.Layouts.MasterWithoutMenus')
|
||||
|
||||
@section('title')
|
||||
@lang("Installer.title")
|
||||
@stop
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-md-7 col-md-offset-2">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<div class="logo">
|
||||
{!!HTML::image('assets/images/logo-dark.png')!!}
|
||||
</div>
|
||||
|
||||
<h1>@lang("Installer.setup_completed")</h1>
|
||||
<p>@lang("Installer.setup_completed_already_message")</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -29,7 +29,15 @@
|
|||
</div>
|
||||
|
||||
<h1>@lang("Installer.setup")</h1>
|
||||
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<h3>@lang("Installer.php_version_check")</h3>
|
||||
@if (version_compare(phpversion(), '5.5.9', '<'))
|
||||
|
|
@ -102,12 +110,13 @@
|
|||
</div>
|
||||
|
||||
<h3>@lang("Installer.database_settings")</h3>
|
||||
<p>@lang("Installer.database_message")</p>
|
||||
|
||||
<div class="form-group">
|
||||
{!! Form::label('database_type', trans("Installer.database_type"), array('class'=>'required control-label ')) !!}
|
||||
{!! Form::select('database_type', array(
|
||||
'pgsql' => "Postgres",
|
||||
'mysql' => "MySQL",
|
||||
'pgsql' => "Postgres",
|
||||
), Input::old('database_type'),
|
||||
array(
|
||||
'class'=>'form-control'
|
||||
|
|
@ -116,16 +125,17 @@
|
|||
|
||||
<div class="form-group">
|
||||
{!! Form::label('database_host', trans("Installer.database_host"), array('class'=>'control-label required')) !!}
|
||||
{!! Form::text('database_host', Input::old('database_host'),
|
||||
{!! Form::text('database_host', $value = env("DB_HOST") ,
|
||||
array(
|
||||
'class'=>'form-control ',
|
||||
'placeholder'=>''
|
||||
)) !!}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
{!! Form::label('database_name', trans("Installer.database_name"), array('class'=>'required control-label ')) !!}
|
||||
{!! Form::text('database_name', Input::old('database_name'),
|
||||
{!! Form::label('database_name', trans("Installer.database_name"), array('class'=>'required control-label required')) !!}
|
||||
{!! Form::text('database_name', $value = env("DB_DATABASE") ,
|
||||
array(
|
||||
'class'=>'form-control'
|
||||
)) !!}
|
||||
|
|
@ -133,15 +143,15 @@
|
|||
|
||||
<div class="form-group">
|
||||
{!! Form::label('database_username', trans("Installer.database_username"), array('class'=>'control-label required')) !!}
|
||||
{!! Form::text('database_username', Input::old('database_username'),
|
||||
{!! Form::text('database_username', $value = env("DB_USERNAME"),
|
||||
array(
|
||||
'class'=>'form-control ',
|
||||
'placeholder'=>'',
|
||||
)) !!}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
{!! Form::label('database_password', trans("Installer.database_password"), array('class'=>'control-label ')) !!}
|
||||
{!! Form::text('database_password', Input::old('database_password'),
|
||||
{!! Form::label('database_password', trans("Installer.database_password"), array('class'=>'control-label required')) !!}
|
||||
{!! Form::text('database_password', $value = env("DB_PASSWORD"),
|
||||
array(
|
||||
'class'=>'form-control ',
|
||||
'placeholder'=>'',
|
||||
|
|
@ -186,21 +196,21 @@
|
|||
|
||||
<div class="form-group">
|
||||
{!! Form::label('mail_from_address', trans("Installer.mail_from_address"), array('class'=>' control-label required')) !!}
|
||||
{!! Form::text('mail_from_address', Input::old('mail_from_address'),
|
||||
{!! Form::text('mail_from_address', $value = env("MAIL_FROM_ADDRESS") ,
|
||||
array(
|
||||
'class'=>'form-control'
|
||||
)) !!}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
{!! Form::label('mail_from_name', trans("Installer.mail_from_name"), array('class'=>' control-label required')) !!}
|
||||
{!! Form::text('mail_from_name', Input::old('mail_from_name'),
|
||||
{!! Form::text('mail_from_name', $value = env("MAIL_FROM_NAME") ,
|
||||
array(
|
||||
'class'=>'form-control'
|
||||
)) !!}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
{!! Form::label('mail_driver', trans("Installer.mail_from_address"), array('class'=>' control-label required')) !!}
|
||||
{!! Form::text('mail_driver', Input::old('mail_driver'),
|
||||
{!! Form::text('mail_driver', $value = env("MAIL_DRIVER"),
|
||||
array(
|
||||
'class'=>'form-control ',
|
||||
'placeholder' => 'mail'
|
||||
|
|
@ -212,7 +222,7 @@
|
|||
|
||||
<div class="form-group">
|
||||
{!! Form::label('mail_port', trans("Installer.mail_port"), array('class'=>' control-label ')) !!}
|
||||
{!! Form::text('mail_port', Input::old('mail_port'),
|
||||
{!! Form::text('mail_port', $value = env("MAIL_PORT"),
|
||||
array(
|
||||
'class'=>'form-control'
|
||||
)) !!}
|
||||
|
|
@ -227,7 +237,7 @@
|
|||
</div>
|
||||
<div class="form-group">
|
||||
{!! Form::label('mail_host', trans("Installer.mail_host"), array('class'=>' control-label ')) !!}
|
||||
{!! Form::text('mail_host', Input::old('mail_host'),
|
||||
{!! Form::text('mail_host', $value = env("MAIL_HOST"),
|
||||
array(
|
||||
'class'=>'form-control'
|
||||
)) !!}
|
||||
|
|
@ -246,7 +256,7 @@
|
|||
'class'=>'form-control'
|
||||
)) !!}
|
||||
</div>
|
||||
|
||||
{!! csrf_field() !!}
|
||||
@include("Installer.Partials.Footer")
|
||||
|
||||
{!! Form::submit(trans("Installer.install"), ['class'=>" btn-block btn btn-success"]) !!}
|
||||
|
|
|
|||
Loading…
Reference in New Issue