Skip to main content

Self-hosted · For PC Repair Tracker shops

RepairOps Shop Owner Edition

Repair shop software on your own server, built for shops moving from PC Repair Tracker.The RepairOps repair workflow, packaged for a server you rent. Your PCRT history comes with you, your data lives in a PostgreSQL database you control, and the license keeps the shop running even if you stop paying for updates.

Pricing is shared on request. There's no monthly subscription to RepairOps, and you rent the server from the hosting provider you choose. Updated .

RepairOps Kanban board with repair tickets in intake, triage, diagnostics, approval, repair, and output columns.
The Kanban board in the RepairOps demo shop, with sample data.

Shop Owner Edition at a glance

  • Your server, your database

    It runs on an 8 GB server you rent. Customers, tickets, money and stock live in PostgreSQL on that box, and RepairOps hosts none of it.

  • Keeps running if you stop paying

    Paying for updates buys new versions and security patches. Letting them lapse never switches the shop off.

  • Your PCRT history comes with you

    One database dump carries customers, devices, work orders, notes, invoices, payments and stock, plus your status colors and canned texts.

  • Three stores, no per-user fees

    Up to three stores in one install, with no cap on staff accounts, work orders, texts, exports or storage.

  • Texts and email on your own accounts

    Customer texts go through your Twilio account and email through your own provider, and you pay them directly.

  • No analytics on the box

    No tracking or error-reporting services are built in. The only regular call to RepairOps is a version ping, and one setting turns it off.

The license

A license that never switches your shop off

Your license includes 12 months of new versions and security patches. After that, paying for more updates is up to you. If you don't, your install keeps running the last version it received, indefinitely: no countdown, no read-only switch and no remote off button.

That's the deal PC Repair Tracker made: pay, keep using it, and renew only if you want updates. Here it's written into the software rather than left to goodwill. The only thing a lapse can hold back is a new version.

  1. Your first 12 months

    • The shop runs
    • New versions and security patches arrive
    • You can re-download and reinstall
  2. Paying for more updates

    • The shop runs
    • New versions and security patches keep arriving
    • You can re-download and reinstall
  3. Not paying for updates

    • The shop runs
    • New versions pause, and you keep the last one you received
    • You can re-download and reinstall
Paying for updates only controls new versions. Running the shop, and re-downloading and reinstalling the version you have, are never tied to payment.

The license file

Your license is a small signed file, runtime.license.json, that sits beside the install and is bound to your organization. It names your edition, its features, your store count and the date your updates run to. The software checks its signature when it starts and keeps checking while it runs.

With a valid file
Everything in your edition is on. When your updates date passes you see one quiet notice that new versions are paused, and nothing else changes.
With a missing or altered file
The install goes read-only for new work until a valid file is back. Repairs already in progress still complete, exports keep working, and nothing is deleted.

Features come from the signed file, so editing the database can't switch anything on.

Stores and staff

Three store locations are included in one install. Each extra store is added with a reissued license file from RepairOps; there's no self-serve button. There's no per-user pricing and no cap on staff accounts, work orders, texts, exports or storage, because those run on your server and your own accounts.

A few bundled tools have fixed allowances, listed under limits and allowances.

Support

There's no support queue or phone line with this edition. You get the Owner's Guide, which covers installing, migrating, backups, updates and troubleshooting in plain English; a preflight checker that tests your server before you install anything; and security-notice emails when a version you run needs patching.

If you want help from the RepairOps team, the Supported self-hosted plan includes email support and update guidance.

Coming from PC Repair Tracker

What you had in PCRT, and where it lives now

A crosswalk from the PC Repair Tracker features shops use every day to where they live in Shop Owner Edition.

  • Same jobdoes what PCRT did
  • Does moregoes past PCRT
  • Partlycovers some of it
  • Not herenot in this edition
PC Repair Tracker features and where they live in Shop Owner Edition
In PC Repair TrackerIn Shop Owner EditionVerdict
Work orders and status boxesTickets on a live Kanban board. Your status colors and order come across; columns, work-in-progress limits and card fields are yours to set, and each move is checked.Does more
Customers, devices and notesCustomer records with their devices, tags and full ticket history. PCRT notes arrive as ticket history.Same job
Check-in and the claim ticketA guided intake with a symptom picklist, condition checks and accessories, photos from a phone, and an on-screen signature with the exact agreement text saved on the ticket. The intake receipt prints with a QR code to the customer's portal.Does more
Canned SMS, common problems and quick laborMessage templates with placeholders, a symptom picklist at intake, and a priced services catalog, imported from PCRT if you tick them.Same job
Quotes and invoicesQuotes the customer approves or declines online, with an optional signature. Invoices are created on approval, with a PDF.Does more
DepositsDeposits held on a ticket and applied to its invoice (never more than the balance), or refunded.Does more
Stock and partsInventory with reorder points and low-stock alerts, parts drawn from stock onto tickets, purchase orders, vendors and customer special orders.Does more
Several storesUp to three stores in one install, with a store switcher, a time zone, tax and settings per store, and an all-stores roll-up report.Same job
Customer portal and status checkA private link per ticket for progress, quote approval, messages and contact preferences; a no-login status page by ticket code or phone; and a widget for your website.Same job
Texting customers through TwilioYour own Twilio account sends quote-sent, ready-for-pickup and pickup-reminder texts, following each customer's contact preference.Same job
Labels and printingDYMO ticket and device labels with barcodes, batch printing from the board, intake receipts and invoice PDFs.Same job
ReportsDay, date-range, period, parts-margin, sales-tax, fiscal-year, payment-type and customer-source reports on each store's local day, most with PDF or CSV export.Does more
SearchOne search box covers tickets, customers, inventory, knowledge-base articles and PC parts, and the ticket list filters by status, technician, date and tag. Invoices aren't part of that search.Partly
Renaming thingsBoard column names and colors are yours; ticket status names and the rest of the screen text are fixed.Partly
Tax-inclusive pricesPrices are entered before tax and tax is added per line. There's no tax-inclusive setting.Not here
Card payments through a gatewayThere's no built-in card processing on a self-hosted install.Not here
Time clockNot in this edition.Not here
Service requests and bookingNot in this edition.Not here
Recurring invoices and RepairFlowNot part of RepairOps.Not here

What's included

The whole repair workflow, from counter to pickup

Every feature your license switches on, grouped the way a shop works.

At the counter

Check-in is a guided wizard for owners, managers and front-desk staff. It captures on screen what a PCRT claim ticket used to promise on paper.

RepairOps new intake form, starting with finding or adding the customer before the device, issue, photos, passcode, and consent steps.
The check-in wizard in the RepairOps demo shop.
Customer and device
Find a customer by phone, email or name, or add one on the spot. Pick one of their devices or add it with type, make, model, serial and asset tag. A device with a warning tag shows a banner before you take it in.
Symptoms and priority
Tap symptom chips drawn from your services' common problems, ranked for the device type, alongside the customer's own description. Priority is Standard, Rush or Emergency.
Condition and accessories
OK, Issue or N/A for each check you define, plus an accessories checklist that can be ticked off again at pickup, so nothing leaves without its charger. PCRT's accessory list is one click away.
Photos
Upload, use the browser camera, or scan a QR code and send photos from a phone.
Agreement and signature
The customer reads your intake agreement, ticks consent and signs on screen. The exact text they agreed to is saved with the ticket, so changing your wording later never rewrites what an earlier customer signed.
Receipt and labels
The intake receipt prints with a QR code to the customer's portal. Ticket and device labels print on DYMO 30252, 30321, 30336 and 30256 stock, one at a time or in a batch selected on the board.

On the bench

A PCRT status box was a label you could set freely. Here a move is refused until its check passes: a ticket can't leave check-in without a signature and photos, for example. Customers follow along on an eight-step progress bar, from Checked In to Complete.

Live Kanban board
Drag cards between columns with the same checks applied, and a column at its work-in-progress limit refuses new cards. Changes appear on every open screen without refreshing, and you can filter by technician, priority or tag.
Board settings
One to twelve columns, each with its own name, color, work-in-progress limit and the statuses it holds. Choose which fields the cards show, and reset to defaults any time.
Ticket list and My Work
Filter tickets by status, priority, technician, date range and tag, sort them, and export to CSV. Each technician gets a queue of assigned jobs with counts for active, waiting-on-parts and overdue work.
Diagnostics
A task list per ticket, a findings summary, evidence uploads (including from a phone) and a timer that logs bench time against the ticket.
Quotes
Build from your services catalog or add labor, part, service and discount lines, each with its own discount and taxability. Parts that need ordering raise purchase requests, and a sent, declined or expired quote can be revised.
Quality check
A five-point checklist (visual inspection, issue resolved, connections secure, powers on, customer data intact), at least one piece of evidence, then pass or fail. A fail sends the job back to repair.
Pickup
An ID check, an optional signature and the accessory hand-back checklist before the ticket closes.
On every ticket
Reminders with snooze, tags that warn when the same issue keeps coming back, parts and orders, transfer to another of your stores, and an alert when a job is overdue.

Customers and messages

Every repair gets a private page for the customer, and messages go out through your own email and Twilio accounts.

Customer records
Contact details, how they found you, marketing opt-out with its consent source and date, tags, devices and full ticket history.
Customer portal
A private link per ticket, valid for 90 days and revocable, with no account or password. Once the customer confirms the email or phone you hold for them, they can see the timeline, approve or decline a quote, message the shop and choose how they'd like to be contacted.
Status page and website widget
A public page where customers check a repair by ticket code or phone number, and a widget for your own website. Look-ups are rate-limited against guessing.
Customer messages
Emails when a quote is sent, an invoice is generated, a payment is received and a repair is ready, plus pickup reminders if you want them. Quote, ready-for-pickup and reminder messages can go by email, text or both, and each customer's contact preference is respected.
Your Twilio and email accounts
Texts go through your Twilio account, with its credentials stored encrypted; you pay Twilio directly and nothing is capped. Email goes through your SMTP account, or Postmark for customer mail.
Templates, portal messages and call notes
Reusable message templates with placeholders such as {{customer_first_name}} and {{ticket_code}}. Messages customers send from the portal land on the ticket and notify staff, and a call log records direction, reason, number and minutes.
Customer export
Choose filters and columns, preview, and download a CSV.
Staff notifications
Choose channels per event for your team, with quiet hours and escalation.

Invoices and payments

Money stays tied to the repair: approved quotes become invoices, deposits apply to them, and every payment and refund lands on the ticket's history.

Invoices
Created when a quote is approved, by the customer in the portal or by staff, or generated by hand, with any deposit already held applied automatically. Each has a page and a PDF, and numbers are assigned per store by the database, so they can't collide or be reused.
Recording payments
Record cash, check or other payments with a reference. A partial payment leaves the invoice partly paid, and each payment is written in one step that refuses overpayment and can't be recorded twice by a double click.
Deposits
Take a deposit on any open ticket, then apply it to the invoice (never more than the balance) or refund it.
Refunds
Full or partial, with a required reason. The payment, the invoice balance and the ticket history update together. Owners and managers only.
Tax
A tax profile per store (rate, label, and whether parts, labor, services and add-ons are taxable), a secondary rate, a tax category on each service, the fiscal-year start month and your tax ID. Tax is rounded per line, so every document's tax equals the sum of its lines.

Stock, parts and services

Stock, special orders and your priced services, connected to the tickets that use them.

Inventory
SKU, category, quantity on hand, reorder point, cost, price and bin location, with stock adjustments, a movement history and low-stock alerts.
Parts on tickets
Draw parts from stock or add one-off parts, and track each as needed, ordered, received, installed or returned. Staff are told when every part for a job has arrived, and stale orders are flagged.
Special orders
Purchase requests tied to a ticket or quote line, with the supplier, the customer price against cost and whether repair can start without the part, then marked ordered and received.
Purchase orders and vendors
Orders with line items, receiving, carrier and tracking number, linked to tickets where relevant, plus a vendor list with their parts.
Services catalog
Services with pricing, tax category, duration, warranty days, walk-in, mail-in, remote and on-site flags, common symptoms for intake and per-store overrides, with CSV import and export.
Spreadsheet imports
A CSV importer for customers, devices, inventory and services, with column mapping, a dry run and rollback.

Reports and insight

Reports use each store's local day, so an evening sale lands on the day it happened. Sales reports count each invoice once, on the date of its first payment; cash reports come from the payments themselves.

Dashboard
Open tickets, quotes awaiting approval, work due today and revenue this month, plus an attention list of SLA breaches, full columns, idle quotes and unread portal messages.
Analytics
Tickets created and closed, turnaround, revenue, QC first-pass rate, SLA compliance, parts cost and overdue work, with technician workload, bottlenecks, a store comparison for owners and KPI export to CSV.
Heartbeat
Stuck tickets, plus trends in how long jobs sit in each status and how quality checks are going.
Reports in Shop Owner Edition
ReportWhat it showsExport
Day reportLabor and parts, tax, net and transactions for one dayPDF, CSV, print
Day rangeSales across any date rangeCSV
Monthly, quarterly, yearlySales by periodOn screen
Parts marginCost, profit and margin on parts soldCSV
Sales taxTaxable and non-taxable sales and tax collected, by monthPDF, CSV, print
Fiscal-year taxThe year's tax summary for your accountantPDF, CSV, print
Payment typesSummary, detail and monthly views by payment methodSummary: PDF, CSV. Others: print
Customer sourcesWhere customers came fromOn screen
All-stores roll-upEvery store together, for owners with more than one storeOn screen

Stores, team and security

Up to three stores in one install, each with its own time zone, tax and settings, and staff access by role.

Stores
Each store has a name, a short code used in invoice numbers, an address, a time zone and default tax. Switch stores from the header, limit staff to particular stores, and move a ticket between them.
Team
Invite staff, change roles and deactivate leavers, with no user limit.
Sign-in and two-factor
Sign-in by one-time email code, authenticator-app two-factor with recovery codes, a policy requiring two-factor for managers (on by default) or everyone, passkeys where your sign-in server supports them, and an authentication log.
Encryption
Device passcodes and plugin credentials are encrypted with a data key that exists only in your server's config.
Ticket history
Every status change, note, payment, message and label print is recorded on the ticket.
Exports and in-app backups
CSV exports of customers, tickets, inventory and services, and scheduled in-app backups with retention from 7 to 365 days, alongside the server's nightly database dump.
Staff roles and what each typically does
RoleTypically does
OwnerEverything, including backups, plugins, invitations, the all-stores roll-up and data export
ManagerSettings, refunds, reports, analytics, tax settings and services
Front deskIntake, payments and deposits, invoices, the day report and CSV exports
TechnicianDiagnostics and repairs, inventory, orders, My Work, PC builds and repair guides
Quality controlQuality checks
AccountingReports and invoice PDFs
DispatcherTicket and customer look-ups

Knowledge tools

Reference tools for the bench. They carry fixed allowances in this edition, listed under limits.

Knowledge base
Articles in categories with edit history and attachments, seeded with RepairOps' own system articles.
Repair guides
Search iFixit's repair guides, and see relevant guides on a ticket.
System Builder
Quote custom PCs with builds checked for compatibility against the open BuildCores parts catalog, refreshed weekly (about 46,700 components after the first sync). Save templates, add your own parts, and share a build page the customer opens from their portal.

Limits

What's unlimited, and what has an allowance

Anything that runs on your hardware or your own accounts isn't capped. A handful of bundled tools use fixed allowances.

No cap

What has no cap in Shop Owner Edition
WhatWhy there's no limit
Work ordersYour server does the work.
Staff accountsThere's no per-seat pricing on a self-hosted install.
Customer textsThey go through your Twilio account, billed by Twilio.
Photo and file storageIt's your disk.
ExportsIt's your data, as often as you like.

Fixed allowances

Fixed allowances in Shop Owner Edition
ToolAllowance in this edition
Stores3 included; more with a reissued license file.
Knowledge base50 articles, with 5 saved revisions and 3 attachments per article, and 2 category levels. Owners and managers write articles.
System Builder10 builds a month, 3 saved templates, 20 of your own parts and 30 days of build history. No PDF export.
iFixit repair guides50 lookups a month. No category browser or auto-suggest.
Tags50 tags. No automatic tag rules or tag merging.
Heartbeat trends30 days of status-duration and QC trends. The ticket throughput history chart isn't included.

These are the entry-level settings those tools were built around. Nothing on this list stops a repair, an invoice or a report.

Not in this edition

What Shop Owner Edition leaves out

The software contains the whole RepairOps product, and your license switches these parts off. Most are available on RepairOps' hosted plans.

Left out by design

Features left out of Shop Owner Edition by design
FeatureWhat it isIn this edition, instead
Appointment bookingAn online booking page, reminders and no-show handlingWalk-ins and calls go straight into intake.
Shop-floor displaysQueue screens for the counter or the workshop wallOpen the live Kanban board on any screen.
Time clockStaff punches, timesheets and payroll exportUse your payroll provider's clock. Bench time is still logged on tickets by the diagnostics timer.
White-label brandingYour colors, a custom domain and email identity, and removing the RepairOps markYour shop name and logo appear on customer pages and emails, with a small “Powered by RepairOps” mark.
REST API and webhooksProgrammatic access and event feeds for other systemsRead your own PostgreSQL database directly, or use the CSV exports.
Plugin marketplaceThird-party and paid pluginsThe free built-in integrations still install: Twilio SMS, email providers, Slack alerts and push notifications.
Single sign-on (SSO and SAML)Sign-in through a company identity providerEmail-code sign-in with two-factor and passkeys.
Audit trail screenAn organization-wide audit log and compliance exportEach ticket's full history, and the authentication log.

Not included today

These aren't part of the edition as it ships.

Advanced analytics
KPI PDF export and documentation-quality scores. The analytics dashboard and CSV export are included.
Review requests
Asking customers for a Google review after pickup.
Phone calling
RingCentral calling, call logs and voicemail. Manual call notes are included.
Tag automation
Automatic tag rules, tag merging and the tag usage report. Tags themselves are included.
Status page extras
Auto-refresh, and closed tickets in phone look-ups. The status page and widget are included.
Approving join requests
Requiring an owner to approve new members before they get in.

Not part of RepairOps at all

  • Recurring invoices, service contracts and late fees: invoices belong to a repair ticket.
  • Built-in card processing on a self-hosted install.
  • Tax-inclusive pricing: prices are entered before tax.
  • A double-entry ledger: export the reports for your accountant.

Moving from PCRT

Moving your PC Repair Tracker data across

A wizard inside the app, run by the owner. PCRT is only ever read, nothing is written to your shop's records until you press Import, and the import can be undone.

  1. Export from PC Repair Tracker

    On the PCRT server, run one command. It only reads, and it doesn't lock PCRT, so the shop keeps working while it runs.

    mysqldump --single-transaction --quick --default-character-set=utf8mb4 <database> | gzip > pcrt-dump.sql.gz

    No shell access? In phpMyAdmin, choose Export with the SQL format and upload the .sql file it gives you.

  2. Upload the dump

    In RepairOps, go to Settings → Imports → PCRT. Owners only; files up to 500 MB.

  3. Map your stores

    Pair each PCRT store with a RepairOps store, choose a fallback for work orders with no store recorded, or leave a store's work behind.

  4. Map statuses

    Match each PCRT status to a RepairOps status. By default everything imports as closed history; you can bring open jobs in at their mapped status instead.

  5. Link technicians

    Link PCRT users to your staff so imported work and notes are attributed. No accounts are created, so invite your team separately.

  6. Choose settings

    Tick which PCRT settings to bring across, and optionally read your deps.php.

  7. Preview

    A dry run that writes nothing: record counts, the reasons anything will be skipped, and exactly how many customers you'll end up with.

  8. Import

    It runs in the background in checkpointed slices with live counts. If the server restarts, it resumes from the last checkpoint, and every record is claimed in a ledger first, so re-running can't create a customer, ticket or invoice twice.

  9. Check, then decide

    Spot-check jobs and money against PCRT. Finalize when you're happy, or undo and try again.

RepairOps migration screen for PC Repair Tracker: upload one database dump (recommended, with the mysqldump command to run) or seven CSV exports as a fallback.
The PC Repair Tracker migration screen in the RepairOps demo shop.

Safety rails

  • PCRT is never written to. Migrate on a Tuesday, change your mind, and open with PCRT on Wednesday.
  • The dry run writes nothing, and nothing reaches your shop's records before you press Import.
  • Undo removes only what the import created. A customer who already existed is never removed, and undo refuses once staff have worked on imported records, for example by adding quotes, payments or messages.
  • No surprise texts: customer texts and pickup reminders stay off until you choose them. Emails for quotes, ready-for-pickup, invoices and payments reach customers with an email address as soon as your email is set up, so review your customer message settings before your first live ticket.
  • Clean-up is automatic. The uploaded dump is deleted once the migration finishes, and the staged copy is erased when you finalize or after 30 days.

What comes across

What comes across from PC Repair Tracker, by export type
From PCRTBecomesDatabase dumpCSV exports
Customerspc_groupCustomersYesYes
Device ownerspc_ownerDevices, plus a customer for each owner, grouped by name and phone and carrying the owner's phone and emailYesYes
Work orderspc_woTickets, with the PCRT work-order number and status kept on their historyYesYes
Work-order noteswonotesTicket historyYesYes
Receipts and invoicesreceipts · sold_items · invoicesInvoices with line items and paymentsYesNo
Payments, refunds and depositssavedpayments · depositsPayments, refunds, and deposits against the ticketYesNo
Parts and stockstock · counts · lotsInventory items with opening stock per storeYesNo
Stores, statuses and usersstores · boxstyles · usersUsed for the mapping stepsYesYes

Money keeps its original dates and the tax rate each line was sold at, so historical reports show what actually happened rather than today's rate. Customers are matched on phone and email, so a later import from a fresher dump doesn't duplicate anyone. The seven-file CSV route is there for hosts where a dump is impossible, but it can't reach invoices, payments or stock, and PCRT notes full of commas and line breaks often break CSV exports.

Your PCRT settings, brought across

Each of these is an offer on the setup step: tick what you want and skip the rest. Applying is additive, so anything you've already set up is left alone, and settings stay put if you later undo the record import.

PC Repair Tracker settings and what they become
In PCRTBecomes
Status box colors and display orderboxstylesBoard columns in the same colors and order
Per-status field togglesboxstyles.statusoptionsWhich fields the board cards show
Canned SMSsmstextSMS message templates. Any still carrying PCRT's example phone number or sign-off are flagged for editing first.
Common problemscommonproblemsThe symptom picklist at intake
Quick laborquicklaborServices at the same prices
Condition checks and the accessory listchecks · deps.phpThe intake condition checklist and accessories
Claim-ticket wordingstores.claimticketThe intake agreement customers sign

Other wording with no direct home, such as the quote, deposit and repair report footers and the thank-you letter, is carried across as reference text, so you never need the old server to copy it.

deps.php: eleven settings, nothing else

PCRT keeps part of its configuration in deps.php, a PHP file you edited over FTP, and that file also holds your database password, SMTP password and payment-gateway keys. So the wizard treats it differently from the dump: the file's text goes to your own server, which picks out eleven named settings and discards the rest. The file itself is never stored.

  • Currency symbol
  • Tax label
  • Invoice overdue days
  • Tax-inclusive pricing
  • Time zone
  • Week start
  • Site name
  • Return days
  • Units
  • Accessory list
  • Priority list

The accessory list feeds the intake checklist. The currency symbol and overdue days are shown for reference only, because RepairOps has no matching setting.

What stays behind

Attachments and photos
PCRT keeps them as files on its own disk, not in the database, so a dump can't contain them. Keep the old server's upload folders.
Device passwords, staff PINs and stored card data
Stripped deliberately before anything is stored. Collect device passcodes fresh at intake.
Appointments
Along with scheduled and promised dates.
Quotes that never became jobs, and counter sales with no work order
RepairOps invoices hang off a ticket. Both are counted and reported, not silently dropped.
Other PCRT data
Recurring invoices and RepairFlow data, message history, PCRT logins and permissions, and printed templates.

Imported tickets have no intake photos, signatures or checklists because PCRT never captured them. That's one more reason to finish genuinely open repairs in PCRT and import everything as history.

Tested at shop scale

The importer and the 8 GB server profile were acceptance-tested together on a real two-store PC Repair Tracker database of about 395,000 rows, on a 4-core, 8 GB server.

work orders
43,680
devices
38,111
customers
27,101
invoices
36,003
notes and history events
193,981
of rows couldn't be placed
0.13%

Of the customers, 98% came across with a phone number and 83% with an email. The 523 rows that couldn't be placed were notes and tickets attached to records that weren't imported, and each was counted and explained. Worker memory peaked around 120 MB and the database under 800 MB, with no swapping and no crashes. Undo was exercised in the same run and returned every count to zero.

Running it yourself

Running it on your own server

What the box needs, what runs on it, and exactly what leaves it.

The server

An 8 GB RAM, 4 vCPU, 80 GB disk VPS; Hetzner's CX32 class is the reference box. Before you install, the preflight script checks the machine and changes nothing.

Preflight checks and their thresholds
CheckPassWarnFail
Memory7,600 MB or more6,600 to 7,599 MBUnder 6,600 MB
CPU cores4 or more2 or 3Fewer than 2
Free disk60 GB or more25 to 59 GBUnder 25 GB

A real 8 GB machine reports roughly 7,700 MB to the operating system, which is why the pass mark sits at 7,600. Smaller servers fail on purpose: they can start the software but can't run a shop and a PCRT import at the same time. Preflight also checks the operating system, Docker and Docker Compose, ports 80 and 443, outbound HTTPS and whether your domain resolves.

What's inside the box

Ten long-running containers from one Docker Compose file: Caddy, the web server, which obtains and renews your HTTPS certificate on its own; the web app; the background worker; PostgreSQL; sign-in; a database API; live board updates; file storage; an internal API gateway; and a nightly backup job. One-shot setup, migration and mail-check jobs run once and exit, and the mail check tests your SMTP settings before the app starts. Every long-running container has a memory ceiling, so one runaway process can't take the box down, and together the ceilings leave about 2.3 GB for the operating system's disk cache.

Backups and updates

Nightly backups
A backup container dumps the whole database every night and keeps rotating daily, weekly and monthly copies. The Owner's Guide includes a restore drill that proves last night's dump works.
Updates
While your updates term is active, you're emailed when a new build is ready. To update, confirm last night's backup, point the config at the new images named in the delivery manifest and bring the stack up; database migrations run on the way. Release images are signed, with build attestations.
Plain PostgreSQL
Tables have plain names such as customers, tickets, invoices and payments, so any Postgres tool, consultant or future system can read your data.

What leaves your server

Everything your shop stores stays inside the box. These are the connections it makes, and what each one carries.

Every outbound connection a Shop Owner Edition server makes
ConnectionWhenWhat it carries
RepairOps version pingEvery 5 minutes by default. Setting REPAIROPS_GUARDIAN_LOCAL_ONLY=true stops it, and nothing about your license depends on it.Instance ID, a hash of the license ID, app and worker versions, build commit, database migration number, license status, release channel and image digest. No counts, hostnames, shop or customer data.
Your email providerLogin codes, and the customer emails you've switched onThe email. SMTP by default; Postmark is optional for customer mail.
Your Twilio accountThe customer texts you've switched onThe text message.
iFixitWhen someone looks up a repair guide, plus a periodic cache refreshThe device or guide being looked up.
GitHubOnce a week, and when you install or updateDownloads only: the open hardware catalog System Builder checks compatibility against, and your signed release images.
Let's EncryptWhen your HTTPS certificate is issued or renewedYour domain name.
EasyPostOnly if you add your own EasyPost key for parts-shipment trackingTracking numbers.
RepairOps preflight reportOnce, when you run the preflight scriptPass or fail results, OS and CPU architecture, CPU, memory and disk figures, a hash of the hostname, and the domain you entered.

No Sentry, no PostHog and no analytics of any kind: none is built into the edition's images or configured on the box. And 18 background schedules that only make sense on RepairOps' hosted service, such as billing, trials and usage alerts, are stood down on this edition, so your worker spends its time on your shop.

Getting started

From purchase to first ticket

The order things happen in. The Owner's Guide walks through every command.

  1. Talk to us and buy a license

    Tell us about your shop and we'll share pricing. When you buy, a delivery is opened for your shop, and your technical contact's email is where security notices go.

  2. Rent a server and point a domain at it

    For example, an A record for repairs.yourshop.com pointing to the server's IP address.

  3. Run the preflight script

    Use the codes from your delivery email. A fail is a stop: resize the server before going further.

  4. Download your package

    RepairOps builds your package, issues your license and emails you. Download it from Settings → Self-hosting in your RepairOps account: the Compose file, the config template, the delivery manifest with your images' fingerprints, and the Owner's Guide.

  5. Install

    Fill in light.env with your domain, fresh secrets and SMTP details, place runtime.license.json, and run docker compose up -d. The HTTPS certificate is issued automatically.

  6. Sign up

    The first account becomes the owner, and that organization is bound to your license automatically.

  7. Import PC Repair Tracker

    Run the migration, check the results and finalize.

  8. Set up and go live

    Set each store's time zone and tax rate, the board, message templates, the intake checklist, labels and your Twilio account, then choose which customer messages go by text and whether to send pickup reminders.

FAQ

Questions PCRT shop owners ask

Something else to check before you move? Ask us and we'll answer it.

What is RepairOps Shop Owner Edition?

It's RepairOps packaged to run on a server you control, built for shops moving from PC Repair Tracker. It brings your PCRT history across, keeps your data in a PostgreSQL database on your server, and comes with a license that keeps the shop running even if you stop paying for updates.

What happens if I stop paying for updates?

Your install keeps running the last version it received, indefinitely. There's no countdown, no read-only switch and no remote off button. Paying for updates only buys new versions and security patches.

How much does Shop Owner Edition cost?

Pricing is shared on request, so get in touch and tell us about your shop. There's no monthly subscription to RepairOps and no per-user pricing. You rent the server separately, from the hosting provider you choose.

What server do I need?

A VPS with 8 GB of RAM, 4 vCPUs and 80 GB of disk, such as Hetzner's CX32 class. A preflight script checks the machine before you install and changes nothing. It fails servers with under 6,600 MB of memory, fewer than 2 CPU cores or under 25 GB of free disk.

Can I bring my PC Repair Tracker data?

Yes. One mysqldump of your PCRT database carries customers, devices, work orders, notes, invoices, payments, refunds, deposits and stock. You upload it in the app, map stores, statuses and technicians, preview a dry run, import, then finalize or undo. PCRT itself is never written to.

What doesn't come across from PCRT?

Attachments and photos (PCRT stores them as files, not in the database), device passwords, staff PINs and stored card data, appointments, quotes that never became jobs, counter sales without a work order, recurring invoices, message history, and PCRT logins and permissions.

Does my shop's data leave my server?

Customers, tickets, money and stock stay in PostgreSQL on your server. The box connects to the services you set up, such as your email provider and Twilio, plus iFixit for repair guides, GitHub for downloads and Let's Encrypt for your certificate. The only regular connection to RepairOps is a version ping carrying versions and license status, and one setting turns it off. There are no analytics on the box.

How many stores and staff can I have?

Three stores are included in one install, and more can be added with a reissued license file. There's no cap on staff accounts, work orders, texts, exports or storage.

What support is included?

The Owner's Guide, a preflight checker, and security-notice emails when a version you run needs patching. There's no support queue or phone line with this edition. If you want help from the RepairOps team, the Supported self-hosted plan includes email support and update guidance.

Is it the same software as hosted RepairOps?

Yes. The software contains the whole RepairOps product, and your license switches on the parts in this edition. Features such as appointment booking, the time clock, the REST API and single sign-on stay on RepairOps' hosted plans.

Shop Owner Edition

Running PC Repair Tracker today? Let's talk about your move.

Tell us about your shop, including how many stores and staff you have and how long you've run PCRT. We'll share pricing and what the move involves.

We use cookies to understand how you use our site and improve your experience. You can change your preferences at any time. Privacy Policy

Manage settings