102 lines
2.5 KiB
Markdown
102 lines
2.5 KiB
Markdown
# Scrollsmith
|
|
|
|
[](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 |