Voralis Documentation

Voralis Web — Docker, Vercel & Railway

Alternative deployment paths: containerized VPS deploys, managed serverless on Vercel, and Railway with railway.toml.

Platform overview

PlatformBest forGuide
VPS (PM2)Full control, FFmpeg, workersVPS guide
VPS (Docker)Containers, rollbacksThis page
cPanelShared hostingcPanel guide
VercelFastest deploy, auto SSLThis page
RailwayGitHub deploy + Postgres pluginThis page

VPS with Docker

curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER sudo apt install -y docker-compose-plugin cd /var/www/voralis-web cp deploy/env.example .env.production nano .env.production bash deploy/install-docker.sh

Or manually:

docker compose -f docker-compose.prod.yml up -d --build

With Nginx container (optional):

docker compose -f docker-compose.prod.yml --profile nginx up -d --build

With video worker + Redis:

docker compose -f docker-compose.prod.yml --profile worker up -d --build

Set REDIS_URL=redis://redis:6379 in .env.production for the worker profile.

Vercel

  1. Push code to GitHub/GitLab/Bitbucket.
  2. Import project at vercel.com — root directory: voralis-web.
  3. Framework preset: Next.js.
  4. Add all env vars from deploy/env.example.
  5. Build command: npm run prisma:generate && npm run build (in vercel.json).
  6. Deploy and assign custom domain.

Notes

  • Use Neon or external PostgreSQL.
  • Set NEXT_PUBLIC_APP_URL to your Vercel or custom domain.
  • FFmpeg-heavy features may need external processing on serverless.
  • Set NEXT_STANDALONE=false if needed for Vercel builds.

Railway

  1. Create project at railway.app → Deploy from GitHub.
  2. Set root directory to voralis-web if in a monorepo.
  3. Railway reads railway.toml for build/start commands.
  4. Add PostgreSQL plugin or set NEON_DATABASE_URL.
  5. Add all env vars from deploy/env.example.
  6. Assign custom domain in Railway settings.

Deployment files reference

FilePurpose
DockerfileProduction image (Node 22 + FFmpeg)
docker-compose.prod.ymlProduction stack
ecosystem.config.cjsPM2 for VPS/cPanel
deploy/install-vps.shVPS bare-metal installer
deploy/env.exampleEnvironment template
DEPLOYMENT.mdFull deployment guide in repo root

Security checklist (production)

  • Strong JWT_SECRET, NEXTAUTH_SECRET, ENCRYPTION_KEY
  • HTTPS enabled (Let's Encrypt, AutoSSL, or platform SSL)
  • .env.production never committed to git
  • Database SSL: ?sslmode=require
  • Firewall: only 80/443 public; 3000/6379 localhost only
  • Regular PostgreSQL backups