Server setup

Shared hosting with cPanel, or your own VPS — both end at the same installer.

Shared hosting (cPanel, Plesk and friends)

This is the no-command-line path; the platform is built to live happily here.

  1. Upload quickmunch.zip with the File Manager into the folder your domain serves (usually public_html) and use Extract there. It ships ready to upload as a single file — far faster than sending thousands of files over FTP.
  2. Point the document root at public/ if your panel allows editing it (cPanel: Domains → Document Root). If it does not, skip this — the bundled rules route visitors into public/ automatically.
  3. Check the PHP version (Select PHP Version / MultiPHP): 8.2 or newer, with the extensions from System requirements ticked.
  4. Create the database and user (MySQL Databases), and add the user to the database with all privileges — the step people miss.
  5. Open your domain and follow the installer.
  6. Add the cron entry (Cron Jobs), every five minutes:
    */5 * * * * php /home/YOURUSER/public_html/artisan schedule:run >> /dev/null 2>&1
    Some hosts need the full binary path, e.g. /usr/local/bin/php82.

VPS — Apache

On a server you control, serve the public/ folder directly:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/quickmunch/public

    <Directory /var/www/quickmunch/public>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Enable mod_rewrite, give the web server write access, then browse to the domain and install:

sudo a2enmod rewrite && sudo systemctl reload apache2
sudo chown -R www-data:www-data /var/www/quickmunch

VPS — Nginx + PHP-FPM

server {
    listen 80;
    server_name example.com;
    root /var/www/quickmunch/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    location ~ /\.(?!well-known).* { deny all; }
}

Nginx has no .htaccess, so the try_files line above is what sends pretty URLs to the application — without it every link 404s.

Either way, afterwards

  • HTTPS. Put a certificate on the domain (Let's Encrypt is free on most panels and on any VPS via certbot). Online card payments, push notifications and the installable customer app require it.
  • Cron. The same five-minute artisan schedule:run entry as above — see Scheduled tasks for what it runs and how to verify it.
  • Writable paths. storage/, bootstrap/cache/, public/uploads/ and the application root (for .env) must be writable by the web server user.