Skip to content

Latest commit

 

History

3,686 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trenova logo

Trenova: Transportation Management System for Trucking Carriers

Source-available trucking TMS written in Go, PostgreSQL, GraphQL, and React.
Dispatch, rating, billing, accounting, EDI, FMCSA compliance, and document automation for asset-based carriers.

Website · Features · Pricing · Self-hosting · Discussions · Discord

TMS tests Client tests Latest release Go 1.26 License: FSL-1.1-ALv2

Important

Trenova is pre-release software under active development. It is not yet suitable for production use. Follow releases or join the waitlist for updates.

What is Trenova?

Trenova is a transportation management system (TMS) for small and mid-sized over-the-road carriers in the United States. Enterprise TMS platforms often cost more than $50,000 a year, which puts them out of reach for the carriers that make up most of the industry. Trenova aims to close that gap with a flat-priced, self-hostable TMS that covers the full order-to-cash cycle: shipment entry, dispatch, driver assignment, rating, billing, settlement, accounting, and compliance.

The source is public under the Fair Source Functional Source License, so carriers and integrators can read the code, audit it, and run it on their own infrastructure.

Features

  • Dispatch and planning: shipment lifecycle, stop sequencing, driver and equipment assignment, exception management.
  • Rating and accessorials: formula-based rate calculation, fuel surcharge, detention and accessorial rules.
  • Billing and invoicing: billing readiness checks, invoice generation, adjustments, and cash application.
  • Accounting: general ledger, close workflows, and settlement / driver pay.
  • Document automation: BOL, POD, rate confirmation, invoice, and weight-ticket extraction and templated document generation.
  • Compliance: FMCSA-oriented compliance records, driver certification tracking, and audit trails.
  • EDI and integrations: EDI 204 / 210 / 214 / 990 / 997 partner workflows, telematics (Samsara), PC*MILER, AS2.
  • Search and real-time: Meilisearch-backed search and Redis-backed real-time updates fed by change data capture.
  • Identity and access: OIDC sign-in, role-based permissions, and per-organization tenancy.

See the full capability list at trenova.app/features.

Tech stack

Layer Technology
API Go 1.26, Gin, gqlgen GraphQL, OpenAPI
Database PostgreSQL via pgx, SQL-first migrations
Search and cache Meilisearch, Redis (JSON and Streams)
Change data capture GTC: a Go PostgreSQL logical-replication connector that projects rows into Meilisearch and Redis
Web client React 19, TypeScript, Vite, GraphQL
Documents Gotenberg (PDF), MinIO / S3-compatible object storage
Deployment Docker images on GHCR, Caddy, Docker Compose

Repository layout

services/tms          Core TMS API (Go)
services/gtc          PostgreSQL change-data-capture connector (Go)
services/samsara-sim  Samsara telematics simulator for local development
services/edi-partner-sim  EDI trading-partner simulator
shared/               Shared Go packages (money, geo, dispatch planner, PC*MILER, AS2, ...)
client/apps/web       Web application (React)
client/apps/dash      Admin dashboard (React)
deploy/               Dockerfiles, Caddyfile, observability stack
docs/                 Engineering guides and operations runbooks

Quick start (local development)

Prerequisites: Go 1.26+, Node.js with pnpm, Docker, and Task.

git clone https://github.com/emoss08/trenova.git
cd trenova
cp .env.example .env

# Start PostgreSQL, Redis, MinIO, Meilisearch, and Gotenberg
docker compose -f docker-compose-local.yml up -d

# Run the TMS API
task tms:run

# Run the web client
cd client && pnpm install && pnpm dev

Run task list to see every available task. Engineering guides live in docs/engineering and operations runbooks in docs/operations-guides.

Self-hosting

Container images are published to GitHub Container Registry on every release:

  • ghcr.io/emoss08/trenova/tms
  • ghcr.io/emoss08/trenova/client

Deployment files (Dockerfiles, Caddyfile, observability) are in deploy/. See trenova.app/self-hosted for the self-hosting overview. Trenova Cloud production servers use a separate private deployment repository that pins released image tags.

Contributing

Trenova is Fair Source for transparency and community review, but external code contributions are not accepted at this time so the core team can keep the architecture and roadmap consistent. You can still help by:

  • Reporting reproducible bugs through GitHub Issues
  • Proposing features and asking questions in Discussions or on Discord
  • Reporting deployment and compatibility findings
  • Reporting security vulnerabilities privately per SECURITY.md

See CONTRIBUTING.md for details.

License

Trenova is licensed under the Functional Source License, Version 1.1, Apache 2.0 Future License (FSL-1.1-ALv2). You may use, self-host, and modify Trenova, including in commercial environments. You may not offer it as a hosted service or use it to build a competing product. Each release converts to the Apache 2.0 license two years after publication.