Migrate HickLab3D dashboard and add production auto deployment
Deploy HickLab3D Dashboard / Deploy to production (push) Failing after 19s
Deploy HickLab3D Dashboard / Deploy to production (push) Failing after 19s
This commit is contained in:
@@ -1,6 +1,53 @@
|
||||
# TechOdyssey_Designs_Dashboard
|
||||
# HickLab3D dashboard
|
||||
|
||||
Dashboard for techodyssey designs 3D printing business.
|
||||
Written By Lee Hickman
|
||||
Laravel 13, Tailwind CSS 4, and MySQL dashboard for the HickLab3D workshop. It includes user accounts, Bambu printer telemetry, Amazon filament price tracking, Parcel2Go orders, and ESP32 filament dryer control.
|
||||
|
||||
Test
|
||||
## Setup
|
||||
|
||||
Requirements: PHP 8.3+, Composer, Node.js, and MySQL. Point the web server document root at `public/`.
|
||||
|
||||
```sh
|
||||
composer install
|
||||
npm install
|
||||
cp .env.example .env
|
||||
php artisan key:generate
|
||||
```
|
||||
|
||||
On Windows PowerShell, use `Copy-Item .env.example .env` in place of `cp .env.example .env`.
|
||||
|
||||
Set `DB_*` in `.env` to your MySQL database, then run:
|
||||
|
||||
```sh
|
||||
php artisan migrate
|
||||
php artisan app:create-admin your-username you@example.com
|
||||
npm run build
|
||||
php artisan serve
|
||||
```
|
||||
|
||||
The admin command prompts for a password. Never pass it on the command line. For local front-end development, use `npm run dev` alongside `php artisan serve`.
|
||||
|
||||
The migrations use the legacy table and column names. If you point the app at the existing TechOdyssey database, back it up first. The migrations skip tables already present and create Laravel's session, cache, and job tables. Existing schema variations have not been verified against a database dump. Do not run `migrate:fresh` on a database with production data.
|
||||
|
||||
## Integrations and scheduled work
|
||||
|
||||
- Parcel2Go: set `P2G_CLIENT_ID`, `P2G_CLIENT_SECRET`, and `P2G_API_AUTH_URL`.
|
||||
- Dryer: set `DRYER_URL` to the ESP32 gateway base URL. The browser talks to authenticated Laravel routes; Laravel forwards status and control requests.
|
||||
- Printers: set `MQTT_PORT`, `MQTT_USERNAME`, and `MQTT_VERIFY_TLS`. Each printer's access code is entered when adding it. `printers:collect` samples telemetry from each printer.
|
||||
- Filament: `filaments:refresh` reads tracked Amazon listings and sends price drop mail to enabled recipients. Configure Laravel's `MAIL_*` settings for delivery. Amazon may change or block its public product HTML, in which case a listing is skipped.
|
||||
|
||||
Run Laravel's scheduler every minute on the server:
|
||||
|
||||
```sh
|
||||
php artisan schedule:run
|
||||
```
|
||||
|
||||
The schedule collects printer telemetry every five minutes and refreshes filament prices hourly. You can run either command manually for diagnosis.
|
||||
|
||||
## Verification
|
||||
|
||||
```sh
|
||||
php artisan test --compact
|
||||
npm run build
|
||||
```
|
||||
|
||||
The test suite uses an in-memory SQLite database. MySQL and the external services need environment-specific smoke checks with your credentials and devices.
|
||||
|
||||
Reference in New Issue
Block a user