BackBETA
Carrier TMS
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 file issues on Codeberg 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.
- 1Open 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.
- 2Click “Copy,” then paste into the terminal and press Enter.
curl -sL https://codeberg.org/TDPort/tdport-carrier/raw/branch/main/scripts/rescue.sh | bashTo paste in most Linux terminals: Ctrl + Shift + V. On Mac: ⌘ + V. - 3If 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.
- ✓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.
- !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 file an issue on Codeberg. The terminal output tells us exactly what went wrong.
Install
Requires Node.js 18+ and Git.
1
Clone the repo
git clone https://codeberg.org/TDPort/tdport-carrier.git
2
Install dependencies
cd tdport-carrier && npm install
3
Set up the database
npx prisma db push
4
Build and start
npm run build && npm start
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.