diff --git a/README.md b/README.md index 1268f8b..907e884 100644 --- a/README.md +++ b/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 diff --git a/composer.json b/composer.json index 2fcf6e9..7d0a984 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,6 @@ { "name": "4lt/novaconium", "description": "A high-performance PHP framework built from the past.", - "version": "1.0.4", "license": "MIT", "authors": [ { diff --git a/docs/Composer.md b/docs/Composer.md new file mode 100644 index 0000000..4bbea55 --- /dev/null +++ b/docs/Composer.md @@ -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 +``` diff --git a/docs/Install-Composer-On-Debian.md b/docs/Install-Composer-On-Debian.md deleted file mode 100644 index c28dd43..0000000 --- a/docs/Install-Composer-On-Debian.md +++ /dev/null @@ -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 - diff --git a/docs/docker.md b/docs/docker.md index 858eee7..be809c4 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -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 diff --git a/skeleton/.env b/skeleton/.env new file mode 100644 index 0000000..117c4a9 --- /dev/null +++ b/skeleton/.env @@ -0,0 +1,2 @@ +MYSQL_ROOT_PASSWORD: random +MYSQL_PASSWORD: random diff --git a/skeleton/docker-compose.yml b/skeleton/docker-compose.yml new file mode 100644 index 0000000..8473044 --- /dev/null +++ b/skeleton/docker-compose.yml @@ -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 diff --git a/defaults/App/config.php b/skeleton/novaconium/App/config.php similarity index 60% rename from defaults/App/config.php rename to skeleton/novaconium/App/config.php index cbc7c23..c2c40ab 100644 --- a/defaults/App/config.php +++ b/skeleton/novaconium/App/config.php @@ -1,9 +1,9 @@ [ - 'host' => '', - 'name' => '', - 'user' => '', + 'host' => 'mariadb', + 'name' => 'novadb', + 'user' => 'novaconium', 'pass' => '', 'port' => 3306 ], diff --git a/defaults/App/controllers/404.php b/skeleton/novaconium/App/controllers/404.php similarity index 100% rename from defaults/App/controllers/404.php rename to skeleton/novaconium/App/controllers/404.php diff --git a/defaults/App/controllers/index.php b/skeleton/novaconium/App/controllers/index.php similarity index 100% rename from defaults/App/controllers/index.php rename to skeleton/novaconium/App/controllers/index.php diff --git a/defaults/App/routes.php b/skeleton/novaconium/App/routes.php similarity index 100% rename from defaults/App/routes.php rename to skeleton/novaconium/App/routes.php diff --git a/defaults/App/templates/override.html.twig b/skeleton/novaconium/App/templates/override.html.twig similarity index 100% rename from defaults/App/templates/override.html.twig rename to skeleton/novaconium/App/templates/override.html.twig diff --git a/defaults/App/views/index.html.twig b/skeleton/novaconium/App/views/index.html.twig similarity index 100% rename from defaults/App/views/index.html.twig rename to skeleton/novaconium/App/views/index.html.twig diff --git a/defaults/public/.htaccess b/skeleton/novaconium/public/.htaccess similarity index 100% rename from defaults/public/.htaccess rename to skeleton/novaconium/public/.htaccess diff --git a/defaults/public/index.php b/skeleton/novaconium/public/index.php similarity index 100% rename from defaults/public/index.php rename to skeleton/novaconium/public/index.php