All Projects → spiral → app-keeper

spiral / app-keeper

Licence: MIT license
Skeleton Application on Spiral Framework: Keeper Admin Panel

Programming Languages

hack
652 projects
PHP
23972 projects - #3 most used programming language
javascript
184084 projects - #8 most used programming language
shell
77523 projects
CSS
56736 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to app-keeper

spiral-docker
Hassle-free access to the SPIRAL agent via Docker
Stars: ✭ 18 (-52.63%)
Mutual labels:  spiral
d3-radial-axis
A radial implementation of the D3 axis component
Stars: ✭ 23 (-39.47%)
Mutual labels:  spiral
orm
ORM with transaction scopes (UoW), repositories, in-memory mocking, hybrid databases, logical partitions, full database scaffolding, recursive relations, polymorphic relations, relations to interfaces (static analysis tools included)
Stars: ✭ 13 (-65.79%)
Mutual labels:  spiral
yield-liquidator
Utility for force-closing undercollateralized Yield Protocol loans and participating in dutch auctions with liquidity sourced by Uniswap flash loans
Stars: ✭ 174 (+357.89%)
Mutual labels:  keeper
glextrusion
OpenGL 3D extrusion library
Stars: ✭ 27 (-28.95%)
Mutual labels:  spiral
jobs
RoadRunner: Background PHP workers, Queue brokers
Stars: ✭ 59 (+55.26%)
Mutual labels:  spiral
d3-spiral-heatmap
A reusable chart for D3 (version 4) to create a spiral heatmap
Stars: ✭ 30 (-21.05%)
Mutual labels:  spiral
keeper
Flexible and Simple authentication solution for Phoenix
Stars: ✭ 27 (-28.95%)
Mutual labels:  keeper
MRSignalsSeqs
Stanford University Rad229 Class Code: MRI Signals and Sequences
Stars: ✭ 72 (+89.47%)
Mutual labels:  spiral
lodm
ODM with inheritance and OOP composition for Laravel 5+
Stars: ✭ 22 (-42.11%)
Mutual labels:  spiral
Galaxy-Renderer
A Program for modelling a rotating galaxy based on the density wave theory.
Stars: ✭ 136 (+257.89%)
Mutual labels:  spiral
spiki
A spiral inductor footprint generator for Kicad
Stars: ✭ 42 (+10.53%)
Mutual labels:  spiral

Spiral Framework

Rapid Admin Panel Application Skeleton Latest Stable Version

Spiral Framework is a High-Performance PHP/Go Full-Stack framework and group of over sixty PSR-compatible components. The Framework execution model based on a hybrid runtime where some services (GRPC, Queue, WebSockets, etc.) handled by Application Server RoadRunner and the PHP code of your application stays in memory permanently (anti-memory leak tools included).

App Skeleton (CLI, GRPC) | Documentation | Twitter | CHANGELOG | Contributing


Server Requirements

Make sure that your server is configured with following PHP version and extensions:

  • PHP 8.0+, 64bit
  • mb-string extension
  • PDO Extension with desired database drivers (default SQLite)
  • For FrontEnd build yarn and nodejs are required.

Application Bundle

Application bundle includes the following components:

  • High-performance HTTP, HTTP/2 server based on RoadRunner
  • Console commands via Symfony/Console
  • Translation support by Symfony/Translation
  • Queue support for AMQP, Beanstalk, Amazon SQS, in-Memory
  • Stempler template engine
  • Security, validation, filter models
  • PSR-7 HTTP pipeline, session, encrypted cookies
  • DBAL and migrations support
  • Monolog, Dotenv
  • Prometheus metrics
  • Cycle DataMapper ORM
  • Keeper Admin panel

Demo Screenshot

Keeper Demo

Installation

composer create-project spiral/app-keeper --stability dev
cd app-keeper
yarn && yarn build

Application server will be downloaded automatically (php-curl and php-zip required).

Once the application is installed you can ensure that it was configured properly by executing:

$ php app.php configure -vv

Migrate the database:

$ php app.php migrate:init
$ php app.php migrate

Seed user accounts:

$ php app.php user:seed

Create super admin account:

$ php app.php user:create {First-Name} {Last-Name} {email-address} {password}

To start application server execute:

$ ./rr serve -d

On Windows:

$ ./rr.exe serve -d

Application will be available on http://localhost:8080. Keeper control panel available at http://localhost:8080/keeper.

Read more about application server configuration here. Make sure to turn DEBUG off in .env to enable view caching.

Testing:

To test an application:

$ ./vendor/bin/phpunit

Cloning:

Make sure to properly configure project if you cloned the existing repository.

$ copy .env.sample .env
$ composer install
$ php app.php encrypt:key -m .env
$ php app.php configure -vv
$ php app.php migrate:init
$ php app.php migrate
$ ./vendor/bin/rr get
$ yarn build

Make sure to create super-admin account.

Docker:

Requirements: Docker engine 19.03.0+

To launch Keeper in Docker create env file if needed.

    copy .env.sample .env

Build and run for Linux and MacOS

./dockerInit.sh

Build and run for Windows

./dockerInit.bat

It will build a local container, configure encryption key and set up Sqlite database.

Docker scenarios

In this repository you can find several docker-compose files, you can use them in combination to handle different scenarios.

You can launch Spiral application with Roadrunner in one container and frontend build with Nginx in another (it will serve static files and proxy dynamic requests to application container). No file sync, no worker reload: will work with the code version you have on the moment of container build on http://localhost:8080

docker-compose -f docker-compose.yml up -d

Or just

docker-compose up -d

Docker local development

For local development you would like file changes to appear in a container, and make Roadrunner workers to re-launch with updated code.

docker-compose -f docker-compose.yml -f docker-compose-local.yml up -d

Make sure you have vendor directory copied on host machine in this case, otherwise you'll mount code without vendor and autoload into a container and it will not work. You can do it like this:

docker-compose up -d
docker cp keeper:/var/www/vendor .
docker-compose -f docker-compose.yml -f docker-compose-local.yml up -d

Custom Frontend Build

For local development add one more docker compose file to sync local files into Nginx container:

docker-compose -f docker-compose.yml -f docker-compose-custom-front-local.yml up  -d

In this case you will need to run yarn build locally to create frontend build, otherwise empty directory public/generated will be mounted in nginx container

Frontend local development is supported in 2 modes:

1. Watch mode.

Launch yarn watch to watch ./front directory for changes and recompile them on go. Refresh page to see changes.

2. Hot reload mode.

Set up env variable FRONT_END_PUBLIC_URL to point at local server URL, this package is configured to use http://localhost:3030 Change scripts in webpack and server folders to change that.

After that launch yarn start. This will start dev server at http://localhost:3030

If you are seeing 404 on your scripts, ensure they are included like so

    @if(env('FRONT_END_PUBLIC_URL'))
        <script type="text/javascript" src="{{ env('FRONT_END_PUBLIC_URL') }}/generated/keeper.js"></script>
    @endif
    @if(!env('FRONT_END_PUBLIC_URL'))
        <script type="text/javascript" src="/generated/keeper.js"></script>
    @endif

Local development for both frontend and backend

To enable all file sync you'll need all docker-compose files at once:

docker-compose -f docker-compose.yml -f docker-compose-local.yml -f docker-compose-custom-front-local.yml up  -d

License:

MIT License (MIT). Please see LICENSE for more information. Maintained by Spiral Scout.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].