All guides
Product handbook

MarkHub

Marketing, communication, publishing and automation platform with multiple channel families.

InstallationAdministrationEveryday useOperations

Start here

Choose the instructions that match your role. You do not need to configure the server or create a developer app just to use a workspace that an administrator has already set up.

I manage this installation

Start with installation and requirements, then configure the site and its services.

Installation instructions →
I use an existing account

Sign in to the correct account/workspace, then follow the user guide for your task.

User features →
  1. Installing the product: follow this product’s installation chapter. Check its PHP, database, environment and installer requirements; do not copy setup commands from another product.
  2. Configuring the site: use Admin features for settings, users and available services. Keep site administration separate from ordinary workspace use.
  3. Connecting an external service: the administrator follows API setup and app review first. Users then connect their own permitted accounts.
  4. Using a feature: start with one controlled record, follow the task’s fields/buttons, then check the saved result before repeating the action with live records.
  5. Operating the installation: review operations for scheduled work, queues, backups and updates relevant to this product.
01 / Overview

Overview

Use this guide to set up a new isolated installation, prepare administrator settings, complete the main user workflows and operate the application. Route paths shown below are relative to your own application domain; configuration overrides can change some defaults.

Installing the application?

Start with Installation. Review the source version and outstanding setup inputs before running commands.

Setting up the business?

Follow Administration before inviting users or enabling external services.

Using the product?

Follow the User guide. Each workflow explains prerequisites, actions and expected results.

Maintaining the service?

Use Operations for background jobs, updates, backup and recovery.

These instructions are grounded in the pinned source snapshot. Runtime/UI acceptance is still pending; a documented expected result is not a completed test. Technical references and known missing inputs are collected at the end of this guide.

02 / Installation

Installation

Check the source and runtime

git clone https://github.com/markhubaai/markhub.git markhub-dd
cd markhub-dd
git checkout --detach 68a5655db1bbe17c74fb211f0fe0ee4e63c8be88

Verify the source manifest using the shared preparation procedure before changing this checkout. The source alias identifies the seller’s original directory; it does not establish equivalence to production or a specific customer archive.

Project requirements

Use the shared browser-installation procedure. The installer requires PHP 8.3.0 or newer; composer.json/lock constraints must also pass. Its configured writable paths are .env, bootstrap/cache and storage. MySQL is written as the installation database connection.

Extensions explicitly checked by this installer: ctype, fileinfo, filter, hash, json, mbstring, openssl, pdo, pdo_mysql, tokenizer, xml. Also provide pdo_mysql for the MySQL connection even where it is not in the explicit checklist. Optional media features can require additional extensions/binaries and must be checked independently.

Default configured purchase verification endpoint: https://stackposts.com/api/installer/verify. This is a source default, not confirmation of service availability or permission to use production entitlements.

Accepted Setup fields: purchase_code, website_title, website_description, website_keywords, db_host, db_port, db_database, db_username, db_password, admin_name, admin_email, admin_username, admin_password, admin_timezone. The password confirmation must also be submitted. Complete the wizard instead of creating an administrator by database edits.

Prepare the server and source working copy
  1. Use a dedicated test host or VM with a separate database and per-project hostname. Do not point any snapshot at production databases, queues, mailboxes, payment accounts or customer channels.
  2. Obtain named read-only GitHub access through the repository owner’s access process. Use your normal authenticated Git workflow; never embed access tokens in clone URLs or documents.
  3. Check out the exact commit shown in the project guide. Keep the working copy and evidence logs separate from the local documentation folder.
  4. Verify every recorded file against the source manifest before making local changes. The manifest covers every other prepared file; its own hash and the Git commit should be recorded separately.
  5. Provision a PHP runtime satisfying composer.json and composer.lock, a reviewed Composer installation, required PHP extensions and a web server serving only public/. Use MySQL with pdo_mysql for the seven browser installers. Exact database server compatibility remains a test item.
  6. Create empty writable bootstrap/cache and storage runtime directories from the included placeholders. Give the application service account the required write access; do not make the entire code tree globally writable.
  7. Resolve the project-specific assets/build gap and obtain approved schema/anonymized fixtures where required. Do not copy an old release’s vendor, assets, database or .env into this snapshot without provenance and version checks.

Clone and pin each repository

Each project section gives the exact commands. A new source checkout is recommended so existing local application changes cannot be overwritten. The clone destination must be empty.

Verify prepared file hashes in PowerShell

Run from the root of the checked-out repository before installing dependencies or editing configuration. A clean Git status is a separate check.

$manifest = Get-Content -LiteralPath 'DD-SNAPSHOT.json' -Raw | ConvertFrom-Json -AsHashtable
foreach ($entry in $manifest.files) {
    $file = Join-Path (Get-Location) $entry.path
    if (-not (Test-Path -LiteralPath $file -PathType Leaf)) { throw "Missing: $($entry.path)" }
    if ((Get-FileHash -LiteralPath $file -Algorithm SHA256).Hash -ne $entry.sha256) {
        throw "Hash mismatch: $($entry.path)"
    }
}
git rev-parse HEAD
git status --short

Environment templates are inventories

The supplied .env.example files contain names only. They are not ready-to-run configurations. An empty variable can override a useful config default, so do not leave every listed variable blank and expect the application to work. Review config/*.php, use a minimal isolated configuration, then add values needed by enabled features. Provider options may also live in the database/admin UI.

Create .env only in a new source working copy. Use the values below as a starting checklist, replacing the hostname, database identity and password privately. APP_KEY is initially empty and must be generated locally; no application key is supplied in this document.

APP_NAME="Application Test"
APP_ENV=local
APP_DEBUG=false
APP_URL=https://project.example.test
APP_KEY=
APP_CIPHER=AES-256-CBC
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=REPLACE_WITH_ISOLATED_DATABASE
DB_USERNAME=REPLACE_WITH_ISOLATED_USER
DB_PASSWORD=SET_PRIVATELY
SESSION_DRIVER=file
CACHE_STORE=file
QUEUE_CONNECTION=sync
MAIL_MAILER=log

The file session/cache and sync queue values are temporary bootstrap choices, not the final worker configuration. The seven installers switch their final session, cache and queue backends to database unless explicitly configured otherwise. Keep workers stopped until fixtures and outbound destinations are controlled. Never regenerate APP_KEY on an existing installation.

Dependency installation is separate from the browser wizard

The Git snapshots exclude installed root vendor dependencies. Inspect Composer scripts and allowed plugins before running dependency installation. A complete customer release may already contain its matching vendor tree; the source snapshots do not. Review package scripts before any Node dependency install.

# Run only inside the isolated checkout after reviewing scripts/plugins.
composer install --no-dev --prefer-dist --no-interaction
composer check-platform-reqs --no-dev

# Fresh isolated installation only, once dependency bootstrapping works.
php artisan key:generate
php artisan config:clear

If post-autoload package discovery cannot boot because configuration or database-backed options are missing, retain the error. A reviewer may install with --no-scripts for diagnosis, but deferred package-discovery/scripts must be reviewed and completed after the missing configuration is supplied. Do not present --no-scripts as a finished deployment.

Complete the browser installer

This procedure applies to StackPosts, MarkHub, Waziper Official, FlowCRM AI, LocalBoost AI, LeadFlow AI and LinkQR Pro. The Store has its own procedure below. The observed wizard is Requirements → Setup → Finish, served by GET/POST /installer.

  1. Complete dependency, asset and fresh-environment preparation first. Point the virtual host at public/ and use HTTPS for provider-facing tests. In WAMP, use a dedicated virtual host; the v13/docs folder itself is not an application document root.
  2. Create a new empty MySQL database and its isolated user. The installer checks that it is fresh; do not import a production database or run seeders/migrations first.
  3. Open /installer and resolve every Requirements failure. PHP and the exact checked extensions are listed in each project section. Confirm .env, bootstrap/cache and storage can be written by the web process.
  4. At Setup, enter an valid installation purchase code, website title, database host/port/name/user/password and administrator name/email/username/password confirmation/timezone. Optional website description and keywords are also accepted.
  5. Submit once and record the result. The installer verifies the purchase, creates its application key, writes database settings, runs migrations, seeds configured defaults, creates the administrator/plan and marks installation complete.
  6. At Finish, sign in with the administrator you created. Confirm that /installer is no longer available as a fresh setup page and that the final session/cache/queue configuration is consistent.
  7. Configure SMTP, selected themes, plans, integrations, scheduler and workers, then execute the project’s acceptance checks. Local sign-in is not provider acceptance.

A failed install can leave partially created database tables even if the previous .env is restored. Preserve redacted evidence and have the reviewer reset only the confirmed disposable test database before a clean retry. Never use migrate:fresh or delete a production database as troubleshooting.

Prepare the matching interface assets

public/build is absent from this snapshot, but package.json, package-lock.json and scripts/build-theme.js are present. After reviewing Node dependencies, use the locked dependency installation and build the exact themes selected by the application. The script defaults to app/default and emits public/build/themes/<area>/<name>/manifest.json. A single default build does not establish that every guest/app theme works.

# Reviewed isolated build; shell examples use POSIX syntax.
npm ci
THEME=app/default npm run build
# Repeat for the actual enabled guest/app theme keys; do not invent a theme name.

On PowerShell, set $env:THEME to the actual theme key before npm run build and remove that process variable afterward. Record Node/npm versions; no root Node engines constraint was declared. Check both app CSS/JS and public-page asset responses.

03 / Administration

Admin setup

Work as an authorized administrator in the isolated installation. Configure one area at a time, save it, then verify its effect with an appropriate test user. Feature access can depend on both the subscription plan and the user’s workspace role.

1

Site plans and teams

Configure branding, SMTP, plans and team roles. Enable only the app families required by the installation.

2

Channel configuration

Prepare provider-specific app/account settings before connecting user channels. Separate channel ownership, allowed apps and webhook setup.

3

Inbox and automation access

Review who can view conversations, reply and change automations. Scope rules to the intended workspace/channel and controlled test recipients.

4

Themes and optional services

Build the selected app/guest themes. Assess Unofficial gateways, email/push services and other optional processes individually; do not enable them all by default.

Before inviting users

  • Check site identity, timezone and selected themes.
  • Test sign-in with an owner and a restricted teammate/customer.
  • Confirm the configured mail mode and recipient identity before sending invitations.
  • Verify plan/role limits and the workspace that owns each record.
  • Review any enabled external action, provider cost and recovery procedure.
Product configuration notes
  1. Configure administration, user plans, teams, SMTP, themes and business timezone before testing individual apps.
  2. Review nested module families independently: Channels, Inbox, Publishing, EmailMarketing, WebPush, WhatsappCRM, Replyva and WhatsAppUnofficial. Their presence is not a claim that every channel is configured.
  3. For WhatsApp Official, identify the actual Cloud API connection mode and use the webhook/verification values displayed by the application. Do not substitute credentials from the old Unofficial gateway.
  4. If Unofficial WhatsApp is in review scope, identify its separate gateway, process manager, session storage and package instructions. The gateway is not required for a Cloud API-only review.
  5. The supplied Node build script processes one THEME at a time; build the exact app and guest themes selected for this test installation.
04 / User guide

Use the features

Use the correct workspace and an account with the required plan and role. The workflows below describe the principal product tasks supported by the inspected routes and actions; they are not a manual for every optional module.

Workflow 01

Connect a communication channel

/portal/channels/connect

Before you start: The administrator has configured the required provider and the workspace has access.

What this feature does

Connect a provider account and make it available to permitted product apps.

Who can use it

A signed-in verified user with access to the workspace, provider and app.

Fields and settings

Field or settingWhat to enter or check
ProviderSelect the provider in the channel connection hub.
Origin appIf opened from another app, confirm that the channel is being connected for the intended app context.
Account authorizationComplete the specific provider wizard; required identifiers differ by connector.
Callback / webhookUse the URL and verification settings shown by the actual installation, not a copied URL from another site.

Steps

  1. Open the channel connection hub in the workspace that should own the account.
  2. Select the provider and use its setup wizard; use the app-specific context if the hub was opened from Publishing or another app.
  3. Supply the required account identity/permissions or complete authorization as requested by that connector.
  4. Return to /portal/channels and verify the connected account and its intended app usage.
Expected result

The workspace has the expected channel account. Provider approval and live delivery remain separate.

Check the result

  1. Check the provider/account identity in /portal/channels.
  2. Open the intended app and check that the connected account is available there.
  3. Review provider permissions if the connection exists but the intended action is unavailable.

If it does not work: If setup is unavailable, check plan/access, provider configuration and whether the connector is included in this edition.

Workflow 02

Review inbox activity

/portal/inbox

Before you start: At least one permitted test channel exists and a controlled inbound event has been received.

What this feature does

Find incoming activity and reply from the workspace that owns the channel.

Who can use it

A user allowed to view the relevant channel and its conversations.

Fields and settings

Field or settingWhat to enter or check
WorkspaceUse the workspace that owns the channel.
Channel / appSelect the corresponding inbox/app. Not every connector uses the same conversation workspace.
Contact / conversationMatch the sender and connected account before replying.
Reply contentCheck the text, attachments and any selected automation before sending.

Steps

  1. Open Inbox in the same workspace as the connected channel.
  2. Check the overview and open the available conversation workspace for that channel/app.
  3. Locate the test contact/conversation and verify its channel identity before sending a reply.
  4. Review the reply and resulting status; keep assignment/automation changes limited to the intended conversation.
Expected result

The incoming event is traceable to the correct workspace and channel.

Check the result

  1. Check the inbound event and sender against the connected account.
  2. Inspect the application status and provider response after replying.
  3. If no event is present, inspect webhook delivery and signature setup before changing inbox data.

If it does not work: If an event is missing, check webhook delivery/signature, channel ownership, filters and the specific app’s inbox rather than assuming every channel uses the same screen.

Workflow 03

Enable one automation at a time

Use the relevant app’s automation area

Before you start: A test conversation or publishing fixture and a controlled action destination are available.

What this feature does

Apply a defined inbox action when a matching incoming message or comment is received.

Who can use it

A workspace user with access to the inbox automation workspace and the affected account.

Fields and settings

Field or settingWhat to enter or check
NameRequired; up to 160 characters.
Statusdraft, active or paused. Keep draft/paused while preparing a test.
Triggermessage.received or social.comment.received in the inspected form validation.
Provider / accountOptional form filters. Set them when the rule must be restricted to one provider/account.
Post modeall or selected. Review selected post IDs when limiting comment rules.
Keyword modeall, contains or equals. Review included and excluded keywords.
ActionReview assignment, priority, note and reply/comment-reply fields used by the rule. A reply body is limited to 2,000 characters in validation.

Steps

  1. Choose one app and identify its trigger, conditions and permitted action.
  2. Create a small rule with the intended workspace/channel scope.
  3. Enable the rule only after reviewing recipients and external effects.
  4. Trigger one controlled event, inspect the resulting action and disable or adjust the rule if the outcome differs.
Expected result

One intended event produces one traceable action; unrelated channels are unaffected.

Check the result

  1. Keep the rule inactive until trigger, scope and recipients are correct.
  2. Enable it and create one matching controlled event.
  3. Inspect the resulting assignment/note/reply and confirm that unrelated events are unchanged.

If it does not work: Inspect the app’s worker, trigger conditions and duplicate-event handling before broadening the rule.

05 / Operations

Operations

Background processing for this product

The installer’s final defaults use database sessions/cache/queues. Confirm the relevant tables exist, start a worker for the intended queue and register schedule:run once per minute as described in shared operations. Observe the installed schedule before enabling outbound jobs.

Source paths relevant to scheduling
  • modules/App/FakeData/Providers/FakeDataServiceProvider.php
  • modules/App/ConversationCore/InboxMessages/Providers/InboxMessagesServiceProvider.php
  • modules/App/AppPayments/Providers/AppPaymentsServiceProvider.php
  • modules/EmailMarketing/EmailMarketingRss/Providers/EmailMarketingRssServiceProvider.php
  • modules/WhatsappCRM/WhatsappCrmBulkMessenger/Providers/WhatsappCrmBulkMessengerServiceProvider.php
  • modules/Admin/AdminMarketplace/Providers/AdminMarketplaceServiceProvider.php
  • modules/WhatsAppUnofficial/WhatsAppUnofficialBulkMessages/Providers/WhatsAppUnofficialBulkMessagesServiceProvider.php
  • modules/Admin/AdminCrons/Support/SystemCronRegistry.php
  • modules/WhatsAppUnofficial/WhatsAppUnofficialBulkMessages/Livewire/BulkMessagesIndex.php
  • modules/EmailMarketing/EmailMarketingAutomations/Providers/EmailMarketingAutomationsServiceProvider.php
  • modules/EmailMarketing/EmailMarketingCampaigns/Providers/EmailMarketingCampaignsServiceProvider.php
  • modules/Replyva/ReplyvaStores/Providers/ReplyvaStoresServiceProvider.php
  • modules/WebPush/WebPushSubscribers/Providers/WebPushSubscribersServiceProvider.php
  • modules/Publishing/PublishingRssSchedules/Support/InteractsWithRssSchedules.php
  • modules/Publishing/PublishingRssSchedules/Services/RssScheduleService.php
  • modules/Publishing/PublishingRssSchedules/Livewire/RssScheduleIndex.php
  • modules/Publishing/PublishingRssSchedules/Livewire/RssScheduleForm.php
  • modules/Publishing/PublishingRssSchedules/Providers/PublishingRssSchedulesServiceProvider.php
  • modules/Publishing/PublishingRssSchedules/Console/Commands/DispatchQueuedRssSchedulesCommand.php
  • modules/Publishing/PublishingRssSchedules/Models/RssScheduleHistory.php
  • modules/Replyva/ReplyvaCore/Providers/ReplyvaCoreServiceProvider.php
  • modules/Publishing/PublishingPosts/Providers/PublishingPostsServiceProvider.php
  • modules/Publishing/PublishingAI/Providers/PublishingAIServiceProvider.php
  • modules/Publishing/PublishingPlanner/Providers/PublishingPlannerServiceProvider.php
  • modules/WebPush/WebPushSettings/Providers/WebPushSettingsServiceProvider.php
  • modules/WebPush/WebPushCampaigns/Providers/WebPushCampaignsServiceProvider.php
  • modules/WebPush/WebPushAutomations/Providers/WebPushAutomationsServiceProvider.php
  • modules/WebPush/WebPushRss/Providers/WebPushRssServiceProvider.php
Scheduler workers and mail

Run these procedures only after the isolated installation and outbound configuration have been reviewed. Use the application service account and the same PHP runtime/configuration as the web process. The commands below are operating examples to adapt, not commands executed during documentation preparation.

Schedule discovery before activation

php artisan schedule:list
php artisan queue:failed
php artisan migrate:status

These commands boot the application and require working configuration. schedule:list shows registered schedules but not every external cron or a complete deployment inventory. Record results before enabling continuous processing.

Scheduler

On a Linux test host, configure one cron entry per application. Replace both absolute paths with the confirmed test runtime and checkout. Preserve restricted test logs; rotate them.

* * * * * cd /srv/dd/PROJECT_ROOT && /usr/bin/php artisan schedule:run >> /srv/dd/logs/PROJECT-scheduler.log 2>&1

On Windows/WAMP, create a Task Scheduler job repeating every minute: Program = the selected php.exe; Arguments = artisan schedule:run; Start in = the isolated repository root. Use an account with the required file/database permissions. Do not point the task at the seller’s v12 working installation.

Queue workers

php artisan queue:work database --queue=default --tries=3 --timeout=60

This example applies when the intended connection is database and the queue name is default. Use the actual connection, named queues and worker limits from each project/module. Keep timeout below retry_after to reduce duplicate processing; check timeout requirements for media/AI work. StackPosts automation needs its separate lane described in its project guide. Supervisor/systemd or an equivalent process manager must restart long-running workers; cron is not a worker manager.

Record queue tables/backend, queue names, retry policy, failed-job handling, concurrency and restart behavior. Do not run queue:retry all blindly: failed jobs may send messages, charge providers or repeat external changes. Review the target and idempotency before a controlled retry.

Mail and optional services

  • MAIL_MAILER=log records messages locally and does not prove SMTP delivery. Use a controlled SMTP inbox for authorized notification tests; protect/redact logs containing test personal data.
  • Redis, object storage, websocket/realtime services, media binaries and social/AI gateways are feature-specific. Determine need from enabled modules and configuration rather than provisioning every possible dependency.
  • A provider console, approval, billing method and valid token are separate dependencies. A successful local install does not establish API approval or delivery.
  • Use actual callback/redirect URLs produced by the configured application. This guide intentionally does not invent a generic webhook URL for every provider.
Updates backup and recovery

Before an update

  1. Record the current source commit, dependencies, active modules/themes, schema revision, configuration inventory and artifact hashes. Verify the target release and its change notes.
  2. Take an encrypted database backup, uploaded-file/product-artifact backup and a separately protected copy of application configuration/APP_KEY. Do not place these backups inside source repositories or this documentation folder.
  3. Perform a restore rehearsal into a separate disposable environment. A backup file that has never restored successfully is not acceptance evidence.
  4. Obtain the product-specific upgrade instructions and rehearse on a clone. Waziper’s referenced UPGRADE.md is missing from its snapshot; do not invent an upgrade path.
  5. Define the maintenance window, queue drain/stop procedure and rollback thresholds. Separate application rollback from schema/data rollback.

During an approved change

Use the seller-approved release/update mechanism and reviewed migration steps. Preserve the existing APP_KEY and customer data. Do not rerun the fresh installer on an existing installation. Rebuild only the assets belonging to the selected release, clear/rebuild applicable caches and restart workers so they load the new code.

# Operational examples after an approved isolated update; adapt to the release.
php artisan optimize:clear
php artisan queue:restart

Re-enabling workers can produce external effects. Confirm the test destinations first. Do not treat copying the previous application code back as a complete rollback if schema or customer data changed.

Post-update checks

  • Check login, authorization, active themes/static assets, uploads/downloads, cron, queued work and one product-specific user flow.
  • For Store/license changes, validate synthetic old-install activation/update behavior and download entitlement before any cutover.
  • For provider integrations, retain separate webhook/publish/delivery evidence and redact tokens and customer identifiers.
  • Record backups, restore outcome, downtime, errors, rollback decision and remaining gaps. Remove disposable test data according to your retention policy.

Acceptance checklist

These are checks for the person testing the installation, not completed test results. Retain timestamp, commit, environment, fixture identity, expected/actual result and redacted evidence for each.

  1. Create isolated team/customer fixtures and verify inbox and file authorization.
  2. Connect one permitted test channel, receive one controlled event and inspect its conversation status.
  3. For Official WhatsApp, test inbound receipt, a reply and delivery status with approved test identities.
  4. Keep email campaigns, push delivery, publishing and Unofficial gateway acceptance as separate results.
06 / Troubleshooting

Resolve common problems

Start with the visible error, record it without secret values and check the related setup area. Do not use destructive resets or permission bypasses to make a test appear successful.

SymptomChecksAvoid
Missing vendor/autoload.phpRoot dependencies are excluded. Review Composer scripts/plugins and install the locked dependencies in the isolated checkout.Copying vendor from another version or running composer update as a shortcut.
419 or missing application keyCheck APP_URL/HTTPS, cookie/session settings, writable runtime directories and a locally generated APP_KEY for this new installation.Regenerating an existing production APP_KEY or disabling CSRF globally.
500 or missing tableCheck the redacted application log, module activation, database configuration, installer state and whether the approved schema/defaults exist.Importing production data or running migrate:fresh without verifying the disposable target.
Unstyled page or missing manifestCheck the actual active theme, expected asset URL and its matching manifest/build. Several snapshots have documented missing build inputs.Assuming npm run build exists everywhere or using assets from an older v13 release.
Purchase-code verification failsConfirm the configured endpoint, valid test entitlement, outbound route and isolated-host identity with the seller. Record redacted HTTP status.Bypassing purchase checks, using a customer’s code or disabling certificate checks as a remedy.
Wizard refuses nonempty databaseUse a new isolated database; retain evidence of previous failed attempt and obtain approval before resetting the disposable test target.Reusing a customer/production database.
Jobs do not runConfirm QUEUE_CONNECTION, exact queue names, running worker, scheduler registrations and failed-job logs. Check the automation lane on StackPosts.Leaving sync as final automation configuration or retrying every failed job.
Email not receivedInspect MAIL_MAILER; log mail is not SMTP. Verify a controlled sender/inbox and message status.Sending test messages to customer lists.
Provider action or webhook failsConfirm actual app/account identity, permissions, review status, callback URL, signature setup and test recipient.Treating a source module or local health page as provider acceptance.
07 / Technical reference

Source version and technical reference

Repository
markhubaai/markhub
Pinned commit
68a5655db1bbe17c74fb211f0fe0ee4e63c8be88
Laravel lock
v13.23.0
PHP constraint
^8.3
Source alias
markhub
Open exact source references at the pinned commit
Module source inventory (178 descriptors)

These are source module descriptor locations, not proof that each module is active, configured, sold separately, licensed or provider-approved.

modules/Admin/AdminAI
modules/Admin/AdminAITemplate
modules/Admin/AdminAITemplateCategories
modules/Admin/AdminBlogCategories
modules/Admin/AdminBlogs
modules/Admin/AdminBlogTags
modules/Admin/AdminCache
modules/Admin/AdminCaptcha
modules/Admin/AdminCoupons
modules/Admin/AdminCredits
modules/Admin/AdminCrons
modules/Admin/AdminDashboard
modules/Admin/AdminFaqs
modules/Admin/AdminFinance
modules/Admin/AdminLanguages
modules/Admin/AdminMailServer
modules/Admin/AdminManualPayments
modules/Admin/AdminMarketplace
modules/Admin/AdminNotifications
modules/Admin/AdminPaymentHistory
modules/Admin/AdminPaymentManualConfig
modules/Admin/AdminPaymentReport
modules/Admin/AdminPaymentSubscriptions
modules/Admin/AdminPlans
modules/Admin/AdminSupport
modules/Admin/AdminSystemInformation
modules/Admin/AdminThemes
modules/Admin/AdminUser
modules/AI/AppAIBestTime
modules/AI/AppAICampaignWizard
modules/AI/AppAICompetitorWatch
modules/AI/AppAIContent
modules/AI/AppAIContentPlanner
modules/AI/AppAIImage
modules/AI/AppAIRepurpose
modules/AI/AppAIReview
modules/AI/AppAISemanticSearch
modules/AI/AppAIStudio
modules/AI/AppAITrendFinder
modules/AI/AppAIVideo
modules/App/AppBilling
modules/App/AppCredits
modules/App/AppFiles
modules/App/AppIntegrations
modules/App/AppPayments
modules/App/AppProfile
modules/App/AppSettings
modules/App/AppSupport
modules/App/AppTeam
modules/App/ConversationCore/InboxContacts
modules/App/ConversationCore/InboxMessages
modules/App/ConversationCore/InboxSettings
modules/App/FakeData
modules/Channels/ChannelFacebookPages
modules/Channels/ChannelInstagramProfiles
modules/Channels/ChannelInstagramUnofficial
modules/Channels/ChannelLinkedinPages
modules/Channels/ChannelLinkedinProfiles
modules/Channels/Channels
modules/Channels/ChannelTiktokProfiles
modules/Channels/ChannelXProfiles
modules/EmailMarketing/EmailMarketingAutomations
modules/EmailMarketing/EmailMarketingCampaigns
modules/EmailMarketing/EmailMarketingDeliverability
modules/EmailMarketing/EmailMarketingDeveloper
modules/EmailMarketing/EmailMarketingLists
modules/EmailMarketing/EmailMarketingOverview
modules/EmailMarketing/EmailMarketingReports
modules/EmailMarketing/EmailMarketingRss
modules/EmailMarketing/EmailMarketingSegments
modules/EmailMarketing/EmailMarketingSettings
modules/EmailMarketing/EmailMarketingSubscribers
modules/EmailMarketing/EmailMarketingTemplates
modules/Inbox/InboxAiReplies
modules/Inbox/InboxAutomations
modules/Inbox/InboxKnowledgeBase
modules/Inbox/InboxLiveChatWidget
modules/Inbox/InboxOverview
modules/Inbox/InboxReports
modules/Payment/Payment2Checkout
modules/Payment/PaymentCCAvenue
modules/Payment/PaymentFlutterwave
modules/Payment/PaymentInstamojo
modules/Payment/PaymentIyzico
modules/Payment/PaymentPaypal
modules/Payment/PaymentPaystack
modules/Payment/PaymentPaytm
modules/Payment/PaymentPayTR
modules/Payment/PaymentPayU
modules/Payment/PaymentRazorpay
modules/Payment/PaymentSslCommerz
modules/Payment/PaymentStripe
modules/Payment/PaymentYooMoney
modules/Popups/PopupAnalytics
modules/Popups/PopupAttribution
modules/Popups/PopupBilling
modules/Popups/PopupCampaigns
modules/Popups/PopupConversionGateway
modules/Popups/PopupDeliveryDebugger
modules/Popups/PopupEvents
modules/Popups/PopupExperiments
modules/Popups/PopupForms
modules/Popups/PopupHandlers
modules/Popups/PopupIntelligence
modules/Popups/PopupLogs
modules/Popups/PopupOverview
modules/Popups/PopupPermissions
modules/Popups/PopupPixel
modules/Popups/PopupSettings
modules/Popups/PopupSites
modules/Popups/PopupSources
modules/Popups/PopupTargeting
modules/Popups/PopupTemplates
modules/Popups/PopupUsage
modules/Publishing/AppGroups
modules/Publishing/AppWatermark
modules/Publishing/PublishingAI
modules/Publishing/PublishingAnalytics
modules/Publishing/PublishingAutomation
modules/Publishing/PublishingBulk
modules/Publishing/PublishingContentLibrary
modules/Publishing/PublishingOverview
modules/Publishing/PublishingPlanner
modules/Publishing/PublishingPosts
modules/Publishing/PublishingRssSchedules
modules/Publishing/PublishingSettings
modules/Replyva/ReplyvaAssistant
modules/Replyva/ReplyvaBusiness
modules/Replyva/ReplyvaChannels
modules/Replyva/ReplyvaComments
modules/Replyva/ReplyvaCore
modules/Replyva/ReplyvaInbox
modules/Replyva/ReplyvaLeads
modules/Replyva/ReplyvaOverview
modules/Replyva/ReplyvaPostReplies
modules/Replyva/ReplyvaReports
modules/Replyva/ReplyvaSettings
modules/Replyva/ReplyvaStores
modules/WebPush/WebPushApi
modules/WebPush/WebPushAutomations
modules/WebPush/WebPushCampaigns
modules/WebPush/WebPushOverview
modules/WebPush/WebPushReports
modules/WebPush/WebPushRss
modules/WebPush/WebPushSegments
modules/WebPush/WebPushSettings
modules/WebPush/WebPushSites
modules/WebPush/WebPushSubscribers
modules/WebPush/WebPushTemplates
modules/WebPush/WebPushWelcome
modules/WhatsappCRM/WhatsappCrmAutomations
modules/WhatsappCRM/WhatsappCrmBulkMessenger
modules/WhatsappCRM/WhatsappCrmCampaigns
modules/WhatsappCRM/WhatsappCrmChatbotBuilder
modules/WhatsappCRM/WhatsappCrmContacts
modules/WhatsappCRM/WhatsappCrmDeveloper
modules/WhatsappCRM/WhatsappCrmInbox
modules/WhatsappCRM/WhatsappCrmOverview
modules/WhatsappCRM/WhatsappCrmPipelines
modules/WhatsappCRM/WhatsappCrmReadiness
modules/WhatsappCRM/WhatsappCrmReports
modules/WhatsappCRM/WhatsappCrmSettings
modules/WhatsappCRM/WhatsappCrmTemplates
modules/WhatsAppUnofficial/WhatsAppUnofficialActivity
modules/WhatsAppUnofficial/WhatsAppUnofficialAutomations
modules/WhatsAppUnofficial/WhatsAppUnofficialBot
modules/WhatsAppUnofficial/WhatsAppUnofficialBulkMessages
modules/WhatsAppUnofficial/WhatsAppUnofficialChatbot
modules/WhatsAppUnofficial/WhatsAppUnofficialContacts
modules/WhatsAppUnofficial/WhatsAppUnofficialDeveloper
modules/WhatsAppUnofficial/WhatsAppUnofficialDevices
modules/WhatsAppUnofficial/WhatsAppUnofficialGateway
modules/WhatsAppUnofficial/WhatsAppUnofficialLiveChat
modules/WhatsAppUnofficial/WhatsAppUnofficialOverview
modules/WhatsAppUnofficial/WhatsAppUnofficialQuickSend
modules/WhatsAppUnofficial/WhatsAppUnofficialSettings
modules/WhatsAppUnofficial/WhatsAppUnofficialSmartReply
modules/WhatsAppUnofficial/WhatsAppUnofficialTemplates
Names-only environment inventory (52 names)

Derived from the prepared .env.example. This is not a complete settings inventory and contains no secret values. Empty names must not be treated as a working .env.

APP_NAME
APP_ENV
APP_KEY
APP_DEBUG
APP_URL
APP_INSTALLED
APP_DEMO
APP_LOCALE
APP_FALLBACK_LOCALE
APP_FAKER_LOCALE
APP_MAINTENANCE_DRIVER
BCRYPT_ROUNDS
LOG_CHANNEL
LOG_STACK
LOG_DEPRECATIONS_CHANNEL
LOG_LEVEL
DB_CONNECTION
DB_HOST
DB_PORT
DB_DATABASE
DB_USERNAME
DB_PASSWORD
SESSION_DRIVER
SESSION_LIFETIME
SESSION_ENCRYPT
SESSION_PATH
SESSION_COOKIE
SESSION_SECURE_COOKIE
SESSION_DOMAIN
BROADCAST_CONNECTION
FILESYSTEM_DISK
QUEUE_CONNECTION
CACHE_STORE
MEMCACHED_HOST
REDIS_CLIENT
REDIS_HOST
REDIS_PASSWORD
REDIS_PORT
MAIL_MAILER
MAIL_SCHEME
MAIL_HOST
MAIL_PORT
MAIL_USERNAME
MAIL_PASSWORD
MAIL_FROM_ADDRESS
MAIL_FROM_NAME
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION
AWS_BUCKET
AWS_USE_PATH_STYLE_ENDPOINT
VITE_APP_NAME
Installation and provider checks
  • Confirm the exact application version and its required runtime.
  • Complete installation in a disposable environment before using production data.
  • Check scheduled jobs, queues, mail and backup/restore behavior.
  • Configure provider credentials and test each enabled external feature.
  • Keep actual test results separate from instructions and source inspection notes.

API setup and app review

For provider app creation, callback URLs, account connections and review submission, use the platform guides. The administrator configures the provider; workspace users connect their own authorized assets.