CVRise is an open-source resume + cover letter builder with a real-time editor, template-based previews, PDF export, and AI-powered workflows.
Stack
- Client: Next.js (App Router) + React + TypeScript + Tailwind CSS
- Server: FastAPI + SQLAlchemy + Alembic + MySQL
- AI (optional): Ollama (self-hosted) and/or API keys for providers configured on the server
- Docker + Docker Compose
- Make (optional, but recommended)
git clone http://github.com/dannyyol/cvrise.git
cd cvrise
make devURLs
- App: http://localhost:3000
- API docs: http://localhost:8000/docs
- Node.js >= 20.9 (see client/package.json)
- pnpm (recommended) or npm
- Python 3.12+
- A MySQL database
cp server/env.example server/.env
cp client/env.example client/.envUpdate server/.env to point to your MySQL instance.
If you want to run only MySQL via Docker:
docker compose --profile dev up -d dbThen set:
DATABASE_URL=mysql+aiomysql://cvrise:cvrise@127.0.0.1:3307/cvrise
cd server
python -m pip install -r requirements.txt
alembic upgrade heads
python -m src.cli seed
python -m uvicorn src.main:app --reload --host 127.0.0.1 --port 8000cd client
pnpm install
pnpm dev- Dev:
pnpm dev - Lint:
pnpm lint - Test:
pnpm test - Build:
pnpm build
- Run tests:
python -m pytest tests -q - Compile check:
python -m compileall src - Seed DB:
python -m src.cli seed - Refresh DB (drop + migrate + seed):
python -m src.cli refresh
Copy examples and adjust as needed:
- Server: server/env.example
- Client: client/env.example
- Development: docs/DEVELOPMENT.md
- Self-hosting: docs/SELF_HOSTING.md
See CONTRIBUTING.md.
Licensed under the GNU Affero General Public License v3.0 (AGPLv3). See LICENSE.