Ownware
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 / admin123)


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


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

Affiliate program
Recommend tools people own — earn 35% on every sale. 90-day tracking, instant delivery, payouts by Lemon Squeezy.
Become an affiliate →