feat: Inertia profile settings page, Studio edit redesign, EGS, Nova UI components\n\n- Redesign /dashboard/profile as Inertia React page (Settings/ProfileEdit)\n with SettingsLayout sidebar, Nova UI components (TextInput, Textarea,\n Toggle, Select, RadioGroup, Modal, Button), avatar drag-and-drop,\n password change, and account deletion sections\n- Redesign Studio artwork edit page with two-column layout, Nova components,\n integrated TagPicker, and version history modal\n- Add shared MarkdownEditor component\n- Add Early-Stage Growth System (EGS): SpotlightEngine, FeedBlender,\n GridFiller, AdaptiveTimeWindow, ActivityLayer, admin panel\n- Fix upload category/tag persistence (V1+V2 paths)\n- Fix tag source enum, category tree display, binding resolution\n- Add settings.jsx Vite entry, settings.blade.php wrapper\n- Update ProfileController with JSON response support for API calls\n- Various route fixes (profile.edit, toolbar settings link)"
This commit is contained in:
104
docs/QUEUE.md
Normal file
104
docs/QUEUE.md
Normal file
@@ -0,0 +1,104 @@
|
||||
Queue worker setup
|
||||
==================
|
||||
|
||||
This document explains how to run Laravel queue workers for Skinbase and suggested Supervisor / systemd configs included in `deploy/`.
|
||||
|
||||
1) Choose a queue driver
|
||||
------------------------
|
||||
|
||||
Pick a driver in your `.env`, for example using the database driver (simple to run locally):
|
||||
|
||||
```
|
||||
QUEUE_CONNECTION=database
|
||||
```
|
||||
|
||||
Or use Redis for production:
|
||||
|
||||
```
|
||||
QUEUE_CONNECTION=redis
|
||||
```
|
||||
|
||||
2) Database queue (if using database driver)
|
||||
-------------------------------------------
|
||||
|
||||
Create the jobs table and run migrations:
|
||||
|
||||
```bash
|
||||
php artisan queue:table
|
||||
php artisan migrate
|
||||
```
|
||||
|
||||
3) Supervisor (recommended for many setups)
|
||||
-------------------------------------------
|
||||
|
||||
We provide an example Supervisor config at `deploy/supervisor/skinbase-queue.conf`.
|
||||
|
||||
To use it on a Debian/Ubuntu server:
|
||||
|
||||
```bash
|
||||
# copy the file to supervisor's config directory
|
||||
sudo cp deploy/supervisor/skinbase-queue.conf /etc/supervisor/conf.d/skinbase-queue.conf
|
||||
# make sure the logs dir exists
|
||||
sudo mkdir -p /var/log/skinbase
|
||||
sudo chown www-data:www-data /var/log/skinbase
|
||||
# tell supervisor to reload configs and start
|
||||
sudo supervisorctl reread
|
||||
sudo supervisorctl update
|
||||
sudo supervisorctl start skinbase-queue
|
||||
# check status
|
||||
sudo supervisorctl status skinbase-queue
|
||||
```
|
||||
|
||||
Adjust the `command` and `user` in the conf to match your deployment (path to PHP, project root and user).
|
||||
|
||||
4) systemd alternative
|
||||
----------------------
|
||||
|
||||
If you prefer systemd, an example unit is at `deploy/systemd/skinbase-queue.service`.
|
||||
|
||||
```bash
|
||||
sudo cp deploy/systemd/skinbase-queue.service /etc/systemd/system/skinbase-queue.service
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now skinbase-queue.service
|
||||
sudo systemctl status skinbase-queue.service
|
||||
```
|
||||
|
||||
Adjust `WorkingDirectory` and `User` in the unit to match your deployment.
|
||||
|
||||
5) Helpful artisan commands
|
||||
---------------------------
|
||||
|
||||
- Start a one-off worker (foreground):
|
||||
|
||||
```bash
|
||||
php artisan queue:work --sleep=3 --tries=3
|
||||
```
|
||||
|
||||
- Restart all workers gracefully (useful after deployments):
|
||||
|
||||
```bash
|
||||
php artisan queue:restart
|
||||
```
|
||||
|
||||
- Inspect failed jobs:
|
||||
|
||||
```bash
|
||||
php artisan queue:failed
|
||||
php artisan queue:retry {id}
|
||||
php artisan queue:flush
|
||||
```
|
||||
|
||||
6) Logging & monitoring
|
||||
-----------------------
|
||||
|
||||
- Supervisor example logs to `/var/log/skinbase/queue.log` (see `deploy/supervisor/skinbase-queue.conf`).
|
||||
- Use `journalctl -u skinbase-queue` for systemd logs.
|
||||
|
||||
7) Notes and troubleshooting
|
||||
---------------------------
|
||||
|
||||
- Ensure `QUEUE_CONNECTION` in `.env` matches the driver you've configured.
|
||||
- If using `database` driver, the `jobs` and `failed_jobs` tables must exist.
|
||||
- The mailable used for contact submissions is queued; if the queue worker is not running mails will accumulate in the queue table (or Redis).
|
||||
|
||||
Questions or prefer a different process manager? Tell me your target host and I can produce exact commands tailored to it.
|
||||
Reference in New Issue
Block a user