Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Janblack07/OxygenDispatch/llms.txt

Use this file to discover all available pages before exploring further.

Every configurable aspect of OxygenDispatch is driven by environment variables read from the .env file at the project root. Laravel never reads .env in production from a committed file — instead, set these variables through your hosting platform’s environment dashboard, a secrets manager, or a deployment pipeline. To bootstrap a new local environment, copy .env.example to .env and then fill in the values described below.
cp .env.example .env
php artisan key:generate

Application

These variables control the core identity and behaviour of the Laravel application layer.
VariableRequiredDefaultDescription
APP_NAMEYesLaravelApplication name shown in the UI, browser tab, and notification subjects. Set to OxygenDispatch.
APP_ENVYesproductionRuntime environment. Use local during development and production on live servers.
APP_KEYYes(none)32-byte AES-256-CBC encryption key. Must be set before running migrations or starting the server. Generate with php artisan key:generate.
APP_DEBUGNofalseWhen true, Laravel renders full stack traces on errors. Always set to false in production.
APP_URLYeshttp://localhostCanonical base URL used to build absolute URLs in queued jobs, PDF links, and email notifications.
APP_TIMEZONENoUTCPHP timezone for date/time functions. Hardcoded to UTC in config/app.php; override in the config file directly if needed.
APP_LOCALENoenDefault locale for Laravel’s translation system. Set to es for Spanish-language interfaces.
APP_FALLBACK_LOCALENoenLocale used when a translation key is missing in APP_LOCALE.
APP_PREVIOUS_KEYSNo(none)Comma-separated list of old APP_KEY values for key rotation. Allows decrypting data encrypted under a previous key.
APP_MAINTENANCE_DRIVERNofileDriver for maintenance-mode state: file or cache.

Database

OxygenDispatch supports SQLite (default for local development), MySQL 8+, MariaDB, and PostgreSQL. Switch the driver by changing DB_CONNECTION; the host/port/credentials variables are only required for server-based drivers.
VariableRequiredDefaultDescription
DB_CONNECTIONYessqliteDatabase driver. Accepted values: sqlite, mysql, mariadb, pgsql.
DB_HOSTMySQL / MariaDB / pgsql127.0.0.1Hostname or IP address of the database server.
DB_PORTMySQL / MariaDB3306TCP port. PostgreSQL default is 5432.
DB_DATABASEYesdatabase.sqliteDatabase name, or the full path to the SQLite file when using sqlite.
DB_USERNAMEMySQL / MariaDB / pgsqlrootDatabase user with at least DDL and DML privileges on DB_DATABASE.
DB_PASSWORDMySQL / MariaDB / pgsql(empty)Password for DB_USERNAME.
DB_URLNo(none)Full DSN URL. When set, overrides the individual DB_* variables.
DB_FOREIGN_KEYSNotrueEnforces foreign-key constraints in SQLite. Leave enabled.

Session

Sessions are stored in the sessions database table by default. No Redis or Memcached service is required out of the box.
VariableRequiredDefaultDescription
SESSION_DRIVERNodatabaseStorage backend. Options: database, file, cookie, redis, array.
SESSION_LIFETIMENo120Minutes of inactivity before a session expires.
SESSION_ENCRYPTNofalseEncrypt the session payload at rest using APP_KEY.
SESSION_SECURE_COOKIENo(null)When true, the session cookie is only sent over HTTPS. Recommended for production.
SESSION_SAME_SITENolaxSameSite policy for the session cookie: lax, strict, or none.

Queue

OxygenDispatch uses the database queue driver by default — dispatched jobs are stored in the jobs table and processed by the worker started with composer dev or php artisan queue:listen.
VariableRequiredDefaultDescription
QUEUE_CONNECTIONNodatabaseQueue driver. Options: sync, database, redis. Use sync for simple single-server setups where background processing is not needed.

Cache

The cache layer defaults to the database driver, backed by the cache table.
VariableRequiredDefaultDescription
CACHE_STORENodatabaseDefault cache store. Options: database, file, array, redis.
CACHE_PREFIXNo{app-name}-cache-String prepended to all cache keys. Automatically derived from APP_NAME if not set. Useful when multiple applications share the same cache backend.

Mail

Mail is not required for core inventory and dispatch workflows. The default mailer is log, which writes outgoing mail to storage/logs/laravel.log so you can inspect messages in development without a real SMTP server.
VariableRequiredDefaultDescription
MAIL_MAILERNologMail transport driver: log, smtp, sendmail, ses, postmark, resend.
MAIL_HOSTSMTP only127.0.0.1SMTP server hostname.
MAIL_PORTSMTP only2525SMTP port. Common values: 587 (STARTTLS), 465 (SSL), 25 (unencrypted).
MAIL_USERNAMESMTP only(none)SMTP authentication username.
MAIL_PASSWORDSMTP only(none)SMTP authentication password.
MAIL_SCHEMENo(none)Explicit transport scheme for SMTP: tls or ssl.
MAIL_FROM_ADDRESSNohello@example.comThe “From” address on all outgoing mail.
MAIL_FROM_NAMENoExampleThe “From” display name on all outgoing mail.

Filesystem

OxygenDispatch uses the public disk to store signed technical-reception PDFs at storage/app/public/technical-receptions/signed/. The local disk is available for private files. S3-compatible storage is available by setting FILESYSTEM_DISK=s3 and providing AWS credentials.
VariableRequiredDefaultDescription
FILESYSTEM_DISKNolocalDefault storage disk. Options: local, public, s3.
AWS_ACCESS_KEY_IDS3 only(none)AWS IAM access key ID.
AWS_SECRET_ACCESS_KEYS3 only(none)AWS IAM secret access key.
AWS_DEFAULT_REGIONS3 onlyus-east-1AWS region where the S3 bucket is located.
AWS_BUCKETS3 only(none)S3 bucket name used for file storage.
AWS_URLNo(none)Custom CDN or endpoint URL to prefix generated file URLs.
AWS_ENDPOINTNo(none)Override the S3 API endpoint; useful for S3-compatible providers like MinIO.

Logging

Laravel uses a stack channel by default, which writes to storage/logs/laravel.log.
VariableRequiredDefaultDescription
LOG_CHANNELNostackDefault log channel: stack, single, daily, stderr, syslog.
LOG_LEVELNodebugMinimum severity to log: debug, info, notice, warning, error, critical.
LOG_STACKNosingleComma-separated channel names used when LOG_CHANNEL=stack.
LOG_DAILY_DAYSNo14Number of daily log files to retain when using the daily channel.

APP_KEY must be set before running php artisan migrate or starting the application server. Without it, Laravel cannot encrypt session data, cookies, or any model values that use the Encrypted cast. Running php artisan key:generate writes a valid key into your .env file automatically.
In production, always set APP_DEBUG=false and APP_ENV=production. Debug mode exposes stack traces, environment variables, and database queries to anyone who triggers an error — a serious security risk on a live server. Also ensure the storage/ and bootstrap/cache/ directories are writable by the web-server process.
The minimal .env configuration needed to run OxygenDispatch locally with SQLite is:
APP_NAME=OxygenDispatch
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

DB_CONNECTION=sqlite

QUEUE_CONNECTION=database
After saving this file, run php artisan key:generate to fill in APP_KEY, then php artisan migrate to create the database schema.

Build docs developers (and LLMs) love