Deploy dossier
Self-hosted AI job search: CVs, cover letters, applications
Just deployed
/var/lib/postgresql/data
dossier
Just deployed
/data
Deploy and Host Dossier on Railway
Dossier is a self-hosted job search workspace: one career profile, AI-tailored resumes and cover letters written only from facts in your profile, and every application tracked from draft to offer. Your data stays in your own PostgreSQL database, with the AI model you choose.
About Hosting Dossier
This template deploys the official Dossier image with a private Postgres 18 service and a volume at /data for nightly backups and generated PDFs. A start command hashes the plain DOSSIER_LOGIN_PASSWORD into the argon2id DOSSIER_PASSWORD Dossier expects (or keeps a precomputed argon2id: hash if you set one). Generate a public domain on the Dossier service so HTTPS sign-in and optional Google/MCP redirects resolve correctly. Give the app enough memory for Chromium PDF rendering (about 1 GB).
Common Use Cases
- Keep one private career profile and export tailored resumes and cover letters as PDFs
- Paste a job posting, see profile gaps (without invented experience), and track applications on a board
- Search postings and score them with your AI provider; optional daily job agent for review-only drafts
Dependencies for Dossier Hosting
- Postgres 18 — profile, applications, and drafts
- Persistent volume —
/datafor nightly backups and download zips - Public HTTPS domain — required for sign-in and
DOSSIER_PUBLIC_URL - Login password — auto-generated
DOSSIER_LOGIN_PASSWORD; save it after deploy - AI provider (optional at deploy) — set in Settings or via
DOSSIER_AI_*for tailored drafts
Deployment Dependencies
- Dossier — product site
- AienTech/dossier — source (AGPL-3.0)
- Image —
ghcr.io/aientech/dossier:v1.14.0 - Environment variables
- Choosing an AI provider
- Installation wiki
Implementation Details
| Service | Role |
|---|---|
| dossier | Web UI and API; health at /api/health; volume /data |
| postgres | Private Postgres 18 (dossier / dossier) |
First login
- After deploy, open the dossier service Variables tab and copy
DOSSIER_LOGIN_PASSWORD. - Generate a Railway domain on dossier if one is not already attached.
- Open the public URL and sign in with that password (single-user; no accounts).
- In Settings → AI provider, pick a hosted model (or OpenAI-compatible URL) and add a key — or set
DOSSIER_AI_PROVIDER/DOSSIER_AI_KEY/DOSSIER_AI_MODELas variables and redeploy. - Import or build your profile, then paste a posting to create an application.
Password: leave DOSSIER_PASSWORD empty so the start command hashes DOSSIER_LOGIN_PASSWORD on each boot. To use a precomputed hash instead, set DOSSIER_PASSWORD to the argon2id:… line from docker run --rm -it ghcr.io/aientech/dossier hash-password. Changing either signs existing sessions out.
Sizing: PDF printing uses bundled Chromium; plan for roughly 1 GB RAM on the app service. Nightly backups run at 03:00 in TZ and are kept for DOSSIER_BACKUP_RETENTION_DAYS (default 14).
Volume writes: RAILWAY_RUN_UID=0 so the process can write to the mounted /data volume (the upstream image runs as node, which cannot create /data/backups on a root-owned mount). PORT=3000 keeps the public domain aligned with the container listen port.
Optional: Google Gmail/Calendar via DOSSIER_GOOGLE_CLIENT_ID / DOSSIER_GOOGLE_CLIENT_SECRET or Settings → Google. Job sources (JSearch, Adzuna, FreeHire) via Settings or the DOSSIER_JOBS_* / key variables. Telemetry defaults to off.
Why Deploy Dossier 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 Dossier 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
PGDATA
PGPORT
POSTGRES_DB
POSTGRES_USER
SSL_CERT_DAYS
RAILWAY_DEPLOYMENT_DRAINING_SECONDS
TZ
PORT
DOSSIER_SECRET
RAILWAY_RUN_UID
DOSSIER_PASSWORD
DOSSIER_TELEMETRY
DOSSIER_LOGIN_PASSWORD

