When self-hosting is a good fit
Self-host when you need to control where data lives, who can sign in, and which outside services the app talks to. Common reasons are a company or school that wants its own resume tool, strict data-residency rules, or a personal server you already run. If you only need a resume for yourself, the hosted app is less work.What a deployment needs
The production image runs a single Node.js process on port 3000 that serves the app, the API and the MCP server. Around it you need:- PostgreSQL for accounts, documents and applications. Database migrations run automatically when the server starts.
- File storage for photos and uploads: a local folder, any S3-compatible service, or Vercel Blob.
- SMTP for account emails. Without it, emails are written to the server log, which is fine for testing.
- Optional: Redis and an encryption secret. Both are needed for saved AI providers and the assistant. Core resume features work without them.
- Optional: single sign-on through Google, GitHub, LinkedIn or a custom OpenID Connect provider.
Ways to deploy
Docker
The main path: Docker Compose with PostgreSQL.
Kubernetes
Run the same image in a cluster.
Vercel
Deploy the frontend and backend as Vercel Services.
Examples
Ready-made setups with reverse proxies and storage.