Trenova README

The project's README from github.com/emoss08/Trenova. As one markdown file: README.md.

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

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

Tech stack

Layer Technology
API Go 1.26, Gin, gqlgen GraphQL
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 (runs as the ghcr.io/emoss08/gtc image; routing in deploy/gtc/sinks.yaml)
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/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 referenced by CLAUDE.md, Bun notes, product guide

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

Low-resource machines

If a build uses all your RAM and CPU, turn on low-resource mode. Go then compiles one package at a time on one thread and runs its garbage collector harder, golangci-lint and the test runners are capped the same way, hot reload waits 2 s after the last save, and docker-up starts only PostgreSQL, Redis, MinIO and Temporal. Builds take longer, but the machine stays usable.

export LOW_RESOURCE=true               # every task from now on (add it to your shell profile)
task tms:run-watch LOW_RESOURCE=true   # or a single command
task tms:docker-up-minimal             # just the minimal containers, in any mode

On Windows, setx LOW_RESOURCE true sets it for every new terminal.

LOW_RESOURCE_JOBS=2 allows two packages at a time with two threads each; that is a sensible setting on a 16 GB machine. Run only the client app you are working on (pnpm --filter @trenova/web dev) rather than pnpm dev, which starts both.

Run task list to see every available task. Agent-facing engineering guides live in docs/engineering. Operations runbooks, design notes, roadmaps and research live in trenova-documentation.

Self-hosting

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

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:

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.

Trenova (emoss08/Trenova)

Searching Database…

这是什么?Trenova 是一个面向美国中小型卡车运输承运商的开源(Fair Source)运输管理系统,覆盖从订单到收款的完整周期:运单录入、调度、计价、开票、会计、EDI 和 FMCSA 合规。
Trenova 是 SaaS 产品,还是要我自己运行的东西?它是部署在你自己基础设施上的自托管软件(另有单独付费的 Trenova Cloud 服务);源代码本身以 Fair Source 许可证公开,你可以阅读和审计。
怎么让它跑起来?本地开发时,你克隆仓库并使用基于 Task 的工作流;正式部署时,预构建的 Docker 镜像发布在 GHCR(ghcr.io/emoss08/trenova/tms 和 .../client),deploy/ 目录里还提供 Caddyfile 和 Docker Compose 文件。
运行它之前需要安装什么?本地开发需要 Go 1.26+、带 pnpm 的 Node.js、Docker 和 Task 任务运行器;这套技术栈本身还要运行 PostgreSQL、Redis、MinIO 和 Temporal,它们可以用 docker-up 任务启动。
Trenova 可以投入生产使用了吗?还不行——README 明确把它标记为仍在积极开发中的预发布软件,尚不适合生产环境,并建议感兴趣的用户关注发布版本或加入等候名单。
它是为谁打造的?美国的中小型公路卡车运输承运商——它们往往被通常每年要价数万美元的企业级 TMS 平台挡在门外。
这个许可证到底允许我拿它做什么?Trenova 采用 Functional Source License(FSL-1.1-ALv2):你可以使用、自托管和修改它,包括商业用途,但不能把它作为托管服务提供,也不能用它构建竞争产品;每个版本在发布两年后会转为 Apache 2.0。
它支持哪些 EDI 交易类型?Trenova 处理 EDI 204、210、214、990 和 997 合作伙伴工作流,还支持通过 Samsara 做车载远程信息集成、用 PCMILER 做路线规划/里程计算,以及用 AS2 传输。
底层的技术栈是什么?后端是使用 Gin 和 gqlgen GraphQL 的 Go 1.26 API、通过 pgx 访问的 PostgreSQL、用于搜索和实时数据的 Meilisearch 与 Redis,前端是 React 19 + TypeScript + Vite 的 Web 客户端,另由 Gotenberg 和 MinIO/S3 负责文档生成与存储。
实时搜索和同步是怎么工作的?一个名为 GTC 的自定义变更数据捕获工具读取 PostgreSQL 逻辑复制的变更,并投影到 Meilisearch 和 Redis,为整个应用的实时更新和搜索提供动力。
What are similar projects?casdoor, twenty, skillhub, lightspeed, zitadel, WeKnora, jevbox, dockhand
Creator
emoss08
Size
610.5 MB
Stars
330
Age
3y
Commits · 90 Days