LedgerWorks: fresh installation
LEDGERWORKS v9 — COMPLETE FRESH INSTALL
Default website: https://ledger-works.co.uk
This is a full application, not an update. It includes invoices, deductions,
CIS, editable invoice summaries, quotes, purchase orders, business logos,
PayPal subscriptions/admin overrides and annual stock/e-commerce add-ons.
It does not submit MTD returns to HMRC.
1. PREPARE A NEW LOCATION
Keep the old site and database backed up. Use a new empty database and a new
webspace folder for this install, for example /ledgerworks. Do not delete the
old database. Existing accounts, documents and receipts are NOT imported.
Server requirements: PHP 8.2+ (8.4 recommended), MySQL/MariaDB, Apache with
.htaccess support, HTTPS, and PHP pdo_mysql, mbstring, dom, gd, fileinfo,
openssl and curl. PDF/email dependencies are included; no Composer command
is needed. This bundle is intended for Apache/IONOS-style PHP hosting.
2. UPLOAD THE FULL SITE
Unzip the download. Upload EVERYTHING INSIDE upload/ into /ledgerworks,
including .htaccess files and all vendor files. Do not upload the enclosing
upload folder as another nested folder.
Point ledger-works.co.uk's webspace destination at /ledgerworks — the folder
containing index.php, setup.php, CONFIGURE.html and web-check.html.
Do not point the domain at /ledgerworks/public: public/ is deliberately
blocked from direct web access in this package.
Enable HTTPS for the new domain before continuing.
3. CREATE YOUR TWO CONFIGURATION FILES
Open https://ledger-works.co.uk/CONFIGURE.html
- Website address: https://ledger-works.co.uk (already filled in).
- Database hostname/name/user/password: copy ALL FOUR from the new database.
A database's description is not its database name. Its password is not
your hosting-account password. Never reuse assumed details from the old DB.
- Mailbox details: use a working mailbox and the provider's SMTP details.
IONOS SMTP is prefilled; change it if the new server/mail provider differs.
- Administrator login email: the account YOU will register and verify.
- Optional invitation code: controls access to new registrations if supplied.
Click Download config.php. Upload it beside index.php in /ledgerworks.
The form shows a long SETUP KEY: save it privately.
Then click Download billing-config.php. Upload this second file into
/ledgerworks/app/billing-config.php. It makes your selected email the admin.
PayPal remains disabled and its credentials are blank.
These files are generated in your browser. Do not share them publicly.
The new encryption key is for this new empty installation only.
4. RUN THE LIVE CHECKER
Open https://ledger-works.co.uk/web-check.html
Enter the DIAGNOSTIC KEY below (not the setup key), then click Run checks.
DIAGNOSTIC KEY: See READ-ME-FIRST.txt in your downloaded ZIP
The URL test compares config.php with the address hosting the checker. It
has no dependency on the old domain. Initial 'Installer lock' pending and
'Email settings' pending are expected before setup/email testing.
Database connection and Database ready for install must PASS before setup.
Download the report if a check fails; it does not include passwords.
- Database login rejected: correct the database username/password pairing.
- Host unreachable: correct the hostname/port or check server DB access.
- Database not empty: do not delete tables; select a new dedicated database.
- 403 on the main page: confirm domain target and .htaccess upload.
- 404: check the file is directly in the selected domain destination.
- A 403 for app/storage/vendor/public in the checker is EXPECTED protection.
5. INSTALL ONCE
Open https://ledger-works.co.uk/setup.php
Enter the SETUP KEY generated in step 3. Click Create database tables.
This creates the core, commercial, billing and stock tables together.
The installer locks itself after success. It refuses a populated database.
If an interrupted attempt created some tables, retain them for diagnosis and
use another empty database; this package never automatically drops tables.
6. REGISTER YOUR ADMINISTRATOR ACCOUNT
Open https://ledger-works.co.uk and create an account using the SAME email
you entered as administrator. Follow the verification email and sign in.
Administration and Stock & e-commerce will now be available.
The fresh installer has already created their tables.
Complete My business, upload a logo and check a sample invoice/PDF, quote,
quote-to-invoice conversion and purchase order. Test password-reset email.
Email settings passing a presence check does not prove delivery works.
7. OPTIONAL SUBSCRIPTIONS / STOCK
You can use the app with billing disabled. To test stock, open Stock &
e-commerce > User stock access / override and allow your verified account
10 products with a reason and your password. Add products and stock receipts.
Use invoice controls for stock-linked lines, Postage and Packaging.
Prices for 10, 20, 30, 40+ products are set by you, in increments of 10.
See STOCK-USER-GUIDE.txt for stock usage and annual tier-change rules.
For PayPal, see PAYPAL-REFERENCE.md. Begin with matching sandbox credentials.
Use THIS webhook address: https://ledger-works.co.uk/paypal-webhook.php
Base plan: GBP 50 annually after the app's one-month trial, no VAT added at
checkout. Main accounts are fully suspended after 20 overdue days, with admin
overrides. Stock is a separate annual add-on with your own package prices.
Keep enabled=false until configured. Enabling it starts access restrictions.
Run a real sandbox checkout and verified webhook test before live billing.
Schedule app/billing-cron.php hourly with your hosting PHP CLI binary; it is
not a public web URL. It reconciles subscriptions and sends base-plan notices.
Existing PayPal renewals on an old installation do not stop merely because
you install a new site. Reconcile them before moving paying users here.
8. REMOVE INSTALLATION TOOLS AFTER TESTING
Delete from the server:
setup.php, public/setup.php, CONFIGURE.html, web-check.php, web-check.html,
assets/check.js, assets/check.css and INSTALL.html.
Remove setup_key from config.php. Keep app_key unchanged forever for this DB.
Keep ALL .htaccess files and storage/installed.lock.
Back up config.php, app/billing-config.php, the database and storage safely.
VALIDATION AND LIMITS
The complete package was assembled from the v8 code. The existing stock API,
invoice and payment simulation checks passed. This fresh configuration form
and installer were separately checked, including all module tables and
refusal of an existing populated DB. Local execution uses PHP 8.4 WebAssembly
and SQLite-adapted test copies; production schemas remain MySQL/InnoDB.
Native hosting, actual database credentials, DNS/HTTPS, SMTP delivery, PayPal
checkout/webhook delivery and cron must be verified on your new server.