Deploy NOMAD
Self-hosted collaborative travel planning with durable SQLite storage.
Just deployed
/app/data
Deploy and Host TREK on Railway
TREK is a self-hosted collaborative travel planner with interactive maps, itineraries, budgets, packing lists, reservations, documents, journals, offline PWA support, OIDC, passkeys, plugins, and optional AI-assisted booking import. This Railway template runs TREK as a single service with durable SQLite and upload storage.
About Hosting TREK
TREK serves its web client, API, and WebSocket endpoint from port 3000. Its SQLite database, encryption state, logs, plugins, backups, and uploaded files must survive redeployments. Railway supports one volume per service, so this template's container links /app/uploads into /app/data/uploads and mounts one persistent volume at /app/data.
The template generates an encryption key and initial administrator password, configures Railway's HTTPS origin, trusts one proxy hop, and checks /api/health before accepting a deployment.
Common Use Cases
- Plan trips collaboratively with live updates
- Track budgets, reservations, packing lists, and documents
- Maintain a travel journal and visited-country atlas
- Run a private PWA with passkeys or OIDC single sign-on
- Extend trip planning with TREK plugins and MCP tools
Dependencies for TREK Hosting
- TREK 3.4.1
- Node.js 24 runtime
- SQLite through
better-sqlite3 - Persistent Railway volume at
/app/data - HTTPS and WebSocket routing on port
3000
Deployment Dependencies
- TREK upstream repository
- Railway-compatible source fork
- TREK documentation
- TREK live demo
- AGPL-3.0 license
Implementation Details
The service uses APP_URL and ALLOWED_ORIGINS from its Railway public domain, FORCE_HTTPS=true, and TRUST_PROXY=1. ENCRYPTION_KEY, ADMIN_PASSWORD, and the persistent volume are generated during template deployment. The administrator credentials are used only to initialize an empty installation.
Uploaded files are stored under /app/data/uploads; the application still sees its upstream path at /app/uploads through a container symlink. This is required because Railway currently permits one mounted volume per service.
The template pins ghcr.io/monotykamary/nomad:3.4.1. Future template revisions can advance that tag after validation; database and upload contents remain on the volume during redeployments.
Why Deploy TREK on Railway?
Railway provides HTTPS, WebSocket routing, persistent volumes, health checks, deployment logs, backups, and restart management without requiring a separate database service. TREK remains self-hosted while Railway handles the underlying application runtime.
Template Content
