Skip to main content

Upgrading Mixpost Enterprise to v7 from v6

Backup your database first

Always back up your database before starting the upgrade. If something goes wrong, you will need it to restore your previous state.

This guide walks you through upgrading Mixpost Enterprise from v6 to v7. Choose the path that matches your installation method: Docker or PHP (manual / Laravel package).

What's new in v7

Mixpost Enterprise v7 bundles the Mixpost Pro v6 feature set:

  • Engagement — manage comments from your connected accounts in one place, with optional AI auto-labeling, sentiment analysis, spam and hate-speech detection, and an AI reply composer.
  • Pixelfed — connect Pixelfed accounts and import post analytics.
  • MCP server — let AI clients connect to your workspace through the Model Context Protocol.

Engagement: provider permissions & re-authentication

The new Engagement pulls comments, replies, and mentions from your connected accounts into the Inbox in real time using provider webhooks. Webhooks need extra permissions on your provider apps and a fresh subscription for every account, so plan for two phases around the upgrade:

  • Before the upgrade — add the new permissions/scopes to each social provider app you use, and submit any required App Review early (Meta and LinkedIn approvals can take several days).
  • After the upgrade — turn on webhooks for each provider and reconnect every existing account.

Engagement is enabled by default (MIXPOST_INBOX=true). If you do not want it, set MIXPOST_INBOX=false and skip the rest of this section.

Unsupported providers

Engagement does not support TikTok or Pinterest yet.

Before the upgrade — add provider permissions

Add the items below to the relevant provider apps before you reconnect accounts:

ProviderAdd to your appApp Review
Facebook (Pages)pages_manage_metadata scope — use case Manage everything on your PageNot required — active once the app is published
Facebook (optional — to show who commented from a personal profile)Business Asset User Profile Access feature (Business app only)Required
Instagram via Facebook logininstagram_manage_comments scope — use case Manage messaging & content on InstagramRequired (advanced access)
Instagram standaloneinstagram_business_manage_comments scopeRequired (advanced access)
Threadsthreads_read_replies and threads_manage_replies scopesRequired
LinkedIn (Pages)No new scope, but Engagement requires the Community Management API product and your numeric App ID saved in MixpostCovered by Community Management API product access

Exact steps live in each provider's setup and App Review guides:

tip

Adding these scopes before upgrading means that when you reconnect an account afterwards, the authorization screen already asks for the new permissions in a single pass — you avoid a second reconnect later.

After the upgrade — enable webhooks & reconnect accounts

Existing accounts were connected without the new permissions and without a webhook subscription, so the Inbox stays empty until you:

  1. Turn on webhooks for the following providers (one-time per app):
    • Facebook / Instagram (via Facebook) — open the Facebook service form in Mixpost and turn on Enable Webhooks. Mixpost registers the app-level webhook and subscribes each Page (and its linked Instagram account) automatically. See Enable Engagement.
    • Instagram standalone — enable webhooks in Mixpost, then register the inbox-webhook callback URL in the Meta dashboard. See Configure the Engagement.
    • Threads — set a Webhook Verify Token in Mixpost, then add the callback URL and subscribe to the replies and mentions fields in the Meta dashboard. See Configure the Engagement.
    • LinkedIn — save your App ID in the LinkedIn service form, then register the callback URL under the app's Webhooks tab. See Configure the Engagement.
  2. Reconnect your existing accounts on these providers — for Facebook, Instagram, Threads, and LinkedIn only, go to each workspace → Accounts and re-authenticate the connected accounts on those providers. This grants the new permissions and subscribes each account to webhooks. Accounts on other providers — and any you do not reconnect — keep publishing normally but will not receive any Engagement.
note

Your Mixpost instance must be reachable over HTTPS at a public URL for providers to deliver webhooks.

Upgrade Using Docker

  1. Navigate to the folder containing your docker-compose.yml.
  2. Run the following commands:
# Pull the latest version
docker compose pull

# Stop and remove the old container
docker compose down

# Start a new container
docker compose up -d
Rolling back

If something goes wrong, revert to the v6 image tag (inovector/mixpost-enterprise:v6) in your docker-compose.yml, restore your database backup, and run docker compose up -d again.

  1. Set up Engagement — turning it on takes more than reconnecting accounts: each provider's webhooks must be enabled first, and only Facebook, Instagram, Threads, and LinkedIn are supported. Follow Engagement: provider permissions & re-authentication.

Upgrade in a PHP Environment

Choose your installation type below.

Manual Installation (PHP)

If you installed Mixpost Enterprise using the manual installation method, use the automatic upgrade script:

curl -fsSL https://raw.githubusercontent.com/inovector/MixpostEnterpriseApp/main/scripts/upgrade/upgrade_v7.sh | bash

The script handles dependency updates, migrations, asset publishing, and cache clearing.

After the script completes, set up Engagement — see Engagement: provider permissions & re-authentication. Enabling it takes more than reconnecting accounts: each provider's webhooks must be turned on first, and only Facebook, Instagram, Threads, and LinkedIn are supported.

Laravel Package

If Mixpost Enterprise is installed within an existing Laravel application, follow these steps.

Laravel 12+ required

Mixpost Enterprise v7 requires Laravel 12 or 13. If your application runs Laravel 10 or 11, upgrade Laravel first before proceeding.

Step 1. Update dependencies

composer require inovector/mixpost-enterprise "^7.0" -W
tip

This also upgrades the bundled inovector/mixpost-pro-team package to v6 and pulls in laravel/mcp (a new dependency for the MCP server). The -W (--with-all-dependencies) flag lets Composer resolve these automatically.

Step 2. Run database migrations

v7 adds new tables for the Engagement and Pixelfed analytics (from the bundled Pro v6 package). Copy the migration file and run it:

cp vendor/inovector/mixpost-pro-team/database/migrations-upgrade/2026_05_22_123148_upgrade_mixpost_v6.php database/migrations/
php artisan migrate

Step 3. Publish assets

php artisan mixpost:publish-assets --force=true
php artisan mixpost-enterprise:publish-assets --force=true

Step 4. Update config

If you previously published the Mixpost config file, re-publish it so the new keys are available:

php artisan vendor:publish --tag=mixpost-config --force

v7 introduces these new config keys (all optional, with sensible defaults):

  • queue.inbox (MIXPOST_QUEUE_INBOX, default mixpost-inbox) — queue for Engagement jobs.
  • features.inbox_engagement (MIXPOST_INBOX, default true) — toggles the Engagement.

See the environment variables reference for the full list.

Step 5. Restart Horizon

v7 adds a new mixpost-inbox queue. If you are already using the Horizon::supervisors() helper (set up during the v6 upgrade), no configuration change is required — the helper provisions a supervisor for the new queue automatically. You only need to restart Horizon so it picks up the new layout:

php artisan horizon:terminate
Hardcoded supervisors

If you replaced Horizon::supervisors() with hand-written supervisor blocks in config/horizon.php, add the mixpost-inbox queue to a supervisor that processes Mixpost jobs, otherwise Engagement messages will not be ingested. We recommend switching back to Horizon::supervisors() — see the Horizon configuration guide.

Step 6. Clear the cache

php artisan route:clear
php artisan view:clear
php artisan mixpost:clear-services-cache
php artisan mixpost:clear-settings-cache

Step 7. Optimize application

php artisan optimize

Step 8. Restart Reverb

info

Only required if reverb is your BROADCAST_DRIVER. Skip this step otherwise.

php artisan reverb:restart

Step 9. Set up Engagement

Enable the new Engagement: turn on each provider's webhooks, then reconnect the affected accounts. Only Facebook, Instagram, Threads, and LinkedIn are supported. See Engagement: provider permissions & re-authentication for the full steps.