Bootstraps Laravel projects with Flux UI, Keycloak SSO, and common packages
uogsoe/laravel-init is a Laravel package for bootstraps laravel projects with flux ui, keycloak sso, and common packages.
It currently has 0 GitHub stars and 114 downloads on Packagist (latest version 1.1.10).
Install it with composer require uogsoe/laravel-init.
Discover more Laravel packages by uogsoe
or browse all Laravel packages to compare alternatives.
Last updated
A Composer package that bootstraps Laravel projects with Flux UI, Keycloak SSO, Docker/Lando setup, and common packages via a single Artisan command.
routes/web.php and config/services.phpSSOServiceProvider in bootstrap/providers.phpInstall as a dev dependency:
composer require --dev uogsoe/laravel-init
export FLUX_USERNAME="your-flux-username"
export FLUX_LICENSE_KEY="your-flux-license-key"
php artisan project:init
| Option | Description |
|--------|-------------|
| --skip-npm | Skip npm package installation |
| --skip-composer | Skip composer package installation |
| --skip-flux | Skip Flux activation |
| --skip-docker | Skip Docker/Lando/CI template files |
| --dry-run | Show what would change without writing files |
| --force | Overwrite all files without prompting |
When copying template files that already exist in your project, the command prompts with y/n/d(iff). Pressing d shows a unified diff between your existing file and the template, so you can make an informed decision before overwriting.
At the end of execution, project:init prints a summary of copied/skipped files and command execution status.
project:init installs Docker/Lando files from stubs/, including:
docker/ scripts/config.lando.ymldocker-compose.yml, prod-stack.yml, qa-stack.yml.github/, .gitlab-ci.yml, phpunit*.xml, phpunit*.Dockerfile)Dockerfile, .dockerignore, and related support filesEnvironment handling is applied in this order:
.env is missing, it is created from the project's .env.examplestubs/.env.lando values are merged into .envAPP_NAME is set from the project folder name (title-cased)APP_URL is set to https://<project-folder>.lndo.site/.lando.yml name: is set to <project-folder> (slug form).env.example is updated to match the final .envAPP_KEY in .env.example is refreshed using php artisan key:generate --showIt also adds required Docker/Lando ignore entries to your project .gitignore and ensures:
storage/minio_dev/bucket/.gitkeepstorage/meilisearch/.gitkeepComposer:
livewire/livewirelivewire/fluxlaravel/socialitesocialiteproviders/keycloaklaravel/horizonlaravel/sanctumNPM:
vitetailwindcss@tailwindcss/vitelaravel-vite-pluginFork this repo and modify the properties in src/Commands/ProjectInitCommand.php:
| Property | Purpose |
|----------|---------|
| $autoCopyPatterns | Patterns that overwrite without prompting |
| $internalStubFiles | Stub files used internally (not copied directly) |
| $gitignoreEntries | Entries appended to .gitignore |
| $boostPromptUrl | URL for team conventions file |
Template files live in the stubs/ directory. The command copies stubs into the target project, except internal helper files such as stubs/.env.lando. Existing files prompt before overwriting (unless matched by $autoCopyPatterns or --force is used).
laravel-init/
├── composer.json
├── src/
│ ├── LaravelInitServiceProvider.php
│ └── Commands/
│ └── ProjectInitCommand.php
└── stubs/
├── app/
│ └── Providers/
│ └── SSOServiceProvider.php
├── routes/
│ └── sso-auth.php
├── resources/
│ └── views/
│ └── ...
└── config/
└── ...
Project-specific environment values are defined in stubs/.env.lando and merged into .env, then copied to .env.example. This includes keys such as:
KEYCLOAK_BASE_URL=https://
KEYCLOAK_REALM=
KEYCLOAK_CLIENT_ID=name-in-keycloak
KEYCLOAK_CLIENT_SECRET=secret-in-keycloak
KEYCLOAK_REDIRECT_URI=http://your-app/auth/callback
SSO_ENABLED=false
SSO_AUTOCREATE_NEW_USERS=false
SSO_ALLOW_STUDENTS=false
SSO_ADMINS_ONLY=false
MIT