Vendra · Quickstart
Vendra Quickstart, as shipped in the download
The QUICKSTART.txt in the download — the same steps your delivery email carries.
VENDRA — QUICKSTART
===================
Point of sale and stock ledger for one shop — self-hosted PHP + MySQL/SQLite.
REQUIREMENTS
------------
- PHP 8.1+ (tested on 8.3) with extensions: pdo, pdo_sqlite (or pdo_mysql), mbstring, openssl, curl, json
- MySQL 5.7+ OR SQLite 3 (SQLite requires no extra setup — the default)
- A web server (Apache with mod_rewrite — the shipped .htaccess does the routing — or Nginx with try_files)
- No Composer packages, no Node, no build step, 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/vendra/).
2. Make sure this directory is writable by PHP (it holds the SQLite file, uploads and backups):
data/
Via cPanel File Manager: right-click -> Permissions -> set to 755 or 775.
(If data/ is missing, Vendra creates it on first run.)
3. Visit https://yourdomain.com/install/ in your browser.
4. Fill in the installer:
- Database: choose MySQL (host, database name, user, password) or SQLite (no setup;
the file is data/vendra.sqlite)
- Store name
- Timezone
- Your name, email and password (the first admin)
5. The installer writes config.php and sends you to the login page.
FIRST STEPS (what to do in the first ten minutes)
-------------------------------------------------
1. Sign in at https://yourdomain.com/login. Roles are cashier, viewer, manager and admin — a cashier lands straight on the till.
2. Products and stock: SKUs, prices (integer cents — no floating-point totals anywhere), opening stock.
3. Suppliers and a first purchase: receiving a purchase moves stock in; a sale at the till moves it out.
4. Open the till at /pos and ring up a test sale; the audit log records who did what.
5. Reports: takings, stock levels, the audit log. Backup: /backup.sqlite streams a copy of the database to a signed-in admin.
The manual (docs/MANUAL.md in this download, or the product page on the store) covers every
screen and every rule above, each with the line of source it comes from.
VPS / SELF-HOSTED
-----------------
Requirements same as above. Apache example:
<VirtualHost *:80>
DocumentRoot /var/www/vendra/app
<Directory /var/www/vendra/app>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Run the web installer as above. Demo data on a FRESH install only (it wipes what is there):
php bin/demo.php
DOCKER (QUICK TEST)
-------------------
The app/ folder ships a Dockerfile (Apache + PHP 8.3, mod_rewrite on):
docker build -t vendra .
docker run --rm -p 8080:80 -v vendra-data:/var/www/html/data vendra
Then visit http://localhost:8080/install/
POST-INSTALL SECURITY CHECKLIST
--------------------------------
[ ] config.php, data/ and the *.sqlite file are blocked by the shipped .htaccess (Apache).
On Nginx, deny /data/, /src/, /bin/, /tests/, /controllers/, /views/ and config.php yourself.
[ ] Open https://yourdomain.com/data/ once — it must answer 403, never a listing.
[ ] Use HTTPS in production.
[ ] Keep PHP updated.
[ ] If you ran bin/demo.php, change or delete the demo accounts before going live.
[ ] Back up data/ (Settings -> Backups writes to data/backups/).
NOTES
-----
* SQLite is the default; MySQL is a configuration choice.
* Optional single sign-on sends a cashier to /pos and everyone else to the dashboard.
* REST API + MCP endpoint for agents: see API.md.
← Back to Vendra · Manual · API · Test run