Deploy Openfront Travel Agent

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

Deploy Openfront Travel Agent

/var/lib/postgresql/data

Just deployed

Storage

Bucket

Just deployed

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, 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

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.


Template Content

More templates in this category

View Template
Openfront Gym
Opensource Mindbody alternative based on Next.js and Keystone.js

Openship
0
View Template
open-excalidraw
Self-hostable collaborative drawing built on Excalidraw

Prateek Mohanty
5
View Template
Next.js + Prisma + PostgreSQL Starter
Deploy a Next.js app with Prisma ORM and PostgreSQL in one click.

blueorange
0