update documentation
This commit is contained in:
parent
733da22d2c
commit
3972a173c5
23
README.md
23
README.md
@ -17,20 +17,17 @@ https://github.com/user-attachments/assets/06e5e782-47f5-42d0-8b28-b89102d7ea1b
|
||||
|
||||
## Quick Start
|
||||
```bash
|
||||
# 1. Setup environment
|
||||
cp .env.example .env
|
||||
|
||||
# 2. Run with Docker
|
||||
# 1. Run with Docker
|
||||
docker compose up -d --build
|
||||
|
||||
# 3. Access Dashboard
|
||||
# 2. Open the dashboard
|
||||
# http://localhost:3005
|
||||
```
|
||||
|
||||
## Setup
|
||||
Essential variables in `.env`:
|
||||
- `OPENROUTER_API_KEY`: For job scoring and tailoring.
|
||||
- `RXRESUME_EMAIL`/`PASSWORD`: To automate PDF exports.
|
||||
The app will guide you through setup on first launch. The onboarding wizard helps you:
|
||||
- Connect your OpenRouter API key (for AI scoring/tailoring)
|
||||
- Add your RxResume credentials (for PDF export)
|
||||
- Upload your base resume JSON (exported from RxResume)
|
||||
|
||||
## Structure
|
||||
- `/orchestrator`: React frontend + Node.js backend & pipeline.
|
||||
@ -43,14 +40,8 @@ Orchestrator docs here: `documentation/orchestrator.md`
|
||||
|
||||
## Read-only mode (Basic Auth)
|
||||
|
||||
Set `BASIC_AUTH_USER` and `BASIC_AUTH_PASSWORD` in `.env` to make the app read-only for the public.
|
||||
You can make the app read-only for the public by setting a username and password in the **Settings** page.
|
||||
After this, all write actions (POST/PATCH/DELETE) require Basic Auth; browsing and viewing remain public.
|
||||
2. Put your exported RXResume JSON at `resume-generator/base.json`.
|
||||
3. Start: `docker compose up -d --build`
|
||||
4. Open:
|
||||
- Dashboard/UI: `http://localhost:3005`
|
||||
- API: `http://localhost:3005/api`
|
||||
- Health: `http://localhost:3005/health`
|
||||
|
||||
Persistent data lives in `./data` (bind-mounted into the container).
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ Once a job is `ready`, the Ready panel is the "shipping lane":
|
||||
|
||||
The PDF is generated from:
|
||||
|
||||
- The base resume JSON (`resume-generator/base.json`).
|
||||
- The base resume JSON (uploaded via the Onboarding UI or Settings).
|
||||
- The job description (used for AI tailoring and project selection).
|
||||
- Your tailored summary/headline/skills and selected projects.
|
||||
|
||||
|
||||
@ -1,61 +1,40 @@
|
||||
# Self-Hosting (Docker Compose)
|
||||
|
||||
This project is designed to be self-hostable with a single Docker Compose command.
|
||||
The easiest way to run JobOps is via Docker Compose. The app is self-configuring and will guide you through the setup on your first visit.
|
||||
|
||||
## Prereqs
|
||||
|
||||
- Docker Desktop or Docker Engine + Compose v2
|
||||
- An OpenRouter API key (required for AI scoring and summaries)
|
||||
- RXResume credentials (only if you want PDF exports)
|
||||
|
||||
## 1) Clone and set up environment
|
||||
## 1) Start the stack
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Open `.env` and set at least:
|
||||
- `OPENROUTER_API_KEY`
|
||||
|
||||
Optional but commonly used:
|
||||
- `RXRESUME_EMAIL`, `RXRESUME_PASSWORD` (for CV PDF generation)
|
||||
- `UKVISAJOBS_EMAIL`, `UKVISAJOBS_PASSWORD` (if you want to scrape UKVisaJobs)
|
||||
- `BASIC_AUTH_USER`, `BASIC_AUTH_PASSWORD` (read-only public, auth required for writes)
|
||||
|
||||
## 2) Provide a base resume JSON
|
||||
|
||||
The container mounts a base resume JSON at `resume-generator/base.json`.
|
||||
|
||||
- Create or copy your exported RXResume JSON to:
|
||||
- `resume-generator/base.json`
|
||||
|
||||
If you do not plan to generate PDFs, you can still provide a minimal JSON file to satisfy the mount.
|
||||
|
||||
## 3) Start the stack
|
||||
No environment variables are strictly required to start. Simply run:
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
This will build a single container that runs the API, UI, scrapers, and resume generator.
|
||||
This builds a single container that runs the API, UI, scrapers, and resume generator.
|
||||
|
||||
## 4) Access the app
|
||||
## 2) Access the app and Onboard
|
||||
|
||||
- Dashboard: http://localhost:3005
|
||||
- API: http://localhost:3005/api
|
||||
- Health: http://localhost:3005/health
|
||||
Open your browser to:
|
||||
- **Dashboard**: http://localhost:3005
|
||||
|
||||
On first launch, you will be greeted by an **Onboarding Wizard**. The app will help you validate and save your configuration:
|
||||
|
||||
1. **Connect AI**: Add your OpenRouter API key (required for job scoring and summaries).
|
||||
2. **PDF Export**: Add your RxResume credentials (if you want to generate tailored PDFs).
|
||||
3. **Resume JSON**: Upload your base resume JSON (exported from RxResume).
|
||||
|
||||
The app saves these to its persistent database, so you don't need to manage `.env` files for basic setup. All other settings (like search terms, job sources, and more) can also be configured directly in the UI.
|
||||
|
||||
## Persistent data
|
||||
|
||||
`./data` is bind-mounted into the container. It stores:
|
||||
- SQLite DB: `data/jobs.db`
|
||||
- SQLite DB: `data/jobs.db` (contains your API keys and configuration)
|
||||
- Generated PDFs: `data/pdfs/`
|
||||
|
||||
## Common issues
|
||||
|
||||
- First build is slow: Playwright + Camoufox download Firefox during the image build.
|
||||
- Scraping can be blocked by target sites (LinkedIn/Indeed/UKVisa). Retry or adjust sources.
|
||||
- Missing `resume-generator/base.json` will break PDF generation (and the mount).
|
||||
- Resume JSON: Stored internally after upload.
|
||||
|
||||
## Updating
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@ orchestrator/
|
||||
2. **Set up environment:**
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Edit .env with your API keys
|
||||
# The app is self-configuring. You can add keys via the UI Onboarding.
|
||||
```
|
||||
|
||||
3. **Initialize database:**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user