added a skeleton for faster deployment
This commit is contained in:
		
							parent
							
								
									bedf615ad3
								
							
						
					
					
						commit
						7b02960b46
					
				
							
								
								
									
										27
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								README.md
									
									
									
									
									
								
							@ -11,29 +11,22 @@ Master Repo: https://git.4lt.ca/4lt/novaconium
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Getting Started
 | 
					## Getting Started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Installation is using the composer docker container. If you are using native composer, replace the docker line with: ```composer require 4lt/novaconium```.
 | 
					Novaconium is heavly influenced by docker, but you can use composer outside of docker.  
 | 
				
			||||||
 | 
					You can [learn more about how novaconium works with composer](https://git.4lt.ca/4lt/novaconium/src/branch/master/docs/Install-Composer-On-Debian.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
mkdir project_name;
 | 
					PROJECTNAME=novaproject
 | 
				
			||||||
cd project_name;
 | 
					mkdir -p $PROJECTNAME/novaconium;
 | 
				
			||||||
 | 
					cd $PROJECTNAME;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
docker run --rm --interactive --tty --volume $PWD:/app composer:latest require 4lt/novaconium
 | 
					docker run --rm --interactive --tty --volume ./novaconium/:/app composer:latest require 4lt/novaconium
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cp -R vendor/4lt/novaconium/defaults/App/ .
 | 
					cp -R novaconium/vendor/4lt/novaconium/skeleton/. .
 | 
				
			||||||
cp -R vendor/4lt/novaconium/defaults/public/ .
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
## APP Database config
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Open the /App/config.php file and change the database section to match the above:
 | 
					# Edit .env
 | 
				
			||||||
 | 
					# Edit novaconium/App/config.php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```php
 | 
					docker compose up -d
 | 
				
			||||||
'database' => [ 
 | 
					 | 
				
			||||||
        'host' => 'mariadb',
 | 
					 | 
				
			||||||
        'name' => 'mydb',
 | 
					 | 
				
			||||||
        'user' => 'dbuser',
 | 
					 | 
				
			||||||
        'pass' => 'AlsoChangeThisPassword0123456789',
 | 
					 | 
				
			||||||
        'port' => 3306
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Documentation
 | 
					## Documentation
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "name": "4lt/novaconium", 
 | 
					    "name": "4lt/novaconium", 
 | 
				
			||||||
    "description": "A high-performance PHP framework built from the past.",
 | 
					    "description": "A high-performance PHP framework built from the past.",
 | 
				
			||||||
    "version": "1.0.4",
 | 
					 | 
				
			||||||
    "license": "MIT",
 | 
					    "license": "MIT",
 | 
				
			||||||
    "authors": [
 | 
					    "authors": [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										18
									
								
								docs/Composer.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/Composer.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					# PHP Composer Cheatsheet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Install novaconium with composer: ```composer require 4lt/novaconium```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Install novaconium with composer in docker: ```docker run --rm --interactive --tty --volume $PWD:/app composer:latest require 4lt/novaconium```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Update novaconium with composer in docker: ```docker run --rm --interactive --tty --volume $PWD:/app composer:latest update```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Install Composer natively on Debian
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Assuming you have nala installed:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					sudo nala install curl php-cli php-mbstring git unzip
 | 
				
			||||||
 | 
					curl -sS https://getcomposer.org/installer -o composer-setup.php
 | 
				
			||||||
 | 
					sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
 | 
				
			||||||
 | 
					rm composer-setup.php
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
@ -1,11 +0,0 @@
 | 
				
			|||||||
# Install Composer natively on Debian
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
sudo nala install curl php-cli php-mbstring git unzip
 | 
					 | 
				
			||||||
curl -sS https://getcomposer.org/installer -o composer-setup.php
 | 
					 | 
				
			||||||
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
 | 
					 | 
				
			||||||
rm composer-setup.php
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# composer require 4lt/novaconium
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -1,65 +1,8 @@
 | 
				
			|||||||
# Docker Cheatsheet (for Novaconium)
 | 
					# Docker Cheatsheet (for Novaconium)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Compose update project
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```docker run --rm --interactive --tty --volume $PWD:/app composer:latest update```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Sample Docker Compose File
 | 
					## Sample Docker Compose File
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					See the skeleton directory for an example docker setup.
 | 
				
			||||||
services:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  corxn: 
 | 
					 | 
				
			||||||
    image: ${CORXN_IMAGE}
 | 
					 | 
				
			||||||
    restart: always
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - "./novaconium:/data"
 | 
					 | 
				
			||||||
      - "./config/php.ini:/usr/local/etc/php/php.ini"
 | 
					 | 
				
			||||||
    networks:
 | 
					 | 
				
			||||||
      - my_internal
 | 
					 | 
				
			||||||
      - proxy
 | 
					 | 
				
			||||||
    ports:
 | 
					 | 
				
			||||||
      - 8000:80
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  mariadb:
 | 
					 | 
				
			||||||
    image: ${MARIADB_IMAGE}
 | 
					 | 
				
			||||||
    restart: always
 | 
					 | 
				
			||||||
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      - MARIADB_DATABASE=${DB}
 | 
					 | 
				
			||||||
      - MARIADB_PASSWORD=${DB_PASSWORD}
 | 
					 | 
				
			||||||
      - MARIADB_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
 | 
					 | 
				
			||||||
      - MARIADB_USER=${DB_sUSER}
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - ${VOL_PATH}/db:/var/lib/mysql
 | 
					 | 
				
			||||||
    networks:
 | 
					 | 
				
			||||||
      - my_internal
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
networks:
 | 
					 | 
				
			||||||
  proxy:
 | 
					 | 
				
			||||||
    external: true
 | 
					 | 
				
			||||||
  my_internal:
 | 
					 | 
				
			||||||
    driver: bridge
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### ENV File
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The .env file should look something like this:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
CORXN_IMAGE=4lights/corxn:latest
 | 
					 | 
				
			||||||
TZ=America/Vancouver
 | 
					 | 
				
			||||||
VOL_CONFIG_PATH=/data/myProject/config
 | 
					 | 
				
			||||||
VOL_PATH=/data/myProject/data
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# MariaDB
 | 
					 | 
				
			||||||
MARIADB_IMAGE=mariadb:latest
 | 
					 | 
				
			||||||
DB=mydbname
 | 
					 | 
				
			||||||
DB_ROOT_PASSWORD=ChangeThisPassword0123456789ABCD
 | 
					 | 
				
			||||||
DB_PASSWORD=AlsoChangeThisPassword0123456789
 | 
					 | 
				
			||||||
DB_USER=dbuser
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Start Docker
 | 
					## Start Docker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								skeleton/.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								skeleton/.env
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					MYSQL_ROOT_PASSWORD: random
 | 
				
			||||||
 | 
					MYSQL_PASSWORD: random
 | 
				
			||||||
							
								
								
									
										56
									
								
								skeleton/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								skeleton/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					# Sample Docker Compose
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  corxn:
 | 
				
			||||||
 | 
					    image: 4lights/corxn:6.0.0
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - "8000:80"
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./novaconium:/data
 | 
				
			||||||
 | 
					      - ./data/logs:/var/log/apache2  # Optional Logs
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - internal
 | 
				
			||||||
 | 
					      - proxy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  redis:
 | 
				
			||||||
 | 
					    image: redis:latest
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - internal
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mariadb:
 | 
				
			||||||
 | 
					    image: mariadb:latest
 | 
				
			||||||
 | 
					    container_name: mariadb
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
 | 
				
			||||||
 | 
					      MYSQL_DATABASE: novadb
 | 
				
			||||||
 | 
					      MYSQL_USER: novaconium
 | 
				
			||||||
 | 
					      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./data/db:/var/lib/mysql
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - internal
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  phpmyadmin:
 | 
				
			||||||
 | 
					    image: phpmyadmin/phpmyadmin:latest
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - "8001:80"
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - internal
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - PMA_ARBITRARY=-1
 | 
				
			||||||
 | 
					      - PMA_HOST=mariadb
 | 
				
			||||||
 | 
					      - PMA_USER=root
 | 
				
			||||||
 | 
					      - PMA_PASSWORD=${MYSQL_ROOT_PASSWORD}
 | 
				
			||||||
 | 
					      - UPLOAD_LIMIT=200M
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - "/etc/timezone:/etc/timezone:ro"
 | 
				
			||||||
 | 
					      - "/etc/localtime:/etc/localtime:ro"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					networks:
 | 
				
			||||||
 | 
					  proxy:
 | 
				
			||||||
 | 
					    external: true
 | 
				
			||||||
 | 
					  internal:
 | 
				
			||||||
 | 
					    driver: bridge
 | 
				
			||||||
@ -1,9 +1,9 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
$config = [
 | 
					$config = [
 | 
				
			||||||
    'database' => [ 
 | 
					    'database' => [ 
 | 
				
			||||||
        'host' => '',
 | 
					        'host' => 'mariadb',
 | 
				
			||||||
        'name' => '',
 | 
					        'name' => 'novadb',
 | 
				
			||||||
        'user' => '',
 | 
					        'user' => 'novaconium',
 | 
				
			||||||
        'pass' => '',
 | 
					        'pass' => '',
 | 
				
			||||||
        'port' => 3306
 | 
					        'port' => 3306
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user