---
title: "Deploy Openfront Travel Agent"
description: "Opensource Travefy alternative based on Next.js and Keystone.js"
category: "Starters"
url: https://railway.com/deploy/openfront-travel-agent
---

# Deploy Openfront Travel Agent

Opensource Travefy alternative based on Next.js and Keystone.js

**[Deploy Openfront Travel Agent on Railway](https://railway.com/template/openfront-travel-agent)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/openfront-travel-agent/manifest.json

- **Creator:** Openship
- **Category:** Starters

## Template content

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### openfront-travel-agent

- **Source:** https://github.com/openshiporg/openfront-travel-agent
- **Start command:** `npm run migrate && next start`
- **Public domain:** Yes

## Buckets

- **Storage**

## Documentation

# Deploy and Host Openfront Travel Agent with Railway

Openfront Travel Agent is a self-hostable back office and client site for independent travel advisors and small host agencies. Advisors turn inquiries into proposals, book supplier components, collect client payments, and track supplier commission through to receipt.

## About Hosting Openfront Travel Agent

This template provisions the application from [its GitHub repository](https://github.com/openshiporg/openfront-travel-agent), PostgreSQL, and a private native Railway Bucket named `Storage`. The database starts empty; no demo records or reusable credentials are included. After deployment, open `/dashboard/init` to create the first admin, then load the complete or basic setup template from the sidebar.

`DATABASE_URL` references Postgres and the five `S3_*` variables reference the Storage bucket. Generated per deployment: `SESSION_SECRET`. Other references: `SMTP_STORE_LINK`. Defaults: `NODE_ENV=production`, `PUBLIC_SIGNUPS_ALLOWED=false`.

Optional and blank until you configure the provider: `NEXT_PUBLIC_STRIPE_KEY`, `SMTP_FROM`, `SMTP_HOST`, `SMTP_PASSWORD`, `SMTP_PORT`, `SMTP_USER`, `STRIPE_PUBLISHABLE_KEY`, `STRIPE_SECRET_KEY`, `STRIPE_WEBHOOK_SECRET`.

The app gets a Railway-generated public domain on port 8080. No custom domains are included.

### Admin Dashboard
A trip workspace covers overview, travelers, proposals, components, itinerary, payments, client funds, commissions, documents, and tasks. Staff also work from Inquiries, Approvals, Commissions boards, Clients and travelers, Suppliers, Invoices, Tasks, Payment providers, and Settings.

### Client Pages
Visitors browse destinations and send an inquiry. Clients open a private proposal link, choose an option and accept it with their name, view the itinerary, and pay invoices by card through Stripe. A booking lookup finds a trip by email and code.

### Trips, Proposals & Bookings
- Proposals with options and line items that become trip components on acceptance.
- Supplier components (hotels, cruises, tours, flights, transfers, rail, insurance) with confirmation numbers and payment schedules.
- Day-by-day itineraries.

### Client Funds & Commissions
- Client invoices and a per-trip client funds ledger that can never go below zero.
- Expected, invoiced, received, short-paid, and written-off supplier commission, with an append-only advisor commission ledger.
- Refunds to the original card payment, with manager approval above a threshold.

## Common Use Cases

- Trips, Proposals & Bookings
- Client Funds & Commissions
- Inquiry to Itinerary

## Dependencies for Openfront Travel Agent Hosting

The app needs a PostgreSQL database and S3-compatible object storage. Both are provisioned by this template.

### Deployment Dependencies

- [openfront-travel-agent on GitHub](https://github.com/openshiporg/openfront-travel-agent)
- [Full README and onboarding instructions](https://github.com/openshiporg/openfront-travel-agent#readme)
- [Documentation](https://docs.openship.org/docs/openfront/travel-agent)
- [Railway Buckets](https://docs.railway.com/guides/storage-buckets)

### Implementation Details

Next.js and Keystone 6 with a GraphQL API, Prisma, and PostgreSQL. Migrations run at start (`npm run migrate && next start`). Payments, email, and other external providers need their own operator configuration; this template does not activate them. For card payments, point a Stripe webhook at `/api/integrations/payment/pp_stripe/webhook`.

## Why Deploy Openfront Travel Agent on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Openfront Travel Agent on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [Openfront Gym](https://railway.com/deploy/openfront-gym) — Opensource Mindbody alternative based on Next.js and Keystone.js
- [open-excalidraw](https://railway.com/deploy/open-excalidraw) — Self-hostable collaborative drawing built on Excalidraw
- [Next.js + Prisma + PostgreSQL Starter](https://railway.com/deploy/nextjs-prisma-postgres) — Deploy a Next.js app with Prisma ORM and PostgreSQL in one click.

Open this page in a browser: https://railway.com/deploy/openfront-travel-agent
