File storage
Inventorix stores user uploads and generated files (handover PDFs and QR code images) on a configurable filesystem disk. You can use local disk storage for single-server deployments or an S3-compatible object store for multi-replica and cloud deployments.
What gets stored
Section titled “What gets stored”| Content | Disk | Visibility |
|---|---|---|
| Asset photo uploads | default disk | private |
| Generated handover PDFs | HANDOVER_DISK (default: local) | private |
| QR code image files | default disk | private |
| Publicly served assets (Filament UI) | public | public |
Handover PDFs use a separate HANDOVER_DISK setting (from config/handover.php), which defaults to local. Set it to s3 if you want PDFs stored in object storage alongside other uploads.
Filesystem disks
Section titled “Filesystem disks”Three disks are configured in config/filesystems.php:
| Disk | Driver | Root | Notes |
|---|---|---|---|
local | local | storage/app/private | Private; files are not web-accessible |
public | local | storage/app/public | Served at /storage/* via symlink |
s3 | s3 | (bucket root) | S3-compatible; see below |
The active disk is selected by FILESYSTEM_DISK. The default is local.
To make the public disk accessible via the web, run the storage symlink command once after installation:
php artisan storage:linkS3-compatible object storage
Section titled “S3-compatible object storage”Set FILESYSTEM_DISK=s3 and configure the following environment variables:
| Variable | Default | Purpose |
|---|---|---|
FILESYSTEM_DISK | local | Set to s3 to activate S3 storage |
AWS_ACCESS_KEY_ID | (empty) | S3 access key ID |
AWS_SECRET_ACCESS_KEY | (empty) | S3 secret access key |
AWS_DEFAULT_REGION | us-east-1 | Bucket region |
AWS_BUCKET | (empty) | Bucket name |
AWS_ENDPOINT | (null) | Custom endpoint URL (required for MinIO and other S3-compatible providers) |
AWS_USE_PATH_STYLE_ENDPOINT | false | Set to true for path-style URLs (required for MinIO) |
MinIO example
Section titled “MinIO example”MinIO is a self-hosted S3-compatible store. Point Inventorix at it by setting a custom endpoint and enabling path-style URLs:
FILESYSTEM_DISK=s3AWS_ACCESS_KEY_ID=minioadminAWS_SECRET_ACCESS_KEY=minioadminAWS_DEFAULT_REGION=us-east-1AWS_BUCKET=inventorixAWS_ENDPOINT=http://minio:9000AWS_USE_PATH_STYLE_ENDPOINT=trueAWS S3 example
Section titled “AWS S3 example”FILESYSTEM_DISK=s3AWS_ACCESS_KEY_ID=AKIA...AWS_SECRET_ACCESS_KEY=...AWS_DEFAULT_REGION=eu-central-1AWS_BUCKET=my-inventorix-bucketLeave AWS_ENDPOINT and AWS_USE_PATH_STYLE_ENDPOINT at their defaults when using Amazon S3.
Handover disk
Section titled “Handover disk”Generated handover PDFs are stored on the disk configured by HANDOVER_DISK in config/handover.php. This defaults to local. To store PDFs in S3, set:
HANDOVER_DISK=s3Public visibility
Section titled “Public visibility”The public disk stores files that must be served over HTTP (e.g. files Filament renders in the browser). Files on the local and s3 disks are private by default and are served through signed temporary URLs generated by the application, not directly from the web server.
Run php artisan storage:link after every fresh deployment to ensure the public/storage symlink exists if you are using local public storage.