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
|
## Quick Start
|
||||||
```bash
|
```bash
|
||||||
# 1. Setup environment
|
# 1. Run with Docker
|
||||||
cp .env.example .env
|
|
||||||
|
|
||||||
# 2. Run with Docker
|
|
||||||
docker compose up -d --build
|
docker compose up -d --build
|
||||||
|
|
||||||
# 3. Access Dashboard
|
# 2. Open the dashboard
|
||||||
# http://localhost:3005
|
# http://localhost:3005
|
||||||
```
|
```
|
||||||
|
|
||||||
## Setup
|
The app will guide you through setup on first launch. The onboarding wizard helps you:
|
||||||
Essential variables in `.env`:
|
- Connect your OpenRouter API key (for AI scoring/tailoring)
|
||||||
- `OPENROUTER_API_KEY`: For job scoring and tailoring.
|
- Add your RxResume credentials (for PDF export)
|
||||||
- `RXRESUME_EMAIL`/`PASSWORD`: To automate PDF exports.
|
- Upload your base resume JSON (exported from RxResume)
|
||||||
|
|
||||||
## Structure
|
## Structure
|
||||||
- `/orchestrator`: React frontend + Node.js backend & pipeline.
|
- `/orchestrator`: React frontend + Node.js backend & pipeline.
|
||||||
@ -43,14 +40,8 @@ Orchestrator docs here: `documentation/orchestrator.md`
|
|||||||
|
|
||||||
## Read-only mode (Basic Auth)
|
## 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.
|
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).
|
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 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).
|
- The job description (used for AI tailoring and project selection).
|
||||||
- Your tailored summary/headline/skills and selected projects.
|
- Your tailored summary/headline/skills and selected projects.
|
||||||
|
|
||||||
|
|||||||
@ -1,61 +1,40 @@
|
|||||||
# Self-Hosting (Docker Compose)
|
# 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
|
## Prereqs
|
||||||
|
|
||||||
- Docker Desktop or Docker Engine + Compose v2
|
- 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
|
No environment variables are strictly required to start. Simply run:
|
||||||
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
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose up -d --build
|
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
|
Open your browser to:
|
||||||
- API: http://localhost:3005/api
|
- **Dashboard**: http://localhost:3005
|
||||||
- Health: http://localhost:3005/health
|
|
||||||
|
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
|
## Persistent data
|
||||||
|
|
||||||
`./data` is bind-mounted into the container. It stores:
|
`./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/`
|
- Generated PDFs: `data/pdfs/`
|
||||||
|
- Resume JSON: Stored internally after upload.
|
||||||
## 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).
|
|
||||||
|
|
||||||
## Updating
|
## Updating
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@ orchestrator/
|
|||||||
2. **Set up environment:**
|
2. **Set up environment:**
|
||||||
```bash
|
```bash
|
||||||
cp .env.example .env
|
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:**
|
3. **Initialize database:**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user