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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
mkdir project_name;
 | 
			
		||||
cd project_name;
 | 
			
		||||
PROJECTNAME=novaproject
 | 
			
		||||
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 vendor/4lt/novaconium/defaults/public/ .
 | 
			
		||||
```
 | 
			
		||||
## APP Database config
 | 
			
		||||
cp -R novaconium/vendor/4lt/novaconium/skeleton/. .
 | 
			
		||||
 | 
			
		||||
Open the /App/config.php file and change the database section to match the above:
 | 
			
		||||
# Edit .env
 | 
			
		||||
# Edit novaconium/App/config.php
 | 
			
		||||
 | 
			
		||||
```php
 | 
			
		||||
'database' => [ 
 | 
			
		||||
        'host' => 'mariadb',
 | 
			
		||||
        'name' => 'mydb',
 | 
			
		||||
        'user' => 'dbuser',
 | 
			
		||||
        'pass' => 'AlsoChangeThisPassword0123456789',
 | 
			
		||||
        'port' => 3306
 | 
			
		||||
    ],
 | 
			
		||||
docker compose up -d
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Documentation
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "4lt/novaconium", 
 | 
			
		||||
    "description": "A high-performance PHP framework built from the past.",
 | 
			
		||||
    "version": "1.0.4",
 | 
			
		||||
    "license": "MIT",
 | 
			
		||||
    "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)
 | 
			
		||||
 | 
			
		||||
## Compose update project
 | 
			
		||||
 | 
			
		||||
```docker run --rm --interactive --tty --volume $PWD:/app composer:latest update```
 | 
			
		||||
 | 
			
		||||
## Sample Docker Compose File
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
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
 | 
			
		||||
```
 | 
			
		||||
See the skeleton directory for an example docker setup.
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
$config = [
 | 
			
		||||
    'database' => [ 
 | 
			
		||||
        'host' => '',
 | 
			
		||||
        'name' => '',
 | 
			
		||||
        'user' => '',
 | 
			
		||||
        'host' => 'mariadb',
 | 
			
		||||
        'name' => 'novadb',
 | 
			
		||||
        'user' => 'novaconium',
 | 
			
		||||
        'pass' => '',
 | 
			
		||||
        'port' => 3306
 | 
			
		||||
    ],
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user