Home›Supplia›Quickstart
Supplia · Quickstart

Supplia Quickstart, as shipped in the download

The QUICKSTART.txt in the download — the same steps your delivery email carries.

SUPPLIA — QUICKSTART
====================

Self-hosted supplier register & contract-renewal tracker — PHP + MySQL/SQLite.
Tracks your vendors and the contracts you hold with them, and reminds you before
renewals and end dates. It does NOT process payments (payment terms are text), store
uploaded files (a document reference is a link/label only), sign anything, or give
legal advice.


REQUIREMENTS
------------
  - PHP 8.1+ with extensions: pdo, pdo_sqlite (or pdo_mysql)
  - MySQL 5.7+ / MariaDB 10+ OR SQLite 3 (SQLite requires no extra setup)
  - A web server (Apache with mod_rewrite, or Nginx with try_files)
  - No Composer packages, no API keys, no external services.


SHARED HOSTING / CPANEL (RECOMMENDED FOR MOST BUYERS)
------------------------------------------------------
1. Upload the contents of the `app/` folder to your web root (e.g. public_html/)
   or a subdirectory (e.g. public_html/supplia/).

2. Make sure this directory is writable by PHP:
     data/

   Via cPanel File Manager: right-click -> Permissions -> set to 755 or 775.

3. Visit https://yourdomain.com/install/ in your browser.

4. Fill in the installer:
     - Database: choose MySQL (fill in host/name/user/pass) or SQLite (no setup)
     - Business name, value currency, timezone
     - Your admin name, email + password

5. The installer writes config.php and redirects you to the login page.

6. Log in, then:
     - Add a vendor (contact, category, status)
     - Record the contracts you hold with them (title, term dates, renewal date,
       value, payment terms, auto-renew, and a document reference/link)


TRY IT WITH DEMO DATA FIRST
---------------------------
  - On the dashboard, click "Load demo data" for eight vendors across the category
    set with a realistic mix of contract states and upcoming renewals, then "Reset
    all data" when done.
  - Or from the command line:  php bin/demo.php
      (login: admin@supplia.app with the one-time password it prints)


THE ALERT WINDOWS (SETTINGS)
----------------------------
  - Renewal-date and end-date badges escalate Notice -> Warning -> Critical as the
    date approaches. Defaults: Notice 60 days, Warning 30 days, Critical 7 days.
  - Change them under Settings. Notice >= Warning >= Critical is enforced.
  - "Today" for every renewal / days-until calculation follows your timezone setting.


CONTRACT STATUS
---------------
  - You set a contract to Active or Closed. Supplia DERIVES the effective status
    (Active / Expiring / Expired / Closed) from the end date against today, so
    "Expiring" and "Expired" are always accurate and never go stale.


VPS / SELF-HOSTED (APACHE)
--------------------------
  <VirtualHost *:80>
    DocumentRoot /var/www/supplia/app
    <Directory /var/www/supplia/app>
      AllowOverride All
      Require all granted
    </Directory>
  </VirtualHost>


DOCKER (QUICK TEST)
-------------------
  docker run --rm -p 8080:8080 \
    -v "$(pwd)/app:/var/www/html" \
    -w /var/www/html \
    php:8.3-cli \
    php -S 0.0.0.0:8080 router.php

  Then visit http://localhost:8080/install/


REPORTS & EXPORTS
-----------------
  - Open a vendor -> "Summary PDF" for its full contract list (a genuine,
    dependency-free PDF).
  - "Export contracts CSV" (all vendors from the Vendors page, or one vendor from
    its page). Safe to open in Excel / Google Sheets (formula-injection hardened)
    and keeps values as real numbers.


POST-INSTALL SECURITY CHECKLIST
--------------------------------
  [ ] config.php is protected (the .htaccess does this automatically)
  [ ] data/ is not web-accessible (.htaccess blocks it automatically)
  [ ] Use HTTPS in production
  [ ] Keep PHP updated


LOOKING AFTER IT (from 4.0)
---------------------------
  * Updates: open Updates in the menu, save your license key once, press Check for updates.
    Reaching 4.0 from 3.x is the last update by hand: replace the files; config.php and data/ stay.
  * Sample data: the installer offers to start with a sample; remove it later with one click.
  * Backups: "Back up once a day by itself" is on by default (/restore); add an S3-compatible bucket there for
    a copy somewhere else. The Health page (/health) says whether all of this is working.
  * On Nginx: use the server block in the manual ("On Nginx: keep data/ private", https://ownware.io/p/supplia/manual);
    it opens the installer and keeps data/ private.
  * One-line install for technical owners:
    curl -fsSL https://ownware.io/install.sh | sh -s -- supplia <your license key>

NOTES
-----
  * Contract values are stored as integer cents; no floating-point rounding touches
    a total, and the by-category rollup is summed in PHP (never a SQL SUM).
  * Date math is done in PHP from your timezone's "today", anchored at UTC midnight,
    so "days until renewal / expiry" is exact and daylight-saving-safe.
  * Supplia records suppliers and contracts only. It never processes payments, stores
    contract files, signs documents, or provides legal advice.

← Back to Supplia · Manual · API · Test run