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.
- Upload
quickmunch.zipwith the File Manager into the folder your domain serves (usuallypublic_html) and use Extract there. It ships ready to upload as a single file — far faster than sending thousands of files over FTP. - 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 intopublic/automatically. - Check the PHP version (Select PHP Version / MultiPHP): 8.2 or newer, with the extensions from System requirements ticked.
- Create the database and user (MySQL Databases), and add the user to the database with all privileges — the step people miss.
- Open your domain and follow the installer.
- Add the cron entry (Cron Jobs), every five minutes:
Some hosts need the full binary path, e.g.*/5 * * * * php /home/YOURUSER/public_html/artisan schedule:run >> /dev/null 2>&1/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:runentry 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.