Enter password

Sign in to your Equipment on Loan portal.

Dashboard

Search customers, check coffee equipment availability, and see what needs attention.

Customers

Equipment

Agreements

Agreement Expiry

System Status

Connection and version checks.

Connection: checking...

App version: checking...

Branding

Manage logos, company details, and document headers and footers.

Branding settings ready.

Application Header

PDF Header

PDF Footer

Backups

Create database backups and full restore archives.

Automatic backup: ready

Recovery backups: ready

App versionChecking...
Database backupChecking...
Full recovery backupChecking...
Google DriveChecking...
Disk usageChecking...
Last checkedChecking...

Full recovery backup creates a restore archive with the app files, settings, database, users, uploaded PDFs/signatures, templates, assets, and vendor files needed to rebuild the system on a fresh server.

Backup storage

See which backup folders are using server space before running cleanup.

Backup area What it contains Files Size Latest file
Checking backup storage...

Use cleanup to prune old server backups using the app's safe keep rules. Keep the latest full recovery backup and one known-good older full backup before deleting anything manually.

Backup files

Select old backup files to remove from the server.

Backup area File Version Date Size Status
Click Refresh files to list backups.

Automatic backup status: checking...

Google Drive: checking...

Restore

Restore database data, or follow the guide below for a full server recovery.

Warning: Restoring a backup will replace the current system data. Only continue if you are restoring to a test server or intentionally rolling back production.

Use the import button for downloaded database JSON backups only. To restore a downloaded FULL-*.tar.gz file, use the Disaster Recovery guide below.

Disaster Recovery Guide

Simple steps to rebuild the app if the server fails.

What the full recovery backup contains

  • App files: app.js, server.mjs, index.html, styles.css, package.json, package-lock.json.
  • Assets, vendor files, scripts, and all files inside data/ needed by the live app.
  • Primary business data: data/eol-database.json.
  • Users, sessions, login audit, branding settings and logos, email settings, automatic backup status, uploaded PDFs/signatures, templates, customers, agreements, gear, installs, swaps, returns, and movements where stored in data/.

Fresh server restore steps

  1. Create a new DigitalOcean Ubuntu droplet.
  2. Install Node.js.
  3. Upload the latest FULL recovery backup file.
  4. Extract the backup into the app folder.
  5. Confirm app.js, server.mjs, package.json, and data/eol-database.json exist.
  6. Run npm install or npm ci.
  7. Start the app using node server.mjs or npm start.
  8. Open the server IP in a browser and confirm the login page loads.
  9. Log in and check customers, agreements, coffee gear, install records, swap/return records, reports, users, branding settings, email settings, and backup settings.
  10. Create a new database backup and a new full recovery backup to prove the restored system works.

Recovery validation checklist

  • Login page loads
  • Admin login works
  • Customers visible
  • Agreements visible
  • Coffee Gear visible
  • Install records visible
  • Swap/Return records visible
  • Reports work
  • Users present
  • Branding settings present
  • Email settings present
  • Backup settings present
  • Database backup succeeds
  • Full recovery backup succeeds

Admin Tools

Users, security, templates, and database actions.

Business Rules & Defaults

Configure safe app defaults and review locked workflow rules.

Locked workflow rules

  • Duplicate serial items stay Draft until the serial is made unique.
  • Duplicate customer names are allowed; CIN7 ID is the main duplicate check.
  • One customer can have multiple agreement sites without being treated as a duplicate agreement.
  • Agreement extensions keep their original agreement reference and print as extensions.
  • Allocating gear creates the matching draft install record.
  • Customer initials are excluded from internal reports.
  • Saves write changed rows only, not the full database.

Help Guides

Edit the short help text shown from the question mark on each page.

Use plain text. Start a line with "- " for a bullet, or "# " for a small heading.

Coffee Gear Fields

Add, rename, hide, or restore values used for Coffee Gear dropdown fields. Used values are hidden instead of deleted so old records stay intact.

Contract Templates

Upload Word templates and generate customer contracts from agreements.

No contract template uploaded yet.

Supported fields {{templateName}} {{templateVersion}} {{contractTemplateName}} {{contractTemplateVersion}} {{generatedDate}} {{generatedAt}} {{appVersion}} {{footerVersion}} {{customerId}} {{customerCreatedAt}} {{customerName}} {{tradingName}} {{legalName}} {{customerLegalName}} {{abn}} {{customerAbn}} {{customerAddress}} {{customerEmail}} {{customerPhone}} {{contactName}} {{contactFirstName}} {{contactLastName}} {{contactPositionTitle}} {{customerType}} {{customerStatus}} {{customerNotes}} {{siteName}} {{siteAddress}} {{siteTradingName}} {{siteContactName}} {{sitePhone}} {{siteEmail}} {{agreementSite}} {{invoiceNumbers}} {{moqPricing}} {{agreementId}} {{fullAgreementVersion}} {{fullAgreementVersionLabel}} {{scheduleVersion}} {{scheduleVersionLabel}} {{simpleAgreementVersion}} {{simpleAgreementVersionLabel}} {{agreementStartDate}} {{agreementEndDate}} {{contractTermMonths}} {{kgPerWeek}} {{totalContractedKg}} {{pricePerKg}} {{equipmentList}} {{ppsrNumber}} {{signingDate}}

Create Customer or Import from CIN7

Customers

0 selected
IDStatusDateNameCIN7SourcePhone

Import PDF and Match Customer/Equipment

Add Agreement Details

Agreements

0 selected
IDStatusCustomer / siteDatesKg/WkContract length in monthsTotal contracted kg$/KgPPSRPPSR statusSigned file(s)

Add Coffee Equipment

Coffee Equipment

Search & Filter Equipment

Bulk Allocation

Select one or more equipment rows, then choose the customer to allocate them to.

0 selected
More actions
LockIDStatusItemBrandModelSerialCustomerInstall dateFundingDepreciation Start DateInstant write offPurchase Cost (Ex GST)Depn yearsResidualCurrent WDVLease monthlyLease termAuto CAPEXReplacement Cost (Ex GST)

Duplicate Serial Check

Shows serial numbers allocated to more than one customer. Select the correct customer or unallocate the wrong record.

ActionsIDStatusSerialEquipmentCurrent customerDuplicate note

Not allocated to customer

0 selected
IDStatusItemBrandModelSerialFundingReplacement Cost (Ex GST)

Equipment History

Select History on an equipment row to view its history.

Install Equipment at Customer

Installs

0 selected
IDStatusAgreementCustomerCoffee gearInstall dateReturn date

Service Swap Coffee Equipment

Service Swap History

0 selected
IDStatusAgreementCustomerOld itemNew itemDateReason

Reports

Reports, registers, customer packs, and internal reporting.

Reports Dashboard Choose the report workspace you need. Manage customer reports, transaction registers, and internal reporting.

Detailed Customer Report

Report date -

Transaction Register

ReferenceAgreementDateTypeCustomerEquipmentSerialStaff member

Forward Coffee Forecast

Forecast period Next 12 months

Summary by contract class

Contract classAgreementsCustomersKg/monthValue/monthForecast kgForecast value

Detail by customer

CustomerSiteAgreementTypeStatusTermDatesMonthsKg/weekKg/monthPrice/kgValue/monthForecast kgForecast value

Draft agreements needing dates

CustomerSiteAgreementAgreement typeStatusStart dateEnd dateContract lengthKg/weekPrice/kgMissing

CAPEX Depreciation Report

Report date Report period All dates
0 selected