No Description

Bernt Christian Egeland 0cfce9c1db routes 6 months ago
.devcontainer ca63f745d1 Improved stripe config and fix subscription feature gating (#26) 7 months ago
.github 35b1262f1c clou 7 months ago
.vscode 53918b68c4 first commit 7 months ago
assets 53918b68c4 first commit 7 months ago
data 53918b68c4 first commit 7 months ago
messages 255f048e7d Add exclude checkbox to quotes and autosave for quotes & work orders (#30) 7 months ago
prisma 1db6cdefc3 migration 7 months ago
public 57c8db0970 mobile serviceworker (#32) 7 months ago
scripts 53918b68c4 first commit 7 months ago
src 0cfce9c1db routes 6 months ago
.dockerignore 53918b68c4 first commit 7 months ago
.env.example 827a5c4152 env-example 7 months ago
.gitignore ece421a661 Add i18n support with next-intl (#20) 7 months ago
Dockerfile 4eef315007 version 7 months ago
LICENSE 53918b68c4 first commit 7 months ago
README.md 8b33dae81c setup instructions 7 months ago
biome.json 853b1b8978 fix lint issues 7 months ago
components.json 53918b68c4 first commit 7 months ago
docker-compose.cloud.yml 5ca534cc97 volume name 7 months ago
docker-compose.yml ae198c8787 container path 7 months ago
eslint.config.mjs 53918b68c4 first commit 7 months ago
init-db.sh 8ebf2eaa10 prisma db push 7 months ago
next.config.ts ece421a661 Add i18n support with next-intl (#20) 7 months ago
package-lock.json 7c495a837d Add Passkey (WebAuthn) authentication (#21) 7 months ago
package.json 7c495a837d Add Passkey (WebAuthn) authentication (#21) 7 months ago
postcss.config.mjs 53918b68c4 first commit 7 months ago
tsconfig.json 53918b68c4 first commit 7 months ago
vitest.config.ts 50e27b1302 Add auth & multi-tenancy test suite (#5) 7 months ago

README.md


<a href="https://github.com/sinamics/torqvoice">
    <img src="assets/logo/torqvoice_app_logo_padding.png" alt="Torqvoice Logo" width="120" height="120">
</a>

Torqvoice, modern workshop and service management.
<br />
<br />
<a href="https://github.com/sinamics/torqvoice/issues/new?labels=bug&template=bug_template.yml&title=%5BBug%5D%3A+">Bug Report</a>
·
<a href="https://github.com/sinamics/torqvoice/issues/new?labels=enhancement&template=feature_request.yml&title=%5BFeature+Request%5D%3A+">Feature Request</a>


Torqvoice is a self-hosted workshop management platform built for automotive service businesses. It replaces scattered tools with a single place to manage customers, vehicles, service records, quotes, invoicing, inventory, billing all with a clean modern UI.

Installation

For full setup instructions, see the Installation Guide.

Quick Start with Docker Compose

Create a docker-compose.yml:

services:
  app:
    image: ghcr.io/torqvoice/torqvoice:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://torqvoice:torqvoice@db:5432/torqvoice
      - BETTER_AUTH_SECRET=change-me-run-openssl-rand-hex-32
      - NEXT_PUBLIC_APP_URL=http://localhost:3000
    volumes:
      - uploads:/app/data/uploads
    depends_on:
      db:
        condition: service_healthy

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    volumes:
      - postgres-data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: torqvoice
      POSTGRES_PASSWORD: torqvoice
      POSTGRES_DB: torqvoice
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U torqvoice"]
      interval: 5s
      timeout: 5s
      retries: 5

volumes:
  postgres-data:
  uploads:
# Generate a proper auth secret, and replace the placeholder in the compose file
openssl rand -hex 32

# Start everything
docker compose up -d

Open http://localhost:3000 and create your first account.

Features

  • Multi Company Support — manage multiple workshops with a single login
  • Vehicles & Customers — full service history per vehicle, linked to customer profiles
  • Work Orders — status-driven workflow (pending, in progress, waiting parts, ready, completed)
  • Quotes & Invoicing — PDF generation, customizable templates, public shareable invoice links
  • Inventory — parts stock tracking with suppliers and low-stock alerts
  • Billing & Payments — payment tracking with paid/partial/unpaid status
  • Reports — revenue, service, customer, and inventory analytics with charts and CSV export
  • Email — send quotes and invoices with PDF attachments
  • Custom Fields — extend service records and quotes with your own data fields
  • Team Management — organization-based roles (owner, admin, member)
  • Company Branding — logo, invoice colors, fonts, and layout customization
  • Global Search — search across all entities via command palette
  • Dark Mode — full dark mode support

Environment Variables

Variable Required Description
DATABASE_URL Yes PostgreSQL connection string
BETTER_AUTH_SECRET Yes Auth secret (openssl rand -hex 32)
NEXT_PUBLIC_APP_URL Yes Application URL

License

Elastic License 2.0 (ELv2)