No description
Find a file
DocFast Bot 53755d6093
All checks were successful
Build & Deploy to Staging / Build & Deploy to Staging (push) Successful in 12m31s
Promote to Production / Deploy to Production (push) Successful in 2m26s
v0.4.0: Remove free tier, add public demo endpoint with watermark
- Remove free account signup flow entirely
- Add POST /v1/demo/html and /v1/demo/markdown (public, no auth)
- Demo: 5 requests/hour per IP, 50KB body limit, watermarked PDFs
- Landing page: interactive playground replaces 'Get Free API Key'
- Pricing: Demo (free) + Pro (€9/mo), no more Free tier
- /v1/signup returns 410 Gone with redirect to demo/pro
- Keep /v1/recover for existing Pro users
- Update JSON-LD, API discovery, verify page text
2026-02-20 07:32:45 +00:00
.forgejo/workflows fix: disable buildx cache + simplify compression middleware 2026-02-19 08:09:59 +00:00
deploy Add landing page, tests, Docker deployment, nginx config 2026-02-14 13:01:07 +00:00
dist Fix version number to 0.2.9 and add Brotli compression support (BUG-054) 2026-02-18 18:05:17 +00:00
infrastructure Add comprehensive backup and restore infrastructure 2026-02-15 11:06:42 +00:00
public v0.4.0: Remove free tier, add public demo endpoint with watermark 2026-02-20 07:32:45 +00:00
scripts fix: BUG-053,055,058,060,061,067,069 - JS minification, meta tags, skip-link, docs footer 2026-02-17 18:03:59 +00:00
src v0.4.0: Remove free tier, add public demo endpoint with watermark 2026-02-20 07:32:45 +00:00
templates fix: version bump 0.3.2, remove debug log, dynamic /api version, Pro plan 5000 PDFs 2026-02-19 14:12:37 +00:00
@ feat: email change UI, Swagger UI improvements, key recovery link on landing page 2026-02-14 22:15:31 +00:00
.gitignore fix: self-service signup, unified key store, persistent data volume 2026-02-14 14:20:05 +00:00
BACKUP_PROCEDURES.md Add BorgBackup disaster recovery system 2026-02-15 11:04:58 +00:00
bugs.md Fix rate limits, concurrency control, copy button 2026-02-15 08:04:56 +00:00
CI-CD-SETUP-COMPLETE.md Add comprehensive CI/CD setup completion documentation 2026-02-15 11:04:25 +00:00
decisions.md Fix rate limits, concurrency control, copy button 2026-02-15 08:04:56 +00:00
DEPLOYMENT.md Add CI/CD deployment pipeline with Forgejo Actions 2026-02-15 11:02:43 +00:00
docker-compose.yml feat: add SMTP auth support for K3s migration 2026-02-18 12:47:33 +00:00
Dockerfile fix: compile TypeScript in Docker build — dist/ was never built in CI, connection resilience code was missing from images 2026-02-18 16:19:59 +00:00
Dockerfile.backup Security fixes: non-root user, signup rate limiting, differentiated CORS, persistent usage tracking 2026-02-14 17:04:55 +00:00
logrotate-docfast Fix: nginx duplicate MIME type, update version to 0.2.1, improve log rotation 2026-02-16 08:36:55 +00:00
nginx-docfast.conf fix: QA audit bugs BUG-051/052/056/057/059/062/063/064/065/066/068 2026-02-17 08:15:03 +00:00
package-lock.json fix: BUG-055,058,060,061,067,069,053 - QA low/info fixes 2026-02-17 13:07:43 +00:00
package.json v0.4.0: Remove free tier, add public demo endpoint with watermark 2026-02-20 07:32:45 +00:00
README.md Initial MVP: DocFast PDF API 2026-02-14 12:38:06 +00:00
sessions.md Fix rate limits, concurrency control, copy button 2026-02-15 08:04:56 +00:00
state.json Fix rate limits, concurrency control, copy button 2026-02-15 08:04:56 +00:00
tsconfig.json Initial MVP: DocFast PDF API 2026-02-14 12:38:06 +00:00
VERSION Add version file - test CI/CD pipeline trigger 2026-02-15 11:03:52 +00:00

DocFast API

Fast, simple HTML/Markdown to PDF API with built-in invoice templates.

Quick Start

npm install
npm run build
API_KEYS=your-key-here npm start

Endpoints

Convert HTML to PDF

curl -X POST http://localhost:3100/v1/convert/html \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"html": "<h1>Hello</h1><p>World</p>"}' \
  -o output.pdf

Convert Markdown to PDF

curl -X POST http://localhost:3100/v1/convert/markdown \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# Hello\n\nWorld"}' \
  -o output.pdf

Invoice Template

curl -X POST http://localhost:3100/v1/templates/invoice/render \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "invoiceNumber": "INV-001",
    "date": "2026-02-14",
    "from": {"name": "Your Company", "email": "you@example.com"},
    "to": {"name": "Client", "email": "client@example.com"},
    "items": [{"description": "Service", "quantity": 1, "unitPrice": 100, "taxRate": 20}]
  }' \
  -o invoice.pdf

Options

  • format: Paper size (A4, Letter, Legal, etc.)
  • landscape: true/false
  • margin: {top, right, bottom, left} in CSS units
  • css: Custom CSS (for markdown/html fragments)
  • filename: Suggested filename in Content-Disposition header

Auth

Pass API key via Authorization: Bearer <key>. Set API_KEYS env var (comma-separated for multiple keys).

Docker

docker build -t docfast .
docker run -p 3100:3100 -e API_KEYS=your-key docfast