added a skeleton for faster deployment

This commit is contained in:
Nick Yeoman 2025-06-08 18:19:12 -07:00
parent bedf615ad3
commit 7b02960b46
15 changed files with 90 additions and 90 deletions

View File

@ -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

View File

@ -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
View 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
```

View File

@ -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

View File

@ -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
View File

@ -0,0 +1,2 @@
MYSQL_ROOT_PASSWORD: random
MYSQL_PASSWORD: random

View 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

View File

@ -1,9 +1,9 @@
<?php
$config = [
'database' => [
'host' => '',
'name' => '',
'user' => '',
'host' => 'mariadb',
'name' => 'novadb',
'user' => 'novaconium',
'pass' => '',
'port' => 3306
],