Home›Ledgira›Quickstart
Ledgira · Quickstart

Ledgira Quickstart, as shipped in the download

The QUICKSTART.txt in the download — the same steps your delivery email carries.

LEDGIRA — QUICKSTART
====================

REQUIREMENTS
------------
  - PHP 8.0+ with extensions: pdo, pdo_sqlite (or pdo_mysql), fileinfo, curl
  - MySQL 5.7+ OR SQLite 3 (SQLite requires no extra setup)
  - An API key for OpenAI, Anthropic, or Ollama (set after install, or during)
  - 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/ledgira/).

2. Make sure these directories are writable by PHP:
     data/
     data/uploads/

   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)
     - Company name and base currency
     - LLM provider and API key (or leave blank to configure later in Settings)
     - Admin email + password

5. The installer writes config.php and redirects you to the login page.

6. Log in and go to Settings to verify or update your LLM provider and API key.

7. Upload a statement and click Extract to test.


VPS / SELF-HOSTED
-----------------
Requirements same as above. Apache example:

  <VirtualHost *:80>
    DocumentRoot /var/www/ledgira/app
    <Directory /var/www/ledgira/app>
      AllowOverride All
      Require all granted
    </Directory>
  </VirtualHost>

Run the web installer as above, or use the CLI seeder:

  php bin/demo.php    # loads demo data (login: admin@ledgira.app with the one-time password it prints)


DOCKER (QUICK TEST)
-------------------
  docker run --rm -p 8080:8080 \
    -v "$(pwd):/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/


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


HOW RECONCILIATION WORKS
------------------------
  * Credits are stored as positive cents, debits as negative cents.
  * Ledgira checks: opening balance + sum(transactions) = closing balance.
  * Bank accounts: deposits are credits (+), withdrawals/purchases/fees are debits (-).
  * Credit cards: charges raise the balance owed (credits, +), payments/refunds lower
    it (debits, -). The same identity reconciles both.
  * If the totals don't match, the statement is flagged "discrepant" with the exact delta.
  * Each row's running balance (if present) is checked for consistency and flagged if off.


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 server block in the manual ("On Nginx: keep data/ private", https://ownware.io/p/ledgira/manual);
    it opens the installer and keeps data/ private.
  * One-line install for technical owners:
    curl -fsSL https://ownware.io/install.sh | sh -s -- ledgira <your license key>

NOTES
-----
  * Extraction accuracy depends on the model you choose. GPT-4o and
    Claude 3 Sonnet/Opus give the best results on dense statements.
  * Images (PNG, JPEG, WebP) work reliably across all providers.
  * PDFs work best with Anthropic (native document support). Other
    providers treat PDFs as best-effort.
  * The detail page lets you correct any field before exporting.
  * Export formats: CSV (spreadsheet-ready), QIF (Quicken/accounting import), JSON.
  * No API calls are ever made without your explicit click on "Extract".

← Back to Ledgira · Manual · API · Test run