Fleetora · Quickstart
Fleetora Quickstart, as shipped in the download
The QUICKSTART.txt in the download — the same steps your delivery email carries.
FLEETORA — QUICKSTART
=====================
Vehicle & fleet register. Self-hosted PHP 8 + MySQL/MariaDB or SQLite.
No Composer, no build step, no external services.
1 · WHAT YOU NEED
-----------------
* PHP 8.0 or newer with PDO (pdo_mysql or pdo_sqlite)
* MySQL/MariaDB, OR nothing at all if you use SQLite
* Any web server that serves PHP
2 · INSTALL (2 minutes)
-----------------------
a. Upload the "app" folder to your server.
b. Point a domain or subdomain at it.
c. Open it in a browser. The installer runs automatically.
d. Choose SQLite (zero config) or enter your MySQL details.
e. Create your admin account. Done.
The installer writes config.php. If you would rather write it yourself,
copy config.sample.php to config.php and fill it in.
3 · TAKE A LOOK FIRST
---------------------
With PHP on your own machine:
cd app
php -S localhost:8080
Then open http://localhost:8080 and follow the installer.
Or with Docker, from inside the app folder:
docker compose -f deploy/compose.yml up -d
Load the sample fleet from Settings -> Demo data. It contains a vehicle in
every state — expired paperwork, a service due by distance, one that cannot
be scheduled yet because the vehicle has no odometer reading — so you can see
what the register is actually for.
(demo login: admin@fleetora.app with the one-time password it prints — change it)
4 · WEB SERVER SNIPPETS
-----------------------
Apache — the shipped .htaccess handles routing. Just:
<VirtualHost *:80>
ServerName fleet.example.com
DocumentRoot /var/www/fleetora/app
<Directory /var/www/fleetora/app>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
nginx:
server {
listen 80;
server_name fleet.example.com;
root /var/www/fleetora/app;
index index.php;
location ~ ^/(src|data|bin|tests|controllers|deploy|cron)/ { deny all; }
location ~ ^/views/.+\.php$ { deny all; }
location ~ (^|/)(config\.php|\.demo-mode)$|\.sqlite$ { deny all; }
location = /install/ { rewrite ^ /install/index.php last; }
location / { try_files $uri /index.php?$query_string; }
location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
}
5 · FIRST FIVE MINUTES IN THE APP
---------------------------------
1. Settings -> Document types. Rename them to what YOUR operation keeps.
Fleetora ships neutral names on purpose: vehicle compliance is called
something different in every country and Fleetora does not pretend to
know yours.
2. Add a vehicle, or import a spreadsheet (Vehicles -> Import CSV — it runs
a dry run first and writes nothing until you confirm).
3. Add a document with its expiry. It appears on the home screen, ranked.
4. Schedule a service. Set an interval in days, in distance, or both.
5. Log an odometer reading. Distance-based services can only be scheduled
once a reading exists — until then they honestly say "unknown".
6. Set your warning windows in Settings. What counts as "due soon" is your
judgment, not ours.
6 · GOING FURTHER
-----------------
* API.md — REST API, signed webhooks, and the MCP endpoint for assistants.
* Settings -> API & Webhooks — mint a key. Choose "Read only" for anything
that should answer questions but never change anything.
* Settings -> Calendar feed — subscribe any calendar to the deadline list.
The link is a secret; treat it like a password and revoke it when done.
* Settings -> Outbound mail — driver notices, through your own SMTP, off
until you switch them on.
* Backup & restore — JSON export always; a byte-exact .sqlite download on
SQLite installs. Restore previews the diff before it commits.
7 · HONEST LIMITS
-----------------
* Fleetora records what you enter. It reads no telematics box and queries no
licensing authority, insurer or manufacturer.
* It is not legal or compliance advice. The document types you track and the
intervals you set are yours to decide.
* A service tracked by distance has no due DATE until a reading exists.
Fleetora says so rather than estimating one.
* Distances are never converted between miles and kilometers. Each vehicle
keeps the unit its own dashboard shows.
8 · SUPPORT
-----------
README.md covers the design decisions. Run `php tests/run.php` to prove the
install against its own suite.
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 NGINX lines above; they open the installer and keep data/ private.
* One-line install for technical owners:
curl -fsSL https://ownware.io/install.sh | sh -s -- fleetora <your license key>
← Back to Fleetora · Manual · API · Test run