Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codestudiohq/laravel-totem
Manage Your Laravel Schedule From A Web Dashboard
https://github.com/codestudiohq/laravel-totem
artisan-commands cron cron-jobs dashboard hacktoberfest laravel laravel-schedule laravel-totem package scheduling
Last synced: 3 days ago
JSON representation
Manage Your Laravel Schedule From A Web Dashboard
- Host: GitHub
- URL: https://github.com/codestudiohq/laravel-totem
- Owner: codestudiohq
- License: mit
- Created: 2017-08-01T23:15:40.000Z (over 7 years ago)
- Default Branch: 11.x
- Last Pushed: 2024-03-27T16:07:51.000Z (10 months ago)
- Last Synced: 2024-10-29T15:02:49.620Z (3 months ago)
- Topics: artisan-commands, cron, cron-jobs, dashboard, hacktoberfest, laravel, laravel-schedule, laravel-totem, package, scheduling
- Language: PHP
- Homepage:
- Size: 11.8 MB
- Stars: 1,791
- Watchers: 37
- Forks: 224
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome - codestudiohq/laravel-totem - Manage Your Laravel Schedule From A Web Dashboard (PHP)
README
# Introduction
[![Join the chat at https://gitter.im/laravel-totem/Lobby](https://badges.gitter.im/laravel-totem/Lobby.svg)](https://gitter.im/laravel-totem/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Manage your `Laravel Schedule` from a pretty dashboard. Schedule your `Laravel Console Commands` to your liking. Enable/Disable scheduled tasks on the fly without going back to your code again.
## Documentation
#### Compatiblity Matrix
| Laravel | Totem |
| :-------------------------------- | ------------------------------: |
| 11.x | 11.x |
| 10.x | 10.x |
| 9.x | 9.x |
| 8.x | 8.x |
| 7.x | 7.x |
| 6.x | 6.x |
| 5.8 | 5.x |
| 5.7 | 4.x |
| 5.6 | 3.x |
| 5.5 | 2.x |
| 5.4 | 1.x |#### Installing
`Totem` requires Laravel v5.4 and above, please refer to the above table for compatability. Use composer to install totem to your Laravel project
```
composer require studio/laravel-totem
```> Laravel Totem supports auto package discovery for Laravel v5.5+, therefore service provider registration is not required in Laravel v5.5+
Add `TotemServiceProvider` to the `providers` array of your Laravel v5.4 application's config/app.php
```php
Studio\Totem\Providers\TotemServiceProvider::class,
```Once `Laravel Totem` is installed & registered,
- Run the migration
```
php artisan migrate
```- Publish `Totem` assets to your public folder using the following command
```
php artisan totem:assets
```##### Table Prefix
Totems' tables use generic names which may conflict with existing tables in a project. To alleviate this the `.env` param `TOTEM_TABLE_PREFIX` can be set which will apply a prefix to all of Totems tables and their models.
#### Updating
Please republish totem assets after updating totem to a new version
```
php artisan totem:assets
```#### Configuration
##### Cron Job
This package assumes that you have a good understanding of [Laravel's Task Scheduling](https://laravel.com/docs/5.4/scheduling) and [Laravel Console Commands](https://laravel.com/docs/5.4/artisan#writing-commands). Before any of this works please make sure you have a cron running as follows:
```
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
```##### Web Dashboard
`Laravel Totem`'s dashboard is inspired by `Laravel Horizon`. Just like Horizon you can configure authentication to `Totem`'s dashboard. Add the following to the boot method of your AppServiceProvider or wherever you might seem fit.
```php
use Studio\Totem\Totem;Totem::auth(function($request) {
// return true / false . For e.g.
return Auth::check();
});
```By default Totem's dashboard only works in local environment. To view the dashboard point your browser to /totem of your app. For e.g. laravel.dev/totem.
##### Filter Commands Dropdown
By default `Totem` outputs all Artisan commands on the Create/Edit tasks. To make this dropdown more concise there is a filter config feature that can be set in the `totem.php` config file.
Example filters
```php
'artisan' => [
'command_filter' => [
'stats:*',
'email:daily-reports'
],
],
```This feature uses [fnmatch](http://php.net/manual/en/function.fnmatch.php) syntax to filter displayed commands. `stats:*` will match all Artisan commands that start with `stats:` while `email:daily-reports` will only match the command named `email:daily-reports`.
This filter can be used as either a whitelist or a blacklist. By default it acts as a whitelist but an option flag can be set to instead act as a blacklist.
```php
'artisan' => [
'command_filter' => [
'stats:*',
'email:daily-reports'
],
'whitelist' => true,
],```
If the value of whitelist is `false` then the filter acts as a blacklist.
`'whitelist' => false`
#### Middleware
`Laravel Totem` uses the default web and api middleware but if customization is required the middleware can be changed by setting the appropriate `.env` value. These values can be found in `config/totem.php`.
#### Making Commands available in `Laravel Totem`
All artisan commands can be scheduled. If you want to hide a command from Totem make sure you have the `hidden` attribute set to true in your command. For e.g.
```php
protected $hidden = true;
```From L5.5 onwards all commands are auto registered, so this wouldn't be a problem.
#### Command Parameters
If your command requires arguments or options please use the optional command parameters field. You can provide parameters to your command as a string in the following manner
```text
name=john.doe --greetings='Welcome to the new world'
```In the example above, name is an argument while greetings is an option
#### Console Command
In addition to the dashboard, Totem provides an artisan command to view a list of scheduled task.
```
php artisan schedule:list
```### Screenshots
##### Task List
##### Task Details
##### Edit Task
##### Artisan Command to view scheduled tasks
## Changelog
Important versions listed below. Refer to the [Changelog](CHANGELOG.md) for a full history of the project.
## Credits
- [Roshan Gautam](https://twitter.com/@roshangautam)
- [OSS Contributors](https://github.com/codestudiohq/laravel-totem/graphs/contributors)Bug reports, feature requests, and pull requests can be submitted by following our [Contribution Guide](CONTRIBUTING.md).
## Contributing & Protocols
- [Versioning](CONTRIBUTING.md#versioning)
- [Coding Standards](CONTRIBUTING.md#coding-standards)
- [Pull Requests](CONTRIBUTING.md#pull-requests)## License
This software is released under the [MIT](LICENSE) License.
© 2020 Roshan Gautam, All rights reserved.