Full guide

Install, daily use, backups and troubleshooting — step by step, no technical background needed.

What's in the app (free, MIT)

Everything a repair shop uses day to day, with no subscription or limits:

Menu What's included
Dashboard The day at a glance — open repairs, priorities and alerts (different view for owner, technician and front desk)
Repairs Job cards with unique code (REP-…), statuses (intake → done → delivered), timeline, internal and customer-visible notes, photos and due date
Requests Intake queue — customer-sent requests and diagnostics, ready to convert into a job
Returns Return handling linked to sales and repairs
Customers Records with repair history, search by name/phone/IMEI, consents
Parts inventory Stock, low-stock alerts, suppliers, parts linked to repairs
Counter POS Sell parts and accessories, cash sessions, receipts and payment records
Repair services Repair catalog with prices — the shop's price list
Quotes Versioned quotes sent to the customer, approve/decline responses with dated record, full history
Notifications In-app alerts, editable message templates and WhatsApp/SMS send queue
Reports Sales, repairs and margins per period — with an A4 print page
Printing Configurable receipts and labels — 58/80 mm roll, A4, optional sections and direct printing to network thermal printers
AI analyst Questions about the shop's data in plain language
Customer tracking Public page on the shop's network for customers to follow their repair — free on LAN
Users Multiple staff members with roles and per-function permissions
Languages Portuguese, English, French and Spanish
OficinaOS repair dashboard
The dashboard — the day's repairs at a glance
Repair job card with statuses, quote and timeline
The job card — statuses, quote and full timeline
Customer tracking page on a phone
The tracking page the customer opens on their phone

Three ways to install

OficinaOS is always the same program — what differs is how it runs on the shop PC. There are three paths:

OficinaOS-Setup.exe (recommended) — a normal Windows installer, no Docker: runs as a service, starts with the PC, creates the firewall rule, does automatic daily backups and leaves a tray icon. The right path for the shop PC.

Portable mode — a single bundle with everything inside (the app, the PostgreSQL database and the runtime), with no installation and no Windows services. It exists for the cases where the installer doesn't fit: PCs where you don't have the admin password, people who'd rather not install anything on the system, and as a fallback if the installer fails on a specific machine (antivirus, company policies).

Docker — for a NAS, a dedicated server, Linux or macOS, or for people who already use Docker.

Setup.exe (recommended) Portable Docker
When to use Shop PC — almost always No admin, no install, or installer fails NAS, server, Linux/macOS
Requires admin Yes, during install No Yes, when installing Docker
Download ~339 MB ~540 MB ~1 GB (Docker + app)
Boot with the PC Automatic (Windows service) Optional — scheduled task, asked on first run Automatic
If the app crashes Restarts by itself Restarts by itself (wrapper) Restarts by itself
Backups Automatic daily at 03:30 At every startup + BACKUP.bat Automatic daily (every 24h)
Off-PC backups Copy the backups folder Copy the backups folder Supported (rclone → S3/B2/GCS)
Updates «Update» button in the app (~100 MB) or Setup over the top «Update» button in the app or ATUALIZAR.bat ATUALIZAR.bat — downloads only what changed
Remote access (HTTPS) Cloudflare Tunnel installed separately Cloudflare Tunnel installed separately Cloudflare Tunnel included

Install — OficinaOS-Setup.exe (once, ~10 minutes)

Download OficinaOS-Setup.exe from the releases page and double-click it. If Windows SmartScreen warns: «More info» → «Run anyway».

It asks for admin once (services, firewall and the backup task) and does everything by itself. At the end the browser opens at http://localhost:4000. First login: user admin, password braindead — the app forces you to change both.

A tray icon stays next to the clock: open the app, check status, stop/start, run a backup. On other shop devices: http://oficinaos.local:4000 — or the QR code on the Help page.

On Linux or macOS there's no installer — Docker is used directly:


            git clone https://github.com/braindeadpt/OficinaOS.git
cd OficinaOS && cp .env.example .env
docker compose up -d
docker compose exec app bun run db:seed
          
Windows SmartScreen warning — «More info» then «Run anyway»
The installer isn't signed yet — Windows may show this warning. «More info» → «Run anyway».

Portable mode — no admin, nothing installed

For when the installer isn't an option: you don't have the PC's admin password, you'd rather nothing get installed on the system, or the installer/services were blocked on that machine (antivirus, company policies).

Download oficinaos-portable.zip, extract to a folder and run INICIAR.bat. The app is exactly the same — same code, same PostgreSQL database, same features — and it also has the in-app «Update» button.

Two practical differences versus Setup.exe: autostart is an optional scheduled task (INICIAR.bat asks on first run) instead of a service; and since nobody opens the firewall for you, Windows asks once whether to allow the connection — choose «Allow» so the shop's tablets can connect.

If you arrived here because of the Docker path's «virtualization support not detected» error, portable mode fixes it — but in that case Setup.exe is even simpler, since it doesn't need Docker either.

Day to day — start, stop, files

Once installed, daily use is a double click on a file. The names are the same in both modes — only the folder changes:

  • Setup.exe install: the service runs by itself — stop/start and manual backup via the tray icon.
  • Docker mode: in the folder where you extracted the installer.
  • Portable mode: inside the oficinaos-portable folder — data lives in data\, backups in app\uploads\backups.
  • Other shop devices (tablet, phone, another PC) install nothing — they open http://<PC-IP>:4000 in a browser.
File What it does
INICIAR.bat Start OficinaOS — opens the browser when ready
PARAR.bat Stop — data stays saved
ATUALIZAR.bat Update to the latest version
BACKUP.bat (portable only) Manual database backup
RESTAURAR.bat (portable only) Restore the database from a backup

Backups and restore

Backups are compressed files (.sql.gz) containing the whole database. The app shows the last backup status under Settings → Shop → Backups — it works the same in every mode.

With a Setup.exe install a scheduled task backs up daily at 03:30 to C:\ProgramData\OficinaOS\backups. In Docker mode a dedicated service backs up every 24 hours, keeps 14 days, and can optionally copy to external storage (S3, Backblaze, etc.) and automatically verify restores.

In portable mode the backup runs at every startup and via BACKUP.bat. Restoring is done with RESTAURAR.bat (pick a file from backups). Since there's no automatic off-PC copy, copy the app\uploads\backups folder to an external drive or USB stick — backups on the same disk don't protect against failure, theft or ransomware.

Updates

The app shows a banner when a new version exists. On Setup.exe installs and in portable mode, the shop owner gets an «Update» button on that banner — it downloads only the app payload (~100 MB) with SHA-256 verification, backs up the database first and restores the previous version by itself if the new one fails to start. The app is offline ~1-2 minutes during the swap.

Manually also works: run the new Setup.exe over the top, or ATUALIZAR.bat in portable and Docker modes. Docker can also update fully automatically (Watchtower) — database migrations always run by themselves.

In the shop — phones, tablets and PCs

Any device on the shop's Wi-Fi opens the app in a browser — nothing to install. Just type the address the setup gives you and log in:

Works without internet for daily use. Bookmark the address — it never changes.


            http://192.168.1.33:4000   # the server PC's address
          

Icon on the phone's home screen

To open with one tap, like a normal app — takes 10 seconds:

  • iPhone/iPad: Safari → Share button → “Add to Home Screen”
  • Android: Chrome → ⋮ menu → “Add to Home Screen”
  • With remote access on, Android may even offer “Install app” — a real install

Outside the shop — remote access

With the shop PC on, a free Cloudflare Tunnel gives the shop its own https:// address — no router changes, works with any ISP, even the ones blocking ports (CGNAT).

It lets staff check the app from anywhere and makes customer links — tracking, quotes, warranty QR — open everywhere.

  • Create a free Cloudflare account + a domain (~$10/year)
  • In the Zero Trust dashboard: create the tunnel and copy the token
  • Two lines in the .env file and restart the app
  • In the app: Settings → Shop → Tracking base URL → the public address

Private by default

The tunnel is optional: the app keeps working 100% on the local network even without internet. Customer data stays in the shop — Cloudflare only carries encrypted traffic while the tunnel is on.

Anyone wanting an extra barrier can enable Cloudflare Access (free): email + code before the login, while customer-facing public pages stay open.

Printing — receipts and labels

OficinaOS prints the three everyday documents straight from the job page or the sale screen: the repair receipt for the customer, the POS sale receipt and the label that goes on the device.

Everything is configured under Settings → Shop → Printing — the choices apply to every document from then on:

Option Choices
Receipt paper 58 mm thermal roll · 80 mm thermal roll · A4 sheet (full, invoice-style document)
Receipt sections Toggle each block: IMEI, reported problem, customer signature, tracking QR, warranty
Device label 40×20 mm · 57×32 mm · 62×29 mm
Print method Print dialog — any installed printer — or ESC/POS network thermal printer — direct, no dialog

Two ways to print

Print dialog (default): the document opens in a new tab and uses the operating system's print dialog. It works with any installed printer — USB, network, Bluetooth — and even «Save as PDF». Labels always take this path: label printers speak other languages (ZPL/TSPL) and the browser handles the driver.

Network thermal printer (ESC/POS): the app sends the receipt straight to the printer over the shop network — one click and the ticket comes out, no dialog. For thermal printers connected by cable or Wi-Fi (Epson TM, Star, Xprinter and other ESC/POS-compatible models). Text uses the CP850 code page — correct accents — and the tracking QR is printed with the printer's native commands, no drivers needed.

  • Enable (once): Settings → Shop → Printing → Method «Network thermal printer» → enter IP and port (almost always 9100) → «Send test ticket»
  • Find the IP: on most thermal printers, powering on with the FEED button held prints a self-test with the IP; it also shows in the router's device list
  • Reserve the IP on the router (DHCP reservation) — otherwise the printer may change address and stop printing
  • With the A4 paper preset or a USB-only printer, the print dialog is the path — ESC/POS is for thermal rolls on the network only

Printing — common problems

The most frequent situations:

Symptom What to do
«Could not reach the printer» Check it is powered on and on the shop network; review IP and port; retry «Send test ticket»
«No network printer configured» Set IP + port under Settings → Shop → Printing — or switch the method back to «Print dialog»
The printer's IP changed Set a DHCP reservation on the router and update the IP in settings
Receipt cut off or wrong margins In the print dialog: pick the right paper (58 mm, 80 mm or A4), margins «None», scale 100%
The receipt tab doesn't open Allow pop-ups for the app address and print again
USB-only printer Use the «Print dialog» method — ESC/POS needs a printer on the network

Pro modules — how it works

Pro modules are features that need to reach the internet. The app stays 100% local and free; when a shop wants remote reach, it pairs the app with OficinaOS Cloud — our service that bridges the shop's app to the outside world without exposing the shop's computer.

The shop creates a Cloud account and pairs the app with a code (once). Each module is switched on server-side — no license files. The app syncs with the Cloud every ~2 minutes to send and receive.

Without pairing, everything keeps working on the local network — Pro modules simply don't appear.

Module What the shop's customer gets
Customer portal Public link with repair status and approve/decline quote buttons — no need to call the shop
WhatsApp bot Messages the shop's WhatsApp and gets the repair status automatically; approves quotes with YES/NO
Remote diagnostics Runs the phone diagnostic at home (oficinaos-diag, free) and sends it to the shop with a code
AI reports Diagnostic report written in plain language, ready to hand to the customer
Certified invoicing Legal invoice or invoice-receipt issued straight from the repair or sale — via InvoiceXpress, on the shop's own account — Portugal only
Online storefront A public page with items from the shop's catalogue; the customer reserves and the reservation lands in the Requests queue
Parts wanted A board between OficinaOS shops to request parts and reply “I have it” — the deal is settled between shops
Market prices The anonymous median of other shops' repair and part prices, to compare with your own
Multi-shop Revenue and repairs from every shop of the same owner on one OficinaOS Cloud dashboard
WhatsApp remarketing An automatic message to consenting customers whose last repair was a while ago

Pricing

The full app is free and open source (MIT) — no limits, no accounts, no trial period. Forever.

Pro modules are in beta: during this period, pilot shops use them for free while we measure the real value they bring to the counter. When prices are announced they'll be simple monthly subscriptions — no lock-in, no hidden costs.

* WhatsApp note: replying to customers within the 24-hour window is free. Proactive notifications («it's ready») outside that window need Meta-approved templates, which carry small per-message fees — Meta's cost, not ours.

What Status Price
Full app (core) Free forever €0
OficinaOS Diag (tool) Free forever €0
Customer portal Available (beta) TBA — free during beta
WhatsApp bot Available (beta) TBA — free during beta*
SMS channel (Android gateway) Included in core €0 — free
Diagnostics intake Available (beta) TBA — free during beta
AI reports Available (beta) TBA — per report
Invoicing (InvoiceXpress) Available (beta) TBA — free during beta. The InvoiceXpress account is the shop's own and carries its own service cost
Online storefront (+ customisation) Available (beta) TBA — free during beta
Parts wanted Available (beta) TBA — free during beta
Market prices Available (beta) TBA — free during beta
Multi-shop Available (beta) TBA — free during beta
WhatsApp remarketing Available (beta) TBA — free during beta. Template messages carry Meta's cost*

Customer portal (Pro)

With the module active, every repair gets a «Public link» button on its detail page. Clicking it publishes a redacted snapshot to the Cloud — status, device, quote, due date and timeline — and copies the link.

The link is a per-job secret (a random 16-character code): whoever has it sees the page. Send it to the customer by SMS, WhatsApp or print it on the intake slip. The page updates itself when the status changes in the app.

If a quote is pending, the customer accepts or declines it right on the page — the answer flows into the app through the normal quote flow, with a staff notification.

WhatsApp bot (Pro)

The customer texts the shop's WhatsApp number and the bot replies with real job data — nobody picks up the phone. It works on the shop's own number (the WhatsApp Business app on the phone keeps working in parallel).

Honest notes: replies can take up to ~2 minutes (sync cycle); setup uses Meta's official WhatsApp Business Platform and we assist the first shop's onboarding.

Customer writes Bot replies
«is it ready?» or any text Repair status + due date
«quote» / «price» Quote amount + how to answer
YES / accept Approves the pending quote (same flow as at the counter)
NO / decline Declines the quote
Repair code (REP-…) Status of that job
«help», audio or image Escalates to staff with an in-app alert

SMS channel (free in core)

The same automatic assistant, but over SMS — for shops that don't want (or don't yet have) a Meta business account. An Android phone with a SIM stays in the shop acting as the bridge: the app sends and receives SMS through it, over the normal mobile network. It's free and needs no Cloud — everything happens on the shop network.

No Meta accounts, no template approvals, no per-message cost — only the shop SIM's plan (plans with bundled SMS make the marginal cost zero). Setup takes ~5 minutes and the guide walks through it step by step.

Customer-sent diagnostics (Pro)

The oficinaos-diag tool is free for anyone: the customer downloads it, plugs the phone into a PC and it reads battery, screen, sensors and storage.

With the module active, the shop receives those diagnostics right in the app (intake queue), ready to convert into a repair — the customer only needs the shop's code. The AI reports module turns the technical data into plain-language text to hand to the customer.

Certified invoicing (Pro)

The app issues legal tax documents straight from the sale or the delivered repair — invoice-receipt when the customer has a tax number, simplified invoice when they don't. Issuing goes through InvoiceXpress on the shop's own account: the API key stays encrypted on the shop PC and the app talks directly to InvoiceXpress — the OficinaOS Cloud only controls module access and never sees the documents. Portugal only.

Storefront, parts wanted, prices, multi-shop and remarketing (Pro)

Five more Pro modules, all in beta and switched on in the OficinaOS Cloud account. Each has a short guide:

Module What for
Online storefront A public page with the catalogue items you choose — customers reserve and the request shows up in Requests
Parts wanted Ask other OficinaOS shops for a part, or answer their requests
Market prices See the anonymous median of other shops' prices next to yours
Multi-shop A dashboard with revenue and repairs from all your shops
WhatsApp remarketing An automatic message to customers who haven't been back in a while

Common problems

The most frequent situations and how to solve each:

Symptom What to do
SmartScreen warns during install «More info» → «Run anyway» — it's a new file without reputation, not a virus
«Virtualization support not detected» The installer offers both options: enable in BIOS or use portable mode
Windows asks to reboot during install Reboot and run INSTALAR.bat again — normal during Docker setup
Windows Firewall prompt Choose «Allow» on private network
Blank page / won't open Ctrl+F5; make sure the address is http:// (not https://)
«Invalid username or password» Login is by username (admin), not email
PC changed IP and other devices can't connect Update APP_URL in .env (Docker) or delete .env and run INSTALAR.bat again
Port 4000 in use (portable) Change PORT in app\.env
Postgres won't start (portable) Check data\postgres.log; port 5433 in use → change it in data\postgresql.conf and in .env
Uninstall everything PARAR.bat + delete the folder (portable); docker compose down -v + delete the folder (Docker). Warning: deletes the database — back up first

Frequently asked questions

The questions we hear most often:

Question Answer
Do I need internet? Not for daily use — the app runs fully on the shop's network. Only for updates and Pro modules.
Does customer data go to a server? Not by default — the app has no telemetry. With Pro modules, OficinaOS Cloud receives only the data each module needs (e.g. portal pages, messages, reservations and submitted diagnostics), never internal costs or internal notes. The details are in the Cloud privacy policy (cloud.oficinaos.app/privacy).
Does it work on phones? Yes — on the shop's Wi-Fi any device opens it in a browser; outside the shop via remote access (Cloudflare Tunnel).
Does the customer install anything? No — the portal opens as a link in their browser; the bot replies on their normal WhatsApp.
How much does it cost? The full app is free (MIT license). Pro modules are optional subscriptions, in beta.
Multiple shops / branches? Each shop has its own install. With the Multi-shop Pro module, the owner sees revenue and repairs from every shop on one OficinaOS Cloud dashboard.
What if the PC dies? Automatic daily backups; restoring on another PC is copying the backup and rerunning the installer.
Mac or Linux? Yes, via manual Docker — the automatic installer is Windows-only.
Can I import data from another system? Customers and catalog via CSV; contact us for assisted migrations.

Full documentation

This guide covers the essentials. The GitHub repository has the complete technical documentation — detailed install, remote access, mobile devices, backups with off-site copies and how the portable bundle works inside: