Skip to content
πŸš€ Aikeedo v5.1 is now available!

Your AI SaaS business, ready by this week!

TryΒ demo

Installing Aikeedo on a VPS: Cron and Queue Workers

Published Oct 27, 2026 ⦁ 9 min read

Install Aikeedo on a VPS: server requirements, the web installer, cron, v5.2 queue workers with Supervisor or systemd, SSL and updates.


Aikeedo runs on a lot of hosting, from shared cPanel accounts to cloud servers. For a platform you plan to sell, a VPS is the setup we recommend: you control the PHP version and configuration, you can keep a background worker running, and streaming replies work without a hosting stack getting in the way.

This guide covers an Aikeedo installation on a VPS from start to finish: what the server needs, the web installer, the cron entry, the background queue workers added in v5.2, SSL, and how updates work. It explains each step and links to docs.aikeedo.com for the exact, current commands where they depend on your server.

If you are on cPanel, follow the dedicated cPanel installation guide instead. The steps differ.


Server Requirements

The full list lives on the server requirements page. The short version:

  • PHP 8.2 or later. v5.2 also runs on PHP 8.5 while keeping PHP 8.2 support.
  • MySQL 8.0 or later.
  • A web server: Apache and Nginx are both tested and supported.
  • PHP extensions: the installer checks for bcmath, ctype, curl, dom, fileinfo, gd, intl, json, libxml, mbstring, openssl, pcre, phar, simplexml, tokenizer, xml, xmlwriter and zip. Most PHP packages include most of these; on a fresh Ubuntu or Debian VPS you will usually install a few, such as intl, gd, bcmath, mbstring, curl, xml and zip.
  • PHP settings: file_uploads must be on. Raise post_max_size and upload_max_filesize well above the defaults so users can attach files; the installer suggests 128M or more.
  • Writable directories: the installer checks that the application root, var/ and the public directory are writable by the web server.
  • Cron: a one-minute cron entry, covered below.

For sizing, the docs suggest at least 2 GB of RAM and 2 vCPUs. The Aikeedo demo runs on a VPS with 4 GB and 2 vCPUs. Start small and resize as you grow; the AI work itself happens at your providers, so the server mostly serves pages, streams replies and runs jobs.

One hosting note from the docs: text streaming does not work on Cloudways, because of how its server stack is set up. Choose another host if streaming matters to you.


Upload, Point the Domain and Run the Web Installer

The installation guide has the details. In outline:

  1. Create a MySQL database and a user for it, and note the host, port, database name, username and password.
  2. Upload aikeedo-server-files.zip from your Aikeedo package to the server, outside any web-accessible folder, and extract it, for example into /var/www/yourdomain.com.
  3. Point your domain's document root at the public directory inside the extracted files, for example /var/www/yourdomain.com/public. This is the step people most often get wrong. The rest of the application must not be web-accessible, and the public directory has to stay where it is.
  4. Open your domain in a browser. You should be redirected to /install. A 403 error here almost always means the document root is not pointing at public.

The web installer then walks you through these steps:

  • Requirements: a check of the PHP version, PHP settings, extensions and writable directories, with anything missing flagged.
  • License: enter the purchase code you received when you bought Aikeedo.
  • Database: enter the connection details from step 1.
  • Migration: if the database already has Aikeedo data, you can migrate it or start fresh.
  • Account: create the administrator account.
  • Starter content: choose which ready-made LLM servers, AI models and templates to import. You can import any of it later from Settings β†’ Starter content.

When it finishes, the installer switches the app to production mode with debugging off, and you can sign in to the dashboard.


Set Up the Cron Job

Aikeedo needs a cron task that runs cron.php every minute. It renews subscription credits, keeps connectors' tool lists fresh, runs the scheduled tasks you can see in the admin, and, if you have no background worker yet, works through the job queue.

Run it as the same user as your web server, usually www-data on Ubuntu and Debian. If cron runs as root, it can create cache files the web server cannot change later, which shows up as cache clearing failing on the admin Status page.

Edit that user's crontab:

sudo crontab -u www-data -e

And add one line, with your PHP binary and your application root:

* * * * * /usr/bin/php /var/www/yourdomain.com/cron.php

Use the full path to the PHP binary your site runs on. If the server has more than one PHP version, plain php might not be it. The initial setup guide covers finding the web server user and fixing ownership if something went wrong.


Run a Queue Worker (New in v5.2)

v5.2 adds a background job queue. Work that should not hold up a page, such as chat imports, invoices, purchase confirmation emails and connector refreshes, moves off the web request and into jobs, and the admin gets a view of all of it under Settings β†’ Queue: an overview of waiting, running and failed jobs, a Workers list, a searchable Jobs page where you can retry or delete failed jobs, and the scheduled tasks that cron runs.

By default the queue uses the Database adapter, which works on any server, including shared hosting. Plugins can add other adapters, such as Redis, Amazon SQS, Azure and Cloudflare, under Settings β†’ Queue adapters.

Without a worker, jobs run each time cron runs, so they may wait up to a minute. On a VPS you can do better: keep a worker process running so each job starts as soon as it is added. The worker is a console command:

php bin/console app:queue:work --time-limit=3600

You do not run it by hand. A process manager such as Supervisor or systemd keeps it running, starts it on boot, and restarts it if it stops. You only need one of them. As with cron, run the worker as your web server user.

The Run a background worker section of the Queue page prints ready-made configurations with your server's PHP path, application root and web server user already filled in, so copy them from there. For reference, a Supervisor configuration saved as /etc/supervisor/conf.d/aikeedo-worker.conf looks like this:

[program:aikeedo-worker]
command=/usr/bin/php /var/www/yourdomain.com/bin/console app:queue:work --time-limit=3600
directory=/var/www/yourdomain.com
user=www-data
numprocs=1
autostart=true
autorestart=true
stopwaitsecs=660
redirect_stderr=true
stdout_logfile=/var/www/yourdomain.com/var/log/worker.log

Then load it and check it:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status aikeedo-worker

If you prefer systemd, which is built into most distributions, the Queue page gives you a unit file for /etc/systemd/system/aikeedo-worker.service, which you start with:

sudo systemctl daemon-reload
sudo systemctl enable --now aikeedo-worker

Within a few seconds the worker appears under Workers on the Queue page. Workers restart on their own after an update or a settings change, so there is nothing to do afterwards. Keep the cron entry too: it still runs the scheduled tasks.


Enable SSL

Payments, single sign-on and several other features need HTTPS. On a VPS the usual route is a free certificate from Let's Encrypt, installed with Certbot for Apache or Nginx; your VPS provider's documentation will have the commands for your distribution.

Once the certificate is installed and your site loads over HTTPS, finish the job inside Aikeedo:

  1. Open Settings β†’ General.
  2. Set Site Domain to your domain only, with no https:// and no path.
  3. Switch Is SSL Enabled? on.

Only turn that toggle on once the certificate actually works. The initial setup guide covers both settings, and then the admin dashboard's Getting Started section walks you through the rest: email, payments, AI providers and branding.


Updating Aikeedo

Updates install from the admin panel; there is no need to re-upload files over SFTP. The update guide is the reference, and the process is:

  1. Back up your database and files first, including the .env file. Since v5.1, .env holds APP_ENCRYPTION_KEY, which encrypts stored connector credentials; lose it and those credentials must be entered again.
  2. Read the changelog for the version you are moving to, especially for major versions.
  3. Download the new package and find aikeedo-server-files.zip in it.
  4. Upload it on the admin Update page and let the update finish without closing the browser.
  5. Check the version in the admin and test sign-in, chat and payments.

If you can, try updates on a staging copy first. Queue workers pick up the new version on their own. In v5.2 the update finishes in a request of its own, and cron waits until an unfinished update is complete before running, so scheduled work never runs against half-migrated tables.


A Quick Post-Install Checklist

  • Domain points at public, and /install no longer loads.
  • Cron runs every minute as the web server user.
  • A worker shows up under Settings β†’ Queue β†’ Workers (VPS only).
  • Site Domain is set and Is SSL Enabled? is on.
  • Mail is configured, so sign-up and receipts are delivered.
  • At least one AI provider is connected and models are enabled under Settings β†’ Models.
  • A payment gateway is set up and a test purchase works.
  • Backups run on a schedule, including .env.

From here, the admin panel is where you set up plans, prices and models. If you have not picked a license yet, pricing has the options.


FAQ

Can I install Aikeedo on shared hosting instead of a VPS?

Most shared hosting works, and the default Database queue adapter runs on any server. Without a long-running worker, jobs run with cron instead, so they can wait up to a minute. For a commercial platform we recommend a VPS. cPanel users should follow the cPanel guide.

Do I need a queue worker, or is cron enough?

Cron alone works: it runs waiting jobs every minute. A worker under Supervisor or systemd starts each job as soon as it is added, which feels faster to users. Either way, keep the cron entry, because it also runs scheduled tasks such as credit renewals.

Which PHP version should I use?

PHP 8.2 or later. Version 5.2 runs on PHP 8.5 as well. Make sure cron and the worker use the same PHP binary as your website; the Queue page's configurations use the website's PHP path for that reason.

Can I use Redis or Amazon SQS for the queue?

Yes, through plugins. Out of the box the queue uses your MySQL database, which is fine for most installs. Queue adapter plugins add Redis, Amazon SQS, Azure and Cloudflare, and you switch adapters under Settings β†’ Queue adapters and on the Queue page.

Launch your SaaS

Don't waste time on development, get self-hosted SaaS software with a small investment for your business.