envor/one-app

Database per team starter kit for Laravel based on Laravel Jetstream and Livewire


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Database per team starter kit for Laravel based on Laravel Jetstream and Livewire

Installation

First set up a fresh laravel app:

Using laravel installer

laravel new one-app

Or using composer

composer create-project "laravel/laravel:^11.0" one-app
cd one-app

Then you can install the package via composer:

composer require envor/one-app
php artisan one-app:install

To Configure your platform database (aka central or landlord database, etc..)

Add the following key to your .env file:

PLATFORM_DB_CONNECTION=sqlite

Note

If you use a connection other than sqlite, you will have to ensure you have configured you credentials for the connection

Next, freshen your migrations, using the database/migration/platform path, and the name of your PLATFORM_DB_CONNECTION

php artisan migrate:fresh --path=database/migrations/platform --database=sqlite

You can now test your application to ensure everything is working properly!

php artisan test

SSO (Optional)

If you need it you can set up one-app to use laravel/passport instead of laravel/sanctum which will include a full OAuth2 Server, complete with self-service token and client management ui.

First follow the steps above to install one-app.

Next install headerx/laravel-jetstream-passport

composer require headerx/laravel-jetstream-passport:^1.0

Important

Do not run the jetstream-passport:install command from headerx/laravel-jetstream-passport when setting up one-app! one-app has its own command for installing passport (shown below).

Then run one-app:passport command

php artisan one-app:passport

Then run migrations

php artisan migrate --path="database/migrations/platform" --database="sqlite"

Then run tests again!

Testing

php artisan test

or

composer test

Development

This thing installs stuff. During development the stubs will have to be tested. What follows are instructions for doing so.

requirements:

1. Setup Laravel Environment in an empty directory

composer create-project laravel/laravel:11.x-dev .
composer require laravel/jetstream:@dev --no-interaction --no-update
composer require envor/one-app:@dev --no-interaction --no-update
composer config repositories.one-app '{"type": "path", "url": "one-app"}' --file composer.json
echo "PLATFORM_DB_CONNECTION=sqlite" >> .env
echo "one-app/" >> .gitignore
git add . && git commit -m "setup testing environment"

2. Clone the repo

SSH

git clone git@github.com:envor/one-app.git

HTTPS

git clone https://github.com/envor/one-app.git

3. Install dependencies (in root working directory, not one-app)

composer update "laravel/jetstream" --prefer-dist --no-interaction --no-progress -W

4. Install one-app (in root working directory, not one-app)

composer update "envor/one-app" --prefer-dist --no-interaction --no-progress -W
php artisan one-app:install -v

5. Install npm dependencies (in root working directory, not one-app)

npm install

6. Compile Assets (in root working directory, not one-app)

npm run build

7. Execute tests (in root working directory, not one-app)

php artisan test

8. If you are green, you are good to go. You can now reset your environment to begin making changes.

git reset --hard && git clean -df
composer install

9. Make your changes

Edit files in one-app/ directory

10. Test your changes by repeating steps 3-7.

11. Repeat steps 8-10

12. Repeat step 11 as many times as needed.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.