Skip to main content
Each answer below comes from how MagicPost behaves, and links to the page with the full steps.

Hosting and setup

PHP 8.3 or newer with the extensions the installer lists, a MySQL database and a web server that rewrites requests to index.php (mod_rewrite on Apache). proc_open is optional and only needed for video processing. See Requirements.
Yes. In its default mode MagicPost needs one cron job and no long-running process. The scheduler sends posts itself every minute. See Cron and queue.
The last installer page shows them: email admin@example.com and password admin12345. Change them straight after your first sign-in. See Installation problems.
In storage/logs/laravel.log, unless you changed LOG_CHANNEL or LOG_STACK in .env. Failed jobs also appear in the failed_jobs table.
No. It holds only server-level values such as the database and the cache. Channel keys, AI keys, gateways and SMTP are saved in the admin panel. A few admin screens write to .env for you, so keep it writable. See Environment variables.
Change Website URL in Admin → Backend Settings → Global Settings, which also updates APP_URL. Then re-register the new redirect URIs in every network’s developer console and the new webhook addresses in every payment gateway, because both are built from the site address. The license check reports the site’s address, so review License activation too.

Publishing

The scheduler looks for due posts every minute, so a post goes out within about a minute of its time when cron runs every minute. If your host only allows cron every 5 minutes, it can be up to 5 minutes late. See Scheduler and queue problems.
No. Under Admin → Publishing → Settings → Sending, The scheduler is the default way posts are sent. Choose A queue worker only if you can keep queue:work running yourself. The cron job is needed either way.
Three tries by default, with waits of 2 and 10 minutes between them. An admin can change the number of tries from 1 to 10. Errors that retrying cannot fix, such as rejected content, are not retried. See Failed posts.
The post waits on hold without using an attempt. It goes out when the channel is back. After Wait for a channel for up to hours, 24 by default, it is closed: skipped if the owner paused the channel, failed in the other cases.
Yes. Posts that came due while cron was stopped are sent when it runs again, a batch a minute. Pause or remove any you no longer want before you restart it.
MagicPost sent the post but never heard back, and the network cannot say whether it exists. Open the channel, then choose It went out or Send it again. See Unconfirmed posts.
The composer answers “That time has already passed. Pick a time in the future.” Pick a later time.
Analytics need the plan feature, a connected channel and Collect analytics switched on under Admin → Publishing → Settings → Defaults and housekeeping. MagicPost reads figures back from the networks once an hour, so a new post can take up to an hour to show numbers. See Analytics.

Channels

The network rejected or revoked the authorisation. Open the channel, select Check, and if it still fails, Reconnect with the same account. See Channel connection problems.
No. It is always {your site}/publishing/{network}/callback, so the same address works for every language. Admin → Publishing → Platforms shows the exact value to copy.
Until Meta approves the app in App Review, only people with a role on the app, or invited testers for Threads, can connect. See Channel connection problems.
The channel was connected before the comment permission was added to the app, so MagicPost switches the option off for it. Reconnect the channel to grant the permission. For a Telegram channel, the option appears once the bot is an admin of the channel’s discussion group. See Telegram channels.
Telegram does not tell a bot how often a post was viewed, forwarded or clicked. MagicPost shows reactions, replies, comments and member counts instead, and marks the rest Not reported by Telegram. See Telegram channels.
Anything still waiting for it is skipped. What it already published, and its analytics, stays and comes back if you reconnect it.

Media and files

Media library files are in public/media on your server. Logos, blog covers and profile photos are in public/uploads. Back both up. See File storage.
Not in this version. The AWS_* keys in .env feed an s3 disk, but no MagicPost feature writes to it. Default Storage lists only Local server (this machine) unless a storage plugin is installed. See File storage.
The smaller of the admin’s limits (25 MB for images and 2048 MB for videos by default), your plan’s media storage, and each network’s own limit. PHP’s upload limit does not apply to the media library, because large files are sent in pieces.
ffmpeg is missing or cannot run on the server. The video still publishes, but its length is not checked first. See Video processing.
No. The watermark is placed on images as they go out. Videos are sent without it, and images in the library stay as they are.

Accounts, email and security

On a site with APP_ENV=production, a password must have at least 12 characters, upper and lower case letters, a number and a symbol, and must not appear in a known data breach.
With MAIL_MAILER=log and no host saved under Admin → Backend Settings → SMTP Settings, emails are only written to the log. System health shows this on the Email line. See Email and SMTP.
Not in this version. The settings are saved, but no form checks them. See Google reCAPTCHA.
Yes, to 60 requests a minute for each API key. See REST API.
The application runs in UTC. Each person sees and schedules in the time zone they choose under Time and date, and the site default is set under Admin → Publishing → Settings → Default timezone. See Scheduling.

Billing

They appear when Enable SaaS Business is on under Admin → General Settings → Plugins → SaaS Business. See SaaS overview.
Check Admin → Finance → Orders. If there is no order, the gateway’s webhook did not arrive. See Billing problems.
That is expected until an admin sets the order to Completed. Open the order, review the proof of payment, and update its status. See Orders and transactions.