Jobber/documentation/self-hosting.md
2026-01-16 01:33:43 +00:00

66 lines
1.7 KiB
Markdown

# Self-Hosting (Docker Compose)
This project is designed to be self-hostable with a single Docker Compose command.
## 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
```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
```bash
docker compose up -d --build
```
This will build a single container that runs the API, UI, scrapers, and resume generator.
## 4) Access the app
- Dashboard: http://localhost:3005
- API: http://localhost:3005/api
- Health: http://localhost:3005/health
## Persistent data
`./data` is bind-mounted into the container. It stores:
- SQLite DB: `data/jobs.db`
- 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).
## Updating
```bash
git pull
docker compose up -d --build
```