Packora · Quickstart
Packora Quickstart, as shipped in the download
The QUICKSTART.txt in the download — the same steps your delivery email carries.
PACKORA — QUICKSTART
====================
EPR Packaging Producer Register & Report Builder (US) — self-hosted PHP + MySQL/SQLite.
IMPORTANT: Packora is a records & report-prep aid, not legal advice and not a filing
system. Material categories, deadlines, and fee rates are operator-entered — verify
everything with your PRO (producer responsibility organization) before filing.
REQUIREMENTS
------------
- PHP 8.0+ with extensions: pdo, pdo_sqlite (or pdo_mysql)
- MySQL 5.7+ OR SQLite 3 (SQLite requires no extra setup)
- A web server (Apache with mod_rewrite, or Nginx with try_files)
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/packora/).
2. Make sure this directory is writable by PHP:
data/
Via cPanel File Manager: right-click -> Permissions -> 755 or 775.
3. Visit https://yourdomain.com/install/ in your browser.
4. Fill in the installer:
- Database: choose MySQL (host/name/user/pass) or SQLite (no setup)
- Company name (appears on the printable report summary)
- Default reporting year + timezone
- Admin name, email, and password
The installer seeds an EDITABLE SAMPLE materials list and the OR/CO/CA/ME/MN/WA
state list — align both to your PRO's documents afterwards.
5. The installer writes config.php and sends you to the login page.
6. Sign in, then:
- add SKUs and their packaging components (material + grams per unit), or
- import CSVs (SKUs: sku,name,category · Units: sku,state,year,units), or
- click "Load demo data" on the dashboard to explore a sample producer first.
VPS / SELF-HOSTED (APACHE)
--------------------------
<VirtualHost *:80>
DocumentRoot /var/www/packora/app
<Directory /var/www/packora/app>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
chown -R www-data:www-data /var/www/packora/app/data
NGINX
-----
location / {
try_files $uri /index.php?$query_string;
}
location ~ ^/(config\.php|data/|src/|bin/|tests/|controllers/) { deny all; }
DOCKER (LOCAL TRY-OUT)
----------------------
cd app
docker build -t packora .
docker run -p 8080:80 packora
# open http://localhost:8080/install/
FIRST STEPS AFTER INSTALL
-------------------------
1. Materials -> rename/add until the list matches your PRO's material categories.
2. States & deadlines -> keep the states you report in; enter the deadline dates
your PRO confirms (they ship blank on purpose).
3. SKUs -> add products + packaging components (weight in grams per unit).
4. Units sold -> import sku,state,year,units CSV.
5. Register -> your per-material tonnage per state x year.
6. Report pack -> CSVs + printable summary for whoever files.
TESTS
-----
cd app && php tests/run.php
SUPPORT FILES
-------------
README.md — full feature list, honest limitations
LICENSE.txt — commercial single-purchase license
NEW IN 2.0
----------
* REST API + signed webhooks .... "API & Webhooks" in the sidebar; see API.md
* Packaging-weight CSV import ... Import CSV -> "2 - Import packaging weights"
(sku, material, grams) - the bulk-entry unlock
* Dry-run imports ............... every importer previews first; nothing is
written until you confirm
* Two-factor authentication ..... "Security" in the sidebar
* Deadline alerts ............... Settings -> Email notifications (your own SMTP);
fires once per deadline, on your next page load
* One-click backup .............. Security -> Backups (JSON, plus the raw DB on SQLite)
* Dark mode ..................... the "Theme" toggle at the bottom of the sidebar
* Uptime ping ................... GET /healthz (no login required)
Upgrading from 1.x: overwrite the app files and open the site once. The new tables
and columns are added automatically; your data is untouched. Back up first anyway.
← Back to Packora · Manual · API · Test run