Install on Shared Hosting

Threadline installs through a browser wizard — no command line needed. Make sure you've checked System Requirements first. This is the default mode (SERVER=shared) and needs only PHP and MySQL.

Steps

  1. Upload and extract the zip. Upload the Threadline ZIP you downloaded, as it is, to your domain's document root and extract it there (e.g. public_html/), or a subfolder if you're installing under a subdirectory — see Subdirectory installs below. Visitors must only ever reach the public/ folder inside it. There are two ways, and either is fine:
    • Your host lets you choose the website's folder (often possible for a subdomain or an addon domain, for example Hostinger's Custom folder for subdomain or cPanel's Document Root field): choose the public folder inside what you extracted.
    • It does not (usually the main domain, always public_html): nothing to do. The .htaccess file at the top of the ZIP passes every request on to public/ and keeps the rest of the folder, .env included, closed to the web. If the folder already had an .htaccess when you extracted, keep the lines your host added to it (such as an AddHandler line choosing the PHP version) at the top of the new one.
    A 403 Forbidden page on your domain means the extracted files, or that .htaccess, are not in the website's folder.
  2. Create a MySQL database in your host's control panel (or let the installer create it — see step 4 below) and note the database name, username, and password.
  3. Visit your domain in a browser. With nothing installed yet, Threadline automatically shows the installer.
  4. Step 1 — Requirements check. The installer checks your PHP version and required extensions automatically and shows a pass/fail list. Fix anything marked "Missing" in your host's PHP settings, then reload the page. If proc_open() function is marked, your host has switched that PHP function off. Threadline needs it to run its scheduled tasks. Ask your host to enable it, or in cPanel remove it from the disable_functions list under Software → MultiPHP INI Editor.
  5. Step 2 — Application settings. Enter your site's final URL exactly as customers and Meta/Telegram will reach it (including https://), and confirm your timezone. A random encryption key is generated for you automatically.

    Get the URL right here — it's baked into the WhatsApp/Telegram webhook URLs you'll register later. If you change domains afterward, update it in .env and re-register your webhooks.

  6. Step 3 — Database. Enter the host, port, database name, username, and password from step 2. Threadline will create the database if it doesn't already exist and the credentials have permission to do so.
  7. Step 4 — Owner account. Create your first login — name, email, and password. This is the Owner account: it runs the whole installation, including platform settings and (if you sell Threadline as a SaaS) plans, payment gateways, and customer Accounts — see Payment Gateway and Subscription Plans.
  8. Finish. The installer creates the database tables, loads the default navbar, footer, and site settings (all editable later — see Site Settings), and shows you a cron command to add — see Cron Setup, which is required before messages will actually send. Then log in.

Running the installer drops any existing tables in the database you give it. Point it at an empty database, never one that holds data you want to keep.

How Threadline knows it's installed

When the installer finishes it creates an empty file at storage/app/public/installed. While that file exists, the installer is locked and visitors see your site; if it's missing, Threadline shows the installer again.

To re-run the installer on purpose, delete that file and visit your domain. Remember the installer starts from a clean database — back up first if you need anything in it. If the installer appears unexpectedly on a live site, the file was most likely lost when the storage/ folder was replaced during an upload or migration: restore the file (it can be empty) rather than running the installer again.

Subdirectory installs

You can install Threadline at example.com/bot instead of the domain root. Two things to get right:

After you install