Features
What dmsforall does for your garage
One browser application for the workshop and the counter. It is alpha software: the last section lists what it does not do.
The workshop
- Clients and vehicles
Client records, contacts, vehicles with their owner history, and a global search.
- Repair orders
Labour, parts and fee lines, statuses from planned to closed, and supplementary quotes that the client accepts or refuses line by line.
- Appointments and courtesy cars
Appointments, and a list of courtesy cars.
- Time clocking
Technicians clock their time on repair orders from a shared workshop terminal protected by a PIN, or from their own account.
Invoicing and payments
- Four kinds of document
Quotes, purchase orders, invoices and credit notes, plus down-payment invoices. Numbers come from a continuous series for each year.
- Swiss QR-bill
Invoices carry a QR reference or a creditor reference, with PDF output. VAT is calculated line by line, and amounts are stored as whole centimes.
- Locked once issued
An issued invoice is never edited. A credit note corrects it, and a receptionist can issue one only up to a ceiling that management sets.
- Payments
Cash, card, bank transfer, QR-bill, TWINT, compensation and leasing, recorded per invoice, partial payments included.
- Reminders and export
Automatic e-mail reminders for overdue invoices, and a WinBIZ export of invoices and payments.
Parts, tyres and cars
- Parts and stock
Articles, stock per site, movements that keep who and when, reservations on repair orders, supplier orders and supplier invoices.
- New and used car sales
Vehicle stock, sales files, trade-ins, and the confirmation of a credit or a leasing.
- Tyre storage
Seasonal tyre sets in storage, flagged for recall when they have not moved for a while.
- Import from your current system
An import of Microsoft Access or dBase/FoxPro archives, with a plan to review before anything is written. Tested with archives exported from Auto-i.
Running it
- Nine roles
Management, accounting, counter, sales, workshop manager, technician, parts, workshop terminal and technical administrator. One rights matrix, checked by the API on every request.
- Garages kept apart
One installation can serve several garages. PostgreSQL row-level security keeps their data separate.
- An open API
The API describes its endpoints in OpenAPI, and the web interface calls that API.
- One Docker stack
Caddy, web, API, worker, PostgreSQL and Redis, started with one command. An optional profile makes encrypted nightly backups.
What it does not do
- Not in this version
Bank statement reconciliation (camt.054), SMS reminders, accounting exports other than WinBIZ, and reliable margins per part, because stock valuation by FIFO is decided but not yet implemented.
- No second factor for garage staff
Two-factor sign-in is not available for garage accounts yet. Encryption at rest, off-site backups and the server itself are the operator's job.
- Proven only in part
The complete install has not been run end to end on a clean machine with a real domain, and a complete restore of a backup has not been proven yet.
- Alpha
The data model, the configuration variables and the screens can still change between releases.
- French, German and Italian only
The interface exists in these three languages. The documentation is in English.
- Designed for Switzerland
Not designed for other countries.
- No tax or legal guarantee
Have invoices, VAT figures and accounting exports checked by a fiduciary.
- Third-party connectors
Connectors to outside services need their own licences or accounts.
Get dmsforall running
The first garage account is created with a command that is still being delivered. See Set up your first garage.
$ git clone https://github.com/selfhostr/dmsforall.git && cd dmsforall
$ cp .env.example .env # optional for a first try
$ docker compose up -d # then open http://localhost:8080