From e204f48235235202c7bc09360a865e7ff49fee00 Mon Sep 17 00:00:00 2001 From: DaKheera47 Date: Fri, 16 Jan 2026 00:24:54 +0000 Subject: [PATCH] self hosting documentation --- documentation/self-hosting.md | 64 +++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 documentation/self-hosting.md diff --git a/documentation/self-hosting.md b/documentation/self-hosting.md new file mode 100644 index 0000000..52e442c --- /dev/null +++ b/documentation/self-hosting.md @@ -0,0 +1,64 @@ +# 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) + +## 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 +```