Railway Deployment Guide
Overview
SWIRL Enterprise deploys as a one-click template on Railway. The template creates a complete, private SWIRL deployment in your own Railway workspace, on your own subscription. Your sources, license, and API keys stay under your control.
The template deploys seven services, wired together over Railway's private network:
- swirl - the SWIRL application: search, AI answers, and the admin UI. The only service exposed publicly (HTTPS).
- postgres - configuration and search history.
- redis - task queues and caches.
- qdrant - vector storage for the Semantic Cache and version clustering.
- tika - document text extraction and OCR.
- seaweedfs - private object storage for cached document content.
- ollama - local model service for supporting tasks.
Postgres, Qdrant, and SeaweedFS persist to Railway volumes, so configuration and cached content survive restarts and redeploys.
Prerequisites
- A SWIRL Enterprise license. Request one at swirlaiconnect.com/deploy - the license arrives by email as a block of JSON.
- A Railway account on the Pro plan, with a payment method. Infrastructure runs on your Railway subscription.
- Recommended: an Anthropic API key for fast AI answers with Claude. Other providers (OpenAI, Azure OpenAI, Gemini, and more) can be configured after deploy in the admin UI.
Deploy
Start the template
Open railway.com/deploy/swirl-enterprise and click Deploy Now. Sign in to Railway if prompted.
Fill in the prompts
SWIRL_LICENSE- paste the license JSON from your license email, exactly as received.ADMIN_EMAIL- the email address for the SWIRL admin account.ANTHROPIC_API_KEY- optional; paste a key to enable AI answers with Claude immediately.
Everything else - database passwords, storage keys, the admin password - is generated automatically and stored as encrypted variables in your workspace.
Wait for the stack
Railway builds all seven services; the swirl service reports healthy once schema setup, seeding, and workers are up - typically a few minutes. When it is green, open the service's public URL.
First Steps
Log in
Username is admin. The generated password is in the swirl service's variables: open the swirl service in Railway, go to the Variables tab, and reveal ADMIN_PASSWORD.
Run a search
The deployment ships with working public sources - web search, arXiv, and the SWIRL documentation - so search works immediately. Toggle AI answers in the search UI for a grounded answer with citations.
Connect your sources
Add SearchProviders for Microsoft 365, Google Workspace, databases, and enterprise systems - see the SearchProvider Guide, Microsoft 365 Guide, and Google Workspace Guide.
Operations
Where data lives
Configuration and history live in Postgres, cached document vectors in Qdrant, and cached document content in SeaweedFS - each on a Railway volume in your workspace. Redeploying the swirl service does not affect them.
Logs
Each service streams logs in the Railway dashboard. SWIRL's application and worker logs are also available in the admin UI.
Changing AI providers
Manage AI providers in the SWIRL admin UI at any time - activate additional providers, change models, or set a different default for AI answers. See the AI Search & RAG Guide.
Cost
Railway bills your own subscription by actual resource usage, per second. As of August 2026 (see Railway pricing for current rates):
- Pro plan - $20/month per workspace, unlimited seats, includes $20 of monthly usage.
- Memory - about $10 per GB per month ($0.00000386 per GB-second).
- CPU - about $20 per vCPU per month ($0.00000772 per vCPU-second), billed only while used.
- Volumes - about $0.15 per GB per month; egress $0.05 per GB.
Resident memory is the largest line: the SWIRL application and the Ollama model service hold models in memory. A small-team deployment typically runs in the low hundreds of dollars per month all-in; the Railway dashboard shows live usage per service. Teams using an external AI provider for answers can reduce the Ollama service's footprint - OLLAMA_KEEP_ALIVE already unloads idle models by default.
Scaling
There is no server to provision and no instance types to choose. Every service scales vertically on demand - up to 1,000 vCPU and 1 TB of memory per service on the Pro plan - and you pay only for what is actually used. For sustained heavy workloads (large document caches, many concurrent users), the stack simply grows into the load; watch per-service usage in the Railway dashboard. Horizontal scaling with replicas (up to 42 per service on Pro) and custom Enterprise limits are available for the largest deployments.
Troubleshooting
License errors
If the application logs report an invalid license, re-check that SWIRL_LICENSE contains the complete JSON exactly as emailed - including the outer braces - then redeploy the swirl service.
Search or AI answers unavailable
Search and AI answers require a valid license. AI answers additionally require an active AI provider - paste an ANTHROPIC_API_KEY variable on the swirl service and redeploy, or configure a provider in the admin UI.
Service unhealthy
Check the swirl service's deploy logs in Railway. The healthcheck endpoint is /swirl/health/celery/ - it passes only when the application and its workers are running.
For anything else, see Troubleshooting or contact SWIRL support.