Independent ideas publishing workbench. Write in any AI, publish from here.
MIT License — use it, sell it, fork it, do what you want.
- Generates structured AI prompts from your paper template
- QA checklist before publishing — prior art, AI disclosure, license, references
- Builds a PDF preview via Pandoc
- Saves manifest metadata to your papers repo
- Triggers GitHub Actions to snapshot and release
Your papers live in a separate private repo (e.g. zzpanic/ideas-workbench).
Structure:
your-paper-name/
paper.md ← working source, edit in Obsidian
publish/
paper.md ← publish-ready version
manifest.json ← generated by Pressroom
v0.1-exploratory/ ← immutable snapshot (written by publish action)
paper.pdf
manifest.json
Personal access tokens (classic) with scopes: repo, read:packages
Create a new stack in Dockge with this compose file and set environment variables:
services:
pressroom:
image: ghcr.io/zzpanic/pressroom:latest
ports:
- "8000:8000"
env_file:
- path: stack.env
required: false
restart: unless-stoppedSet these in Dockge or in a stack.env file:
GITHUB_TOKEN=ghp_xxx # token with repo access
GITHUB_REPO=you/ideas-workbench # your papers repo
PRESSROOM_REPO=you/pressroom # this repo
GITHUB_BRANCH=main
APP_USER=admin
APP_PASSWORD=yourpassword
AUTHOR_NAME=Your Name
AUTHOR_EMAIL=you@example.com
AUTHOR_GITHUB=yourusername
The publish action needs to write to your private papers repo.
Add a repo secret called PAPERS_TOKEN with a token that has repo scope.
1. Generate prompt → paste into Claude/OpenWebUI
2. Get paper.md back → drop into {basename}/publish/paper.md in your papers repo
3. Edit in Obsidian → push via Obsidian git plugin
4. Open Pressroom → QA & Publish → enter basename
5. Tick checklist → fill metadata → Preview PDF → Publish
6. GitHub Action builds PDF → snapshots to {basename}/v{gate}/ → creates release
MIT — see LICENSE file.