Files
scrollsmith/README.md
Madison Grubb 96480a351f
Some checks failed
ci/woodpecker/cron/ci Pipeline failed
make it start working again
2025-12-11 23:13:07 -05:00

102 lines
2.5 KiB
Markdown

# Scrollsmith
[![status-badge](https://ci.keligrubb.com/api/badges/2/status.svg)](https://ci.keligrubb.com/repos/2)
Scrollsmith is a Node.js tool for generating Dungeons & Dragons one-page dungeon PDFs automatically. It uses an Ollama LLM server to create dungeon content, proofreads and refines it, then formats it into a structured PDF with maps, rooms, encounters, treasure, and NPCs.
---
## Features
- **Three-pass dungeon generation**:
1. Draft: initial dungeon ideas
2. Refine: proofread, add flavor, fill in vague details
3. JSON conversion: output strictly valid JSON for PDF generation
- Automatically generates a PDF named after the dungeon title
- PDF layout includes three columns: map & hooks, rooms, encounters & treasure & NPCs
- Easy to integrate with a local Ollama server
---
## Requirements
- Node.js 22+
- Ollama server running and accessible
- Gitea Releases (optional) for PDF uploads
- `.env` file with:
```env
OLLAMA_API_URL=http://localhost:3000/api/chat/completions
OLLAMA_API_KEY=your_api_key_here
COMFYUI_URL=http://192.168.1.124:8188
```
---
## Installation
```bash
git clone https://github.com/yourusername/scrollsmith.git
cd scrollsmith
npm install
```
---
## API Configuration
The client automatically infers the API type from the endpoint URL, making it flexible for different deployment scenarios.
### Direct Ollama API
For direct Ollama API calls, set:
```env
OLLAMA_API_URL=http://localhost:11434/api/generate
```
### Open WebUI API
For Open WebUI API calls, set:
```env
OLLAMA_API_URL=http://localhost:3000/api/chat/completions
OLLAMA_API_KEY=your_open_webui_api_key
```
> Note: The API type is automatically inferred from the endpoint URL. If the URL contains `/api/chat/completions`, it uses Open WebUI API. If it contains `/api/generate`, it uses direct Ollama API. No `OLLAMA_API_TYPE` environment variable is required.
---
## Usage
1. Make sure your Ollama server is running and `.env` is configured.
2. Run:
```bash
npm start
```
3. A PDF will be generated automatically. The filename matches the dungeon title.
Optional: update the map path in `index.js` if you have a local dungeon map.
---
## Example Output
* `the-tomb-of-shadows.pdf`
* Three-column layout:
* Column 1: Map, Adventure Hooks, Rumors
* Column 2: Rooms
* Column 3: Encounters, Treasure, NPCs
---
## Notes
* Make sure your Ollama server is accessible and API key is valid.
* Dungeon generation can take a few minutes depending on your LLM response time.
---
## License
PROPRIETARY