shimkit framework laravel — Laravel-specific helpers under a new
framework parent sub-app. For the full machine-readable
changelog, see CHANGELOG.md.
Note: v0.7.0 was tagged but never shipped — the release workflow caught a version drift in
pyproject.toml. v0.7.1 re-shipped the same surface. Production users got v0.7.1.
shimkit framework laravel perms PATH # MODERATE
shimkit framework laravel env PATH # MODERATE
shimkit framework laravel cron-install PATH # MODERATE
shimkit framework laravel artisan -- <args> # passthrough
Cross-distro permission fixer, .env scaffolder with generated
APP_KEY, scheduler cron-install (wraps shimkit cron), and an
artisan passthrough that runs on the host or routes through
shimkit stack lemp.
Cross-distro storage + bootstrap/cache permission fixer. Replaces
the legacy add:laravel-perms.sh.
Group detection: tries getent group <name> on Linux, dscl . -read /Groups/<name> on macOS, falls back to Python's grp.getgrnam.
When the group doesn't exist on the host, the global chmod 664 /
chmod 775 passes still run but chgrp is skipped.
shimkit framework laravel perms --yes ./myshop
shimkit framework laravel perms --yes --group staff ./myshop # macOS-friendly
shimkit framework laravel perms --dry-run ./myshop # plan onlyWrites .env with a generated APP_KEY (base64 + 32 random bytes
via secrets.token_bytes(32)). No PHP required on the host —
Python generates the key directly. Refuses to overwrite an
existing .env.
Default DB settings target shimkit db containers, so after:
shimkit db mysql up
shimkit framework laravel env --yes ./myshop…the first php artisan migrate works against the local mysql
container.
Wraps shimkit cron add with the Laravel-shaped invocation:
cd <PROJECT> && php <PROJECT>/artisan schedule:run >> /dev/null 2>&1
Default name laravel-<dirname>, default schedule * * * * *.
Both configurable. Backup-on-mutate + shimkit cron rollback come
from the cron tool itself.
Passthrough to php artisan. Host execution is the default —
preflights php via shimkit.core.version.preflight, exits 69
with a remediation hint when php is missing.
--in-container routes through shimkit stack lemp's php-fpm
container.
shimkit framework laravel artisan --project ./myshop -- migrate
shimkit framework laravel artisan --project ./myshop \
--in-container --stack myshop -- migrate --seedcore/version.pyregisters aphpdetector (regex^PHP ([\d.]+)) with platform-specific remediation.tools.versions.phpfloor at8.1.core/command.py:CommandRunner.rungains an optionalcwdparameter — needed by artisan passthrough.
Second of the deferred v0.5+ candidates (after shimkit cron in
v0.6.0). Replaces the legacy add:laravel-perms.sh and Laravel-
flavored add:cron.sh scripts from the ubuntu/ source tree.
Future framework siblings (symfony, rails, django, nextjs)
slot under the same parent.
- Tests: 528 → 561 (+33)
- Gates: pytest, ruff, mypy strict — all green
- New optional extras: 0
uv tool upgrade shimkit
pipx upgrade shimkitIf you'd like a default --email for ACME requests etc., set
tools.framework.laravel.* in your user config.