Warrantora · Quickstart
Warrantora Quickstart, as shipped in the download
The QUICKSTART.txt in the download — the same steps your delivery email carries.
WARRANTORA — QUICKSTART
=======================
Warranty and RMA register — self-hosted PHP + MySQL/SQLite.
REQUIREMENTS
------------
* PHP 8.1 or later with PDO (pdo_sqlite or pdo_mysql).
* MySQL 5.7+ or SQLite 3 (SQLite needs nothing but a writable folder).
* Apache with mod_rewrite, or Nginx with a try_files rule. No Composer, no Node, no build.
INSTALL
-------
1. Upload the contents of app/ to your web root (or a subfolder).
2. Make data/ writable by the web server: chmod 775 data
3. Open https://your-site/install/ and complete the form.
4. Log in with the administrator account you just created.
5. DELETE or password-protect the install/ folder.
FIRST FIFTEEN MINUTES
---------------------
1. Settings — your business name (it prints on every certificate), your currency, your timezone,
and how many days ahead counts as "expiring soon".
2. Warranty terms — add the cover you actually offer. The coverage and exclusions text you write
here is printed on the customer's certificate word for word, so write it properly once.
3. Register — add an item, or import a CSV you already keep. Product and sale date are required;
everything else is optional.
4. The dashboard now tells you what lapses in 30, 60 and 90 days.
5. When something comes back: Claims -> Raise a claim. Record what you found, decide it, and
authorise a return if you need the unit back.
THE THING TO UNDERSTAND
-----------------------
Expiry is CALCULATED from the sale date and the term, every time it is displayed. It is never
stored. So:
* correcting a sale date immediately corrects the expiry;
* editing a term re-dates every item registered under it (the terms page tells you how many);
* an item with no sale date has no expiry, and says so rather than guessing.
A claim's "in warranty" answer is decided on the day the claim is RAISED and then frozen, so a
slow assessment can never run the clock out on a customer.
A decision — assess, approve, reject — will not save without a written reason. That is on purpose.
BACKUPS
-------
Backup & restore. Download a JSON or SQLite backup any time, or point a cron at the token-guarded
URL. Restore always shows a dry-run diff first.
NOTE: the backup covers the DATABASE. Uploaded evidence files live in data/uploads — back that
folder up too.
API AND AI ASSISTANTS
---------------------
Settings -> API & webhooks mints a key. Choose "Read only" for an assistant that should answer
questions but never change anything. See API.md for the connect recipe.
SUPPORT
-------
README.md and API.md carry the full picture, including an honest list of what this does not do.