solenoid/simba

HTTP/CLI framework

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Language:JavaScript

Type:project

v1.0.0 2024-12-21 13:40 UTC

This package is auto-updated.

Last update: 2024-12-21 13:41:41 UTC


README

Simba is a complete solution for building professional web-apps.
It uses php-core for backend, sveltekit for frontend and capacitor for building the mobile-app with the same codebase.
This app is an SPA (single-page application) with a multi-tenant users system.




System Requirements

This software is designed for Ubuntu Server 22.04


CLI

You can execute a specific task (CLI context)

Syntax: php x task {id} {method} ...{args}


Example: php x task OnDemand/Test print


Scheduler

You can schedule your tasks ( ./tasks/scheduler.json )
Scheduler is managed by the daemon


Daemon

You can use or extend the integrated daemon

Setup :

  1. Creating the service -> sudo php x daemon register {name} ( default-name is {app-id}.simba )
  2. Allowing run at boot -> sudo simba service enable {name}

Start: sudo service {name} start

Stop: sudo service {name} stop

Restart: sudo service {name} restart


Setup

  1. Installing spm -> bash <(wget -qO- "https://install.solenoid.it/spm@1.0.0/setup")
  2. Installing simba -> spm install simba
  3. Creating a new app -> simba app create {fqdn} -p {path} -v {version}
  4. Moving to the directory -> cd {project-directory}
  5. Creating the cert -> simba vh make-cert {fqdn} -p {path} *
  6. Initializing the app -> php x init
  7. Configuring the file -> {project-directory}/app.json
  8. Configuring the files -> {project-directory}/credentials/*
  9. Building the sql -> php x mysql build:make
  10. Running the built sql -> php x mysql build:run
  11. Importing the DB models -> php x mysql extract-models
  12. Building the app (SPA) -> php x build
  13. Creating the user -> php x task OnDemand/User create {tenant} {user} {email}

    Example -> php x task OnDemand/User create "simba" "admin" "email@sample.com"

* Server with private IP :

  1. Enabling "Self-Signed cert" -> simba vh config {fqdn}
  2. Restarting the web-server -> sudo service apache2 restart

    Note

Simba App is composed by separated fqdn for frontend and backend

Frontend-URL (for SPA realtime development) = https://front-dev.{app-id}:5173

Backend-URL (for APIs or server-side contents) = https://{app-id}



To reach these endpoints from your computer you have to set your local system hosts file (ex. /etc/hosts for linux) adding these two entries :

127.0.0.1 front-dev.{app-id}
{your-simba-server-ip} {app-id}

Development

To start the dev-server for a frontend development session you have to digit :
php x dev

Access to https://front-dev.{app-id}:5173

If you are using VS Code for coding you should open the port 5173 to localhost ( localhost:5173 )
Now you can access the Frontend-URL from your computer


Build

To build the app (web + mobile) you have to digit :
php x build


Release

You can define your release logic inside a file ( ./release.php )

To release the app you have to digit :
php x release


Mode

You can develop your app component (store, service, model, task or controller) in two different modes :

Single Mode -> The component is available under one specific context (http or cli) -> Useful for specific implementations
Multi Mode -> The component is available for both of the contexts (http and cli) -> Useful for one-time coding