Mixpost Enterprise: Environment Variables
Overview of Environment Variables.
License environment variables
| Variable | Type | Default | Description |
|---|
LICENSE_KEY | string | - | The unique license key used to install and validate Mixpost application. |
Application environment variables
| Variable | Type | Default | Description |
|---|
APP_NAME | string | Mixpost | The name of your application. |
APP_KEY | string | - | Key used to encrypt and decrypt sensitive data. Generate this using the following tool. |
APP_DEBUG | boolean | false | Debug mode setting. Set to false for production environments. |
APP_DOMAIN | string | - | Your app's domain or subdomain, without the http:// or https:// prefix. (Docker only) |
APP_URL | string | http://example.com | Full application URL. |
MIXPOST_DEFAULT_LOCALE | string | en-GB | Specifies the default locale used by Mixpost. This setting determines the language and regional format for the application. |
MIXPOST_CORE_PATH | string | mixpost | The path used by Mixpost to load its core routes. Example: https://example.com/mixpost. (The prefixes app and apps are reserved in our Docker image) |
FORCE_CORE_PATH_CALLBACK_TO_NATIVE | boolean | false | If set to true, this forces the callback URL to always use the native mixpost core path. |
MIXPOST_PUBLIC_PAGES_PREFIX | string | pages | Public pages have an endpoint directly after the url domain. Example: https://example.com/pages/terms |
MIXPOST_TIMEZONE | string | UTC | The default timezone for the Mixpost dashboard. This is used for displaying dates and times in the dashboard. |
MIXPOST_TIME_FORMAT | integer | 12 | The time format for displaying times in the dashboard. Use 12 for 12-hour format (AM/PM) or 24 for 24-hour format. |
MIXPOST_FIRST_DAY_WEEK | integer | 1 | The first day of the week for calendar displays. Use 0 for Sunday, 1 for Monday, 2 for Tuesday, etc. |
Database environment variables
| Variable | Type | Default | Description |
|---|
DB_HOST | string | 127.0.0.1 ("mysql" for Docker) | Specifies the hostname of the database server. Use "mysql" for Docker environments. |
DB_PORT | string | 3306 | The port on which the database server is listening. |
DB_DATABASE | string | mixpost_db | The name of the MySQL database used by the application. |
DB_USERNAME | string | mixpost_user | The username for accessing the MySQL database. |
DB_PASSWORD | string | - | The password for the MySQL database user. |
Redis environment variables
| Variable | Type | Default | Description |
|---|
REDIS_HOST | string | 127.0.0.1 ("redis" for Docker) | Specifies the hostname of the redis server. Use "redis" for Docker environments. |
REDIS_PORT | string | 6379 | The port on which the redis server is listening. |
REDIS_PASSWORD | string | - | The password for the Redis user. |
Features environment variables
| Variable | Type | Default | Description |
|---|
MIXPOST_FORGOT_PASSWORD | boolean | true | Enables or disables the forgot password feature. |
MIXPOST_TWO_FACTOR_AUTH | boolean | true | Enables or disables two-factor authentication. |
MIXPOST_SSO | boolean | true | Enables or disables single sign-on (OIDC). SSO is configured from the dashboard (Admin Console → Settings → Single Sign-On); this variable is an override. Set it to false to hide the feature entirely — or to restore password login if you are ever locked out while SSO-only mode is enabled and the identity provider is unavailable. |
MIXPOST_API_ACCESS_TOKENS | boolean | true | Determines if API access tokens are enabled. |
MIXPOST_AUTO_SUBSCRIBE_POST_ACTIVITIES | boolean | false | Determines if the user automatically subscribes to post activities. |
MIXPOST_INBOX | boolean | true | Enables or disables the Engagement Inbox, which ingests and processes incoming social interactions (comments, messages, and mentions). |
MIXPOST_INBOX_USERS | string | - | Restricts Engagement Inbox access to a comma-separated list of user emails (e.g. jane@example.com,john@example.com). When empty, every user whose workspace role permits it can access the Inbox. Emails are matched case-insensitively, and this only applies when MIXPOST_INBOX is enabled. |
MIXPOST_INBOX_PROVIDERS | string | - | Limits engagement to a comma-separated list of social provider keys (e.g. facebook_page,instagram,twitter). When empty, engagement is enabled for every supported provider. Only applies when MIXPOST_INBOX is enabled. |
SMTP environment variables
| Variable | Type | Default | Description |
|---|
MAIL_HOST | string | smtp.mailgun.org | The SMTP server address used to send emails. |
MAIL_PORT | number | 587 | The port used for SMTP connections, typically 587 for TLS or 465 for SSL. |
MAIL_USERNAME | string | - | The username required to authenticate with the SMTP server. |
MAIL_PASSWORD | string | - | The password required to authenticate with the SMTP server. |
MAIL_ENCRYPTION | string | tls | The encryption protocol to use for securing SMTP communications (e.g., tls or ssl). |
MAIL_FROM_ADDRESS | string | hello@example.com | The default email address from which your application sends emails. |
MAIL_FROM_NAME | string | Value from APP_NAME | The default sender name used in outgoing emails, typically the application name. |
File storage
| Variable | Type | Default | Description |
|---|
MIXPOST_DISK | string | public | The disk on which to store media files. Options: - public - s3 To use s3 disk you should fill in the STORAGE_* credentials. |
The s3 disk works with AWS S3 and any S3-compatible storage provider, such as Cloudflare R2, Hetzner Object Storage, MinIO, DigitalOcean Spaces, Backblaze B2, or Wasabi.
| Variable | Type | Default | Description |
|---|
STORAGE_ACCESS_KEY_ID | string | | Access key for the S3-compatible server. |
STORAGE_SECRET_ACCESS_KEY | string | | Secret key for the access key. |
STORAGE_REGION | string | | The region of your bucket. For AWS S3, it has to be set to a signing region: https://docs.aws.amazon.com/general/latest/gr/s3.html |
STORAGE_BUCKET | string | | Name of the bucket where Mixpost will store its files. |
STORAGE_URL | string/null | null | (optional) Public base URL from which files are served (e.g., a CDN or the bucket's public URL). Leave empty for AWS S3. |
STORAGE_ENDPOINT | string/null | null | (optional) Custom endpoint for an S3-compatible storage service (e.g., Cloudflare R2, Hetzner, MinIO, DigitalOcean Spaces). Leave empty for AWS S3. |
STORAGE_USE_PATH_STYLE_ENDPOINT | boolean | false | (optional) Set to true if the S3-compatible service requires path-style URLs instead of virtual-hosted style (e.g., MinIO). |
ℹ️ The STORAGE_* variables are separate from AWS_* on purpose, so you can use AWS SES for mail and a different provider for file storage. For backward compatibility, when a STORAGE_* variable is not set, Mixpost falls back to the corresponding AWS_* variable (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, AWS_BUCKET, AWS_URL, AWS_ENDPOINT, AWS_USE_PATH_STYLE_ENDPOINT).
We’ve prepared a guide to help you configure S3.
Upload File Size Limits
| Variable | Type | Default | Description |
|---|
MIXPOST_MAX_IMAGE_FILE_SIZE | integer | 15 | Defines the maximum allowed size (in megabytes) for image uploads. Default is 15MB. |
MIXPOST_MAX_GIF_FILE_SIZE | integer | 15 | Defines the maximum allowed size (in megabytes) for GIF uploads. Default is 15MB. |
MIXPOST_MAX_VIDEO_FILE_SIZE | integer | 200 | Defines the maximum allowed size (in megabytes) for video uploads. Default is 200MB. |
MIXPOST_CHUNKED_UPLOAD_SIZE | integer | 10 | The size (in megabytes) of each chunk when uploading large files. Default is 10MB. Maximum is 64MB. |
MIXPOST_CHUNKED_UPLOAD_THRESHOLD | integer | 10 | Files larger than this threshold (in megabytes) will use chunked upload. Default is 10MB. |
⚠️ Note: Ensure your PHP and web server settings are configured to allow uploads of at least the chunk size. These server-level limits take precedence over application settings. See the Upload Maximum File Size Configuration for details.
Video transcoding
Mixpost accepts videos in the MP4, MOV, and MKV containers that already use the H.264 codec. These are remuxed to MP4 in about two seconds — remuxing only changes the container format, it does not re-encode the video.
Formats that cannot be remuxed losslessly (WebM, AVI, WMV, FLV) require a full re-encode to H.264. This is disabled by default, and while it is disabled those upload formats are not accepted. Convert such videos to H.264 in an MP4, MOV, or MKV container before uploading them.
The reason it is off by default is cost: encoding to H.264 is extremely CPU-intensive, can push a processor to 100% usage, and large videos may take tens of minutes to convert. Dedicated applications and large-scale platforms are better suited to this task, so Mixpost's built-in conversion capabilities are currently limited. In the future, we may add integrations with third-party APIs that handle transcoding more efficiently.
If your server has the CPU resources to spare, you can enable it:
| Variable | Type | Default | Description |
|---|
MIXPOST_VIDEO_TRANSCODING | boolean | false | Enables full video re-encoding for formats that cannot be repackaged into MP4 losslessly (WebM, AVI, WMV, FLV). While disabled, those upload formats are not accepted. |
MIXPOST_VIDEO_TRANSCODING_MAX_FILE_SIZE | integer | 100 | The maximum source file size (in megabytes) eligible for a transcode. Larger videos in those formats are rejected instead of being re-encoded. |
ℹ️ Re-encoding runs through FFMPEG on the media queue. Keep the max file size conservative on smaller servers, and make sure MIXPOST_MAX_VIDEO_FILE_SIZE is high enough to allow the upload in the first place.
FFMPEG environment variables
| Variable | Type | Default | Description |
|---|
FFMPEG_PATH | string | /usr/bin/ffmpeg | The path to the FFMPEG executable on your server. This is used for video processing and conversions. (Not available in Docker) |
FFPROBE_PATH | string | /usr/bin/ffprobe | The path to the FFPROBE executable on your server. FFPROBE is used for gathering information from multimedia streams. (Not available in Docker). |
Logs environment variables
| Variable | Type | Default | Description |
|---|
LOG_CHANNEL | string | single | Defines the logging channel type for the application. Options include single for a single file or daily for a new file each day. |
MIXPOST_LOG_CHANNEL | string | - | Specifies a dedicated logging channel for capturing connection errors with social networks or third parties. If left blank, it defaults to the LOG_CHANNEL value. |
SENTRY_LARAVEL_DSN | string | null | The Data Source Name (DSN) for Sentry integration. This is used to configure and enable error tracking and monitoring for your Laravel application with Sentry. |
System environment variables
| Variable | Type | Default | Description |
|---|
MIXPOST_AUTH_GUARD | string | web | This option controls the default authentication guard for the Mixpost dashboard routes. (Not available in Docker). |
MIXPOST_CACHE_PREFIX | string | mixpost | Define cache prefix. |
Horizon / Queue environment variables
These variables control how Mixpost routes its jobs and provision Horizon supervisors.
| Variable | Type | Default | Description |
|---|
MIXPOST_HORIZON_TIER | string | (auto-detected) | Forces a specific VPS tier preset: starter, basic, growth, or scale. When unset, Mixpost auto-detects the tier from system RAM. Pin this explicitly when php artisan config:cache is built on a different machine than the one running Horizon (e.g. CI). |
MIXPOST_HORIZON_CONNECTION | string | mixpost-redis | Queue connection used by every Mixpost Horizon supervisor. Must match a connection defined in config/queue.php. |
MIXPOST_QUEUE_DEFAULT | string | mixpost-default | Queue name for generic Mixpost jobs (webhooks, notifications, deletions, token refresh). |
MIXPOST_QUEUE_PUBLISH_POST | string | publish-post | Queue name for post publishing batches. Isolated from other queues so analytics fan-out cannot starve publish latency. |
MIXPOST_QUEUE_ANALYTICS | string | mixpost-analytics | Queue name for provider import and backfill jobs (Facebook, Instagram, LinkedIn, etc.). Highest-volume queue. |
MIXPOST_QUEUE_MEDIA | string | mixpost-media | Queue name for remote media downloads and thumbnail generation. Carries long-running ffmpeg jobs. |
MIXPOST_QUEUE_INBOX | string | mixpost-inbox | Queue name for Engagement Inbox jobs: inbound webhook ingestion and AI classification of comments, messages, and mentions. Only active when MIXPOST_INBOX is enabled. |
MIXPOST_QUEUE_BROADCAST | string | mixpost-broadcast | Queue name for real-time UI broadcasts (post comments, reactions, and activity). Isolated with a fail-fast supervisor so latency-sensitive broadcasts are not blocked by slower default-queue jobs such as email notifications. |
ℹ️ Changing any of the MIXPOST_QUEUE_* variables renames the queue on both the job-dispatch side (inside Mixpost) and the worker side (inside Horizon::supervisors()), so they stay in sync. After changing them, run php artisan config:cache && php artisan horizon:terminate to rebuild the cached config and restart Horizon workers.
WebSocket
| Variable | Type | Default | Description |
|---|
BROADCAST_DRIVER | null / string | null | Defines the broadcast driver to be used for WebSocket connections. It can be set to drivers such as pusher or reverb, or null if broadcasting is not needed. |
Pusher
| Variable | Type | Default | Description |
|---|
PUSHER_APP_ID | string | | The unique application ID for Pusher. |
PUSHER_APP_KEY | string | | The public key for Pusher. |
PUSHER_APP_SECRET | string | | The secret key for Pusher. |
PUSHER_APP_CLUSTER | string | | Specifies the Pusher cluster where the application is hosted, essential for managing regions and latency. |
Reverb
| Variable | Type | Default | Description |
|---|
REVERB_APP_ID | string | | Unique identifier for the Reverb application (use a randomly generated ID). |
REVERB_APP_KEY | string | | The public key for Reverb (use a randomly generated key). |
REVERB_APP_SECRET | string | | The secret key for Reverb (use a randomly generated key). |
REVERB_HOST | string | example.com | The host address for Reverb. Use "localhost" for testing on your localhost |
REVERB_PORT | string | 8080 | Specifies the port on which Reverb will accept WebSocket connections. Use 8080 for testing on your localhost |
REVERB_SCHEME | string | http | Defines the connection scheme (e.g., http, https) for communicating with Reverb, securing data transmission. |
SSL environment variables
| Variable | Type | Default | Description |
|---|
SSL_EMAIL | string | user@example.com | The email address used for SSL certificate registration and notifications. (Docker only) |
Docker environment variables
| Variable | Type | Default | Description |
|---|
SKIP_DOWNLOAD | boolean | false | Set to true if you don't want to download Mixpost each time the container is started. Add this variable after downloading for the first time. (Docker only) |