Loading live data…
Back

Carrier TMS

BETA

Run your fleet. Free forever. Open source.

AGPL-3.0  ·  TypeScript + Next.js + SQLite  ·  Self-hosted on your own machine

Beta software — under active development
The Carrier TMS is unstable and still in progress. Features can change or break between releases. Don't use it as your sole system of record yet — keep backups, expect rough edges, and please email support@tdport.com when you hit them.

Screenshot coming soon

What's included

Dispatch
Full load lifecycle — posted, assigned, in transit, delivered.
Driver & Asset Management
Driver profiles, CDL tracking, assets, DVIRs, and HOS compliance.
Compliance
Document expiry alerts, accident register (49 CFR 390.15), DQ files.
Accounting
Invoicing, driver settlements, expense tracking, AR aging, P&L reports.
Documents
PDF generation, file uploads, compliance doc hub — per load, driver, and asset.
Fuel & IFTA
Fuel cost tracking by jurisdiction. IFTA report foundation.

How it works

The app runs on your own machine — your data never leaves your server. When you're ready, connect to the TDPort exchange to access the load board, rate intelligence, and verified shippers.

1
Install
Run on your server, laptop, or VPS. SQLite — no database to manage.
2
Set up your company
Add drivers, trucks, and run dispatch from day one.
3
Connect to the exchange
Opt in to share anonymized rate data and gain access to the load board.
Something broken? Run the rescue command
If your Carrier TMS won't load, shows “failed to load carrier profile,” or any “column does not exist” error, the fix is usually one command. It's safe — your database is backed up before anything is changed, and nothing is deleted.
  1. 1
    Open a terminal on the computer where your TMS is installed.
    • Ubuntu desktop: press Ctrl + Alt + T, or click the Activities menu and search “Terminal.”
    • Mac: press + Space, type “Terminal,” press Enter.
    • Logged in via SSH from another computer: you're already in a terminal. Continue to step 2.
  2. 2
    Click “Copy,” then paste into the terminal and press Enter.
    curl -sL https://duskforge.ai/TDPort/tdport-carrier/raw/branch/main/scripts/rescue.sh | bash
    To paste in most Linux terminals: Ctrl + Shift + V. On Mac: + V.
  3. 3
    If it asks for your password, type it and press Enter.
    You won't see letters as you type — that's how Linux password prompts work, keep typing and press Enter when done.
  4. Wait about a minute. When you see “✅ Service is healthy,” you're fixed.
    Refresh your browser and the TMS should load normally again. All your data is intact — a database snapshot was saved before any changes.
  5. !
    Still not working?

    If the database itself is corrupted, use the full catastrophic recovery guide — it reinstalls from scratch and restores your latest backup.

    Otherwise, take a screenshot of the terminal output and email it to support@tdport.com. The terminal output tells us exactly what went wrong.

Install

Requires Node.js 20+ and Git, on Linux or macOS — Windows users, see the WSL2 steps below. Running it as a permanent service (auto-restart, in-app updates, backups)? Follow the production guide.

1
Clone the repo
git clone https://duskforge.ai/TDPort/tdport-carrier.git
2
Install dependencies
cd tdport-carrier && npm install
3
Create your config — then open .env and set NEXTAUTH_SECRET to the random value this prints
cp .env.example .env && openssl rand -hex 32
4
Set up the database
npx prisma db push
5
Build and start
npm run build && npm start

Windows (WSL2)

The TMS server runs on Linux. On Windows 10/11, run it inside WSL2 — Microsoft's built-in Linux layer — and use it from your normal browser.

1
Open PowerShell as Administrator and install Ubuntu (reboot if it asks, then pick a username)
wsl --install -d Ubuntu-24.04
2
Open the Ubuntu app from the Start menu, then install Git and Node.js 20
sudo apt-get update && sudo apt-get install -y git curl && curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs
3
Run the install steps above inside Ubuntu, then open the TMS in your normal Windows browser
http://localhost:3200

Good to know: closing the Ubuntu window stops the TMS unless you set it up as a service (recent WSL Ubuntu ships with systemd, so the production guide's service steps work as-is — if systemctl complains, add [boot] systemd=true to /etc/wsl.conf and run wsl --shutdown once). After restarting Windows, open Ubuntu again to bring the TMS back up. WSL2 support is beta — tell us how it goes at support@tdport.com.

Free forever — no catch
The Carrier TMS is 100% free and open source. TDPort earns revenue from the exchange — a small per-load fee when you book loads through the platform. The TMS itself costs nothing.