
Deploy Reqcore
Open-source, self-hosted Applicant Tracking System (ATS)
reqcore
Just deployed
Just deployed
/var/lib/postgresql/data
Bucket
Bucket
Just deployed
Deploy and Host Reqcore on Railway
Reqcore is an open-source, self-hosted Applicant Tracking System (ATS). It gives you full data ownership, transparent AI, and no per-seat pricing — with a modern stack (Nuxt 4, Vue 3, PostgreSQL 16) replacing legacy recruiting platforms.
About Hosting Reqcore
Deploying Reqcore on Railway gives you a fully managed ATS without maintaining your own servers. Railway provisions a PostgreSQL database, an S3-compatible storage bucket for candidate documents, and the Reqcore application container — all wired together automatically. The Dockerfile uses a multi-stage Node 20 Alpine build, and database migrations are applied automatically on each deploy using PostgreSQL advisory locks, making it safe for zero-downtime rolling updates. Environment variables like DATABASE_URL, S3 credentials, and authentication secrets are configured once and injected at runtime. Reqcore validates all environment variables at startup via Zod, so misconfigurations fail fast with clear error messages.
Common Use Cases
- Replace expensive SaaS ATS platforms — Run an unlimited-seat ATS for your team without per-seat pricing from vendors like Greenhouse, Lever, or Ashby.
- Self-host candidate data in your region — Keep all applicant data on infrastructure you control, meeting data residency and privacy requirements.
- Power a public job board with SEO-friendly pages — Publish open positions with structured data and customizable application forms, all served from your own domain.
Dependencies for Reqcore Hosting
- PostgreSQL 16 — Primary database for all application data (organizations, jobs, candidates, applications, auth).
- S3-compatible storage — Object storage for candidate documents (resumes, cover letters). Uses Railway Storage Buckets in production or MinIO for local development.
Deployment Dependencies
- Railway PostgreSQL — Managed Postgres with automatic backups.
- Railway Storage Buckets — S3-compatible object storage for file uploads.
- Better Auth — Authentication framework with organization-based multi-tenancy.
- Drizzle ORM — Type-safe PostgreSQL ORM with auto-generated SQL migrations.
Implementation Details
Railway configuration (railway.json):
{
"deploy": {
"preDeployCommand": "npm run db:migrate && npm run db:seed",
"startCommand": "npm run start"
}
}
Required environment variables on Railway:
DATABASE_URL = ${{Postgres.DATABASE_URL}}
S3_ENDPOINT = ${{Bucket.ENDPOINT}}
S3_ACCESS_KEY = ${{Bucket.ACCESS_KEY_ID}}
S3_SECRET_KEY = ${{Bucket.SECRET_ACCESS_KEY}}
S3_BUCKET = ${{Bucket.BUCKET}}
S3_REGION = ${{Bucket.REGION}}
S3_FORCE_PATH_STYLE = false
BETTER_AUTH_SECRET =
BETTER_AUTH_URL = https://${{RAILWAY_PUBLIC_DOMAIN}}
Why Deploy Reqcore 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 Reqcore 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