FAQ
Practical answers to frequently asked questions. For step-by-step guides, follow the links to the relevant pages.
Installation & first login
Section titled “Installation & first login”How do I create the first admin account?
Section titled “How do I create the first admin account?”Run the database seeder after your first migration:
php artisan db:seedThis 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:
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.
Email & notifications
Section titled “Email & notifications”Emails aren’t being sent. What’s wrong?
Section titled “Emails aren’t being sent. What’s wrong?”The most common causes:
MAIL_MAILER=log(default) — In development, mail is written tostorage/logs/laravel.logand not delivered. ChangeMAIL_MAILERto your actual transport.- Wrong SMTP credentials or host — Verify
MAIL_HOST,MAIL_PORT,MAIL_USERNAME, andMAIL_PASSWORD. - Wrong scheme — Use
MAIL_SCHEME=smtp(port 587, STARTTLS) orMAIL_SCHEME=smtps(port 465, TLS). Do not usetlsorssl. - Mail not configured yet — Use the Send test email button in Settings → Mail to verify delivery without leaving the admin panel.
- 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.
Warranty expiry emails are not arriving.
Section titled “Warranty expiry emails are not arriving.”Check:
- Warranty notifications are enabled in Settings → Warranty and at least one recipient is configured.
- Mail is working — send a test email from Settings → Mail.
- The scheduler is running —
warranty:scan-expiriesruns daily at 07:00 via the Laravel scheduler. Confirm theschedule:workprocess (Docker) or the system cron entry is active. See CLI Commands. - Lead days — notifications are sent only when an asset’s guarantee end date falls within the configured lead-time window.
Camera & QR scanning
Section titled “Camera & QR scanning”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.
CSV import
Section titled “CSV import”My CSV import fails or produces errors.
Section titled “My CSV import fails or produces errors.”Common issues:
- Wrong delimiter — The importer expects a comma-delimited CSV. Check that your spreadsheet exports with commas, not semicolons.
- 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.
- Invalid date format — Dates must be formatted as
YYYY-MM-DD. - 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.
- 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.
Backups
Section titled “Backups”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.
Upgrades
Section titled “Upgrades”How do I upgrade to a new version?
Section titled “How do I upgrade to a new version?”Pull the new Docker image tag and redeploy:
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:
php artisan filament:upgradephp artisan optimizeSee Operations.
Horizon dashboard access
Section titled “Horizon dashboard access”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.
Multi-factor authentication
Section titled “Multi-factor authentication”How do I enforce MFA for all users?
Section titled “How do I enforce MFA for all users?”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.