docker stuff
This commit is contained in:
		
							parent
							
								
									0f10e59e38
								
							
						
					
					
						commit
						6292f72032
					
				
							
								
								
									
										0
									
								
								core/Configuration/.gitignore
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										0
									
								
								core/Configuration/.gitignore
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								core/Configuration/.htaccess
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										0
									
								
								core/Configuration/.htaccess
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								core/Configuration/Configuration.class.php
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										0
									
								
								core/Configuration/Configuration.class.php
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								core/Configuration/CreateDatabase.class.php
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										0
									
								
								core/Configuration/CreateDatabase.class.php
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							@ -88,6 +88,10 @@ namespace Documents\Install {
 | 
			
		||||
      $this->steps = array();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function isDocker(): bool {
 | 
			
		||||
      return file_exists("/.dockerenv");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function getParameter($name): ?string {
 | 
			
		||||
      if (isset($_REQUEST[$name]) && is_string($_REQUEST[$name])) {
 | 
			
		||||
        return trim($_REQUEST[$name]);
 | 
			
		||||
@ -542,6 +546,10 @@ namespace Documents\Install {
 | 
			
		||||
            $attributes["max"] = $formItem["max"];
 | 
			
		||||
          if (isset($formItem["step"]) && is_numeric($formItem["step"]))
 | 
			
		||||
            $attributes["step"] = $formItem["step"];
 | 
			
		||||
        } else {
 | 
			
		||||
          if (isset($formItem["default"])) {
 | 
			
		||||
            $attributes["value"] = $formItem["default"];
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -579,6 +587,12 @@ namespace Documents\Install {
 | 
			
		||||
 | 
			
		||||
    private function createProgessMainview(): string {
 | 
			
		||||
 | 
			
		||||
      $isDocker = $this->isDocker();
 | 
			
		||||
      $defaultHost = ($isDocker ? "db" : "");
 | 
			
		||||
      $defaultUsername = ($isDocker ? "root" : "");
 | 
			
		||||
      $defaultPassword = ($isDocker ? "webbasedb" : "");
 | 
			
		||||
      $defaultDatabase = ($isDocker ? "webbase" : "");
 | 
			
		||||
 | 
			
		||||
      $views = array(
 | 
			
		||||
        self::CHECKING_REQUIREMENTS => array(
 | 
			
		||||
          "title" => "Application Requirements",
 | 
			
		||||
@ -590,13 +604,13 @@ namespace Documents\Install {
 | 
			
		||||
            array("title" => "Database Type", "name" => "type", "type" => "select", "required" => true, "items" => array(
 | 
			
		||||
              "mysql" => "MySQL", "postgres" => "PostgreSQL"
 | 
			
		||||
            )),
 | 
			
		||||
            array("title" => "Username", "name" => "username", "type" => "text", "required" => true),
 | 
			
		||||
            array("title" => "Password", "name" => "password", "type" => "password"),
 | 
			
		||||
            array("title" => "Database", "name" => "database", "type" => "text", "required" => true),
 | 
			
		||||
            array("title" => "Username", "name" => "username", "type" => "text", "required" => true, "default" => $defaultUsername),
 | 
			
		||||
            array("title" => "Password", "name" => "password", "type" => "password", "default" => $defaultPassword),
 | 
			
		||||
            array("title" => "Database", "name" => "database", "type" => "text", "required" => true, "default" => $defaultDatabase),
 | 
			
		||||
            array("type" => "row", "items" => array(
 | 
			
		||||
              array(
 | 
			
		||||
                "title" => "Address", "name" => "host", "type" => "text", "required" => true,
 | 
			
		||||
                "value" => "localhost", "row" => true
 | 
			
		||||
                "value" => "localhost", "row" => true, "default" => $defaultHost
 | 
			
		||||
              ),
 | 
			
		||||
              array(
 | 
			
		||||
                "title" => "Port", "name" => "port", "type" => "number", "required" => true,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										28
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
			
		||||
version: "3.9"
 | 
			
		||||
services:
 | 
			
		||||
  web:
 | 
			
		||||
    image: nginx:latest
 | 
			
		||||
    ports:
 | 
			
		||||
      - "80:80"
 | 
			
		||||
    volumes:
 | 
			
		||||
    - .:/application:rw
 | 
			
		||||
    - ./docker/nginx/site.conf:/etc/nginx/conf.d/default.conf:ro
 | 
			
		||||
    links:
 | 
			
		||||
      - db
 | 
			
		||||
      - php
 | 
			
		||||
  db:
 | 
			
		||||
    image: mariadb:latest
 | 
			
		||||
    ports:
 | 
			
		||||
      -  '3306:3306'
 | 
			
		||||
    environment:
 | 
			
		||||
      - "MYSQL_ROOT_PASSWORD=webbasedb"
 | 
			
		||||
      - "MYSQL_DATABASE=webbase"
 | 
			
		||||
  php:
 | 
			
		||||
    volumes:
 | 
			
		||||
      - .:/application:rw
 | 
			
		||||
      - ./docker/php/php.ini:/usr/local/etc/php/php.ini:ro
 | 
			
		||||
    build:
 | 
			
		||||
      context: './docker/php/'
 | 
			
		||||
    links:
 | 
			
		||||
      - db
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								docker/.htaccess
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										1
									
								
								docker/.htaccess
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
DENY FROM ALL
 | 
			
		||||
							
								
								
									
										46
									
								
								docker/nginx/site.conf
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										46
									
								
								docker/nginx/site.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,46 @@
 | 
			
		||||
server {
 | 
			
		||||
    index index.php index.html;
 | 
			
		||||
    error_log  /var/log/nginx/error.log;
 | 
			
		||||
    access_log /var/log/nginx/access.log;
 | 
			
		||||
    root /application;
 | 
			
		||||
 | 
			
		||||
    # rewrite api
 | 
			
		||||
    rewrite ^/api(/.*)$ /index.php?api=$1;
 | 
			
		||||
 | 
			
		||||
    # deny access to .gitignore / .htaccess
 | 
			
		||||
    location ~ /\. {
 | 
			
		||||
        rewrite ^(.*)$ /index.php?site=$1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # deny access to docker-compose.yml
 | 
			
		||||
    location /docker-compose.yml {
 | 
			
		||||
        rewrite ^(.*)$ /index.php?site=$1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # deny access to specific directories
 | 
			
		||||
    location ~ ^/(files/uploaded|adminPanel|fileControlPanel|docker|core)/.*$ {
 | 
			
		||||
        rewrite ^(.*)$ /index.php?site=$1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #  try to find the specified file
 | 
			
		||||
    location / {
 | 
			
		||||
        try_files $uri $uri @redirectToIndex;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # redirect to index.php
 | 
			
		||||
    location @redirectToIndex {
 | 
			
		||||
        rewrite ^(.*)$ /index.php?site=$1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # serve .php files
 | 
			
		||||
    location ~ \.php$ {
 | 
			
		||||
        try_files $uri =404;
 | 
			
		||||
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
 | 
			
		||||
        fastcgi_pass php:9000;
 | 
			
		||||
        fastcgi_index index.php;
 | 
			
		||||
        include fastcgi_params;
 | 
			
		||||
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 | 
			
		||||
        fastcgi_param PATH_INFO $fastcgi_path_info;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								docker/php/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										4
									
								
								docker/php/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
FROM php:7-fpm
 | 
			
		||||
WORKDIR "/application"
 | 
			
		||||
 | 
			
		||||
RUN docker-php-ext-install mysqli
 | 
			
		||||
							
								
								
									
										1950
									
								
								docker/php/php.ini
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										1950
									
								
								docker/php/php.ini
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -18,7 +18,7 @@ use Elements\Document;
 | 
			
		||||
 | 
			
		||||
if (!is_readable(getClassPath(Configuration::class))) {
 | 
			
		||||
  header("Content-Type: application/json");
 | 
			
		||||
  die(json_encode(array( "success" => false, "msg" => "Configuration directory is not readable, check permissions before proceeding." )));
 | 
			
		||||
  die(json_encode(array( "success" => false, "msg" => "Configuration class is not readable, check permissions before proceeding." )));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$config = new Configuration();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user