# Installation Pagepiper runs as a Docker Compose stack: a FastAPI backend and a Vue 3 frontend served by nginx. No external services are required for the core BM25 search feature set. ## Prerequisites - Docker and Docker Compose - 1 GB disk for images, plus space for your document library ## Quick setup ```bash git clone https://git.opensourcesolarpunk.com/Circuit-Forge/pagepiper cd pagepiper cp .env.example .env ./manage.sh start ``` The web UI opens at `http://localhost:8521`. ## manage.sh commands | Command | Description | |---------|-------------| | `./manage.sh start` | Start all services (builds on first run) | | `./manage.sh stop` | Stop all services | | `./manage.sh restart` | Rebuild and restart | | `./manage.sh status` | Show running containers | | `./manage.sh logs [api\|web]` | Tail logs | | `./manage.sh build` | Rebuild images without starting | | `./manage.sh test` | Run the test suite | | `./manage.sh open` | Open browser to the web UI | ## Mounting a document directory To scan an entire folder of PDFs and EPUBs at startup, set `PAGEPIPER_WATCH_DIR` in your `.env`: ```bash PAGEPIPER_WATCH_DIR=/home/you/books ``` Then use the **Scan for PDFs** button in the library to index everything in that directory. ## Updating ```bash git pull ./manage.sh restart ``` The SQLite database persists in `data/` across rebuilds.