MiniMart POS Docs

Installation & setup

MiniMart POS is self-hosted software you install on your own server — this page walks through what the server needs, how to upload the build, and how the installer gets your first store running.

Who uses itWhoever manages the server (you, or your host)
Where to find itYour domain, before any store exists
Permission neededServer/hosting access + purchase code

Overview

MiniMart POS ships as a single zip containing a complete Laravel 13 application with the React back-office already built inside it. You don't need to compile anything to get running — upload the zip, point your domain at one folder, and a guided installer in your browser does the rest: it asks for your database details, your company/admin details, and your purchase code, then creates the database tables and seeds the starting data for you. Once the installer finishes, the very first thing you'll do is sign in and complete the first-steps onboarding wizard.

Why it's useful

Because MiniMart is sold as a one-time licensed script (not a hosted service you rent), you're in control of where your data lives — your own server, your own backups, no monthly platform fee to a third party. The trade-off is that you're responsible for the server itself being ready, which is why this page exists: most "it won't install" problems are one of three things — PHP version, file permissions, or the database details — all covered below.

Server requirements

Check these with your host (or your server admin) before you upload anything:

  • PHP 8.3 or newer, with the usual Laravel 13 extensions enabled (OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype, JSON, BCMath, Fileinfo, GD or Imagick).
  • MySQL (or MariaDB) database, version compatible with Laravel 13. You'll need a database name, username and password ready before you start the installer.
  • A web server — Apache or Nginx — able to point its document root at the app's public/ folder (not the project root).
  • Composer is only needed if you plan to modify PHP source and rebuild — the shipped zip already has vendor dependencies in place for a standard upload-and-run install.
  • Node.js and npm are only needed if you intend to rebuild the React SPA from source. The zip already contains a prebuilt public/build, so a normal buyer never needs to run npm install.
  • Cron access (cPanel, Plesk, or a systemd timer) to schedule one recurring command — see Scheduled tasks below.

Step by step

Upload and extract

  1. Download the product zip

    From your purchase confirmation or download link, download the installable package.

  2. Upload it to your server

    Use your host's file manager or FTP/SFTP to upload the zip to your web space, then extract it there.

  3. Point your domain at public/

    Your web server's document root (or the domain/subdomain you're using) must resolve to the app's public folder specifically — not the folder that contains app/, vendor/ and artisan. On shared hosting this is usually done by moving the contents of public/ up one level, or by setting the domain's document root in your hosting control panel.

  4. Make storage writable

    Give the web server write access to the storage/ and bootstrap/cache/ folders (commonly chmod -R 775, owned by the web server user). This is the single most common install snag — if the installer fails with a permissions or "unable to write" error, this is the first thing to check.

Run the installer

  1. Visit your domain

    Open the site in a browser. With no installation detected yet, MiniMart automatically shows the installer instead of the normal app.

  2. Check requirements

    The installer first verifies your PHP version and required extensions, and that storage/ and bootstrap/cache/ are writable, flagging anything that's missing before you continue.

  3. Enter database connection details

    Host, port, database name, username and password for the MySQL database you created. The installer tests the connection before moving on.

  4. Enter your company & admin details

    Your business name and the email/password for the first admin account — this becomes the login you use to sign in afterwards.

  5. Activate your licence

    Enter your purchase code so the installer can verify it against your marketplace purchase. This step confirms you're running a licensed copy.

  6. Let it migrate & seed

    The installer runs all database migrations and seeds the base reference data (default roles, currencies, tax defaults, etc.) automatically — you don't run any artisan commands by hand for a standard install.

  7. Sign in

    Once the installer finishes, you're dropped at the login screen. Sign in with the admin email/password you just set, and you'll land in the required onboarding wizard to finish setting up your store.

Scheduled tasks (cron)

Laravel apps rely on one recurring scheduler command to do time-based work in the background. Add a cron entry (via cPanel's "Cron Jobs" page, Plesk's scheduled tasks, or a systemd timer on a VPS) that runs once a minute:

SettingValue
Commandphp artisan schedule:run
FrequencyEvery minute
Working directoryYour MiniMart install's project root (same folder as artisan)

Without this cron entry, scheduled reports, subscription renewal processing, and expired-token/session cleanup silently never run — the app keeps working day-to-day, but these background jobs quietly pile up undone, which is why it's easy to miss during install and only notice weeks later.

Tips & best practices

  • Take a database backup before every upgrade — the installer/updater runs new migrations against your live data.
  • Use a dedicated database user for MiniMart rather than a shared one, so permissions and backups are easy to reason about.
  • If you're on shared hosting without SSH, ask your host to confirm the PHP version — control panels sometimes default a domain to an older PHP version than the account supports.
  • Keep your purchase code somewhere safe — you'll need it again if you ever have to re-run activation after a server migration.
  • After installing, the very next stop is First steps — company details, currency, your first branch and product.

Notes & warnings

Point the domain at public/, not the project root

If your site shows a directory listing, a blank page, or a "forbidden" error right after upload, the document root is almost always pointed at the wrong folder. It must resolve to public/ specifically.

Rebuilding the frontend is optional

The zip ships with public/build already compiled. Only install Node/npm and run a frontend build if you're modifying the React source yourself — a standard install never needs it.

Storage permissions are the #1 install failure

If the installer errors out partway through with a vague "something went wrong," re-check that storage/ and bootstrap/cache/ are writable by the web server user before anything else.