Skip to content

FAQ

Practical answers to frequently asked questions. For step-by-step guides, follow the links to the relevant pages.


Run the database seeder after your first migration:

Terminal window
php artisan db:seed

This creates a default admin account:

  • Email: hello@noix.dev
  • Password: Start23!

Log in at https://<your-domain>/app, then go to your profile and change both the email address and password immediately.

See First run.

How do I reset a forgotten admin password?

Section titled “How do I reset a forgotten admin password?”

Option 1 — use the Forgot password link on the login page. This sends a reset email to the address on file (requires mail to be configured).

Option 2 — run tinker:

Terminal window
php artisan tinker
>>> \App\Models\User::where('email', 'you@example.com')->first()->update(['password' => bcrypt('newpassword')]);

Option 3 — if you have database access, update the password column directly with a bcrypt hash.


Emails aren’t being sent. What’s wrong?

Section titled “Emails aren’t being sent. What’s wrong?”

The most common causes:

  1. MAIL_MAILER=log (default) — In development, mail is written to storage/logs/laravel.log and not delivered. Change MAIL_MAILER to your actual transport.
  2. Wrong SMTP credentials or host — Verify MAIL_HOST, MAIL_PORT, MAIL_USERNAME, and MAIL_PASSWORD.
  3. Wrong scheme — Use MAIL_SCHEME=smtp (port 587, STARTTLS) or MAIL_SCHEME=smtps (port 465, TLS). Do not use tls or ssl.
  4. Mail not configured yet — Use the Send test email button in Settings → Mail to verify delivery without leaving the admin panel.
  5. Queue not running — Notification emails are queued. If the queue worker is not running, mail sits in the queue table undelivered. See Queues configuration.

See Mail configuration.

Check:

  1. Warranty notifications are enabled in Settings → Warranty and at least one recipient is configured.
  2. Mail is working — send a test email from Settings → Mail.
  3. The scheduler is runningwarranty:scan-expiries runs daily at 07:00 via the Laravel scheduler. Confirm the schedule:work process (Docker) or the system cron entry is active. See CLI Commands.
  4. Lead days — notifications are sent only when an asset’s guarantee end date falls within the configured lead-time window.

The camera doesn’t work or shows a permission error.

Section titled “The camera doesn’t work or shows a permission error.”

The browser camera API requires a secure context (HTTPS). Causes and fixes:

  • HTTP in production — Inventorix must be served over HTTPS. The Docker image enforces SSL. See Docker deployment.
  • Camera permission denied — The browser blocked camera access. In Chrome/Edge: click the camera icon in the address bar and select “Allow”. In Firefox: click the shield icon.
  • No camera detected — Ensure a camera is connected and not in use by another application.
  • Browser not supported — Use a modern Chromium-based browser or Firefox. Safari on iOS requires iOS 14.3 or later.

See Scanning.


Common issues:

  1. Wrong delimiter — The importer expects a comma-delimited CSV. Check that your spreadsheet exports with commas, not semicolons.
  2. Missing required columns — Required columns must be present and non-empty. Download the import template from the Import page to get the correct column headers.
  3. Invalid date format — Dates must be formatted as YYYY-MM-DD.
  4. Duplicate serial numbers — If your CSV contains a serial number that already exists, the row is rejected. Review the error report shown after the import.
  5. File encoding — Save your CSV as UTF-8. Files exported from Microsoft Excel may use a legacy encoding; re-save as UTF-8 CSV.

See Import & Export.


Does Inventorix include automated backups?

Section titled “Does Inventorix include automated backups?”

No. Inventorix does not ship a built-in backup package. Backups are the operator’s responsibility. Recommended approach:

  • Database — schedule a mysqldump / pg_dump / SQLite file copy via your infrastructure tooling (cron, Kubernetes CronJob, etc.).
  • Uploaded files — back up the storage disk. If using S3, enable bucket versioning or replication on the bucket side.

Pull the new Docker image tag and redeploy:

Terminal window
docker pull ghcr.io/noixdev/inventorix:<new-tag>

With RUN_MIGRATIONS=true (default), migrations run automatically when the container starts. For multi-replica deployments, set RUN_MIGRATIONS=false and run migrations as a one-shot init container before updating the replicas.

After the container starts, run:

Terminal window
php artisan filament:upgrade
php artisan optimize

See Operations.


Who can access the Horizon dashboard at /horizon?

Section titled “Who can access the Horizon dashboard at /horizon?”

By default, the Horizon dashboard is only accessible in local environments (APP_ENV=local). In production, access is controlled by the HorizonServiceProvider gate. To grant specific users access, edit app/Providers/HorizonServiceProvider.php and add their email addresses to the gate closure.

See Security and Operations.


Set AUTH_MULTIFACTOR_AUTH_FORCE=true in your environment (or set it in config/auth.php). Users will be prompted to enrol in TOTP on their next login.

You can also toggle MFA settings through the admin Settings UI without editing environment variables.

See Authentication configuration.