PDFForge is a powerful, self-hostable, and completely free open-source PDF toolkit. Forget vendor lock-in, uploading sensitive documents to third-party servers, and expensive subscriptions. PDFForge brings 25+ PDF manipulation tools directly to your infrastructure.
- Merge & Split: Combine multiple PDFs or extract exact page ranges.
- Compress: Drastically reduce PDF file sizes while maintaining quality.
- Convert: Transform PDFs to Word, Excel, Images, Text, and vice-versa.
- Security: Encrypt with AES-256, unlock documents, and permanently redact sensitive information.
- Edit: Rotate pages, add watermarks, sign documents, edit metadata, and repair corrupted files.
- 100% Private: Your files never leave your server. Auto-cleanup ensures files are deleted instantly upon completion.
- Asynchronous Processing: Built on Celery and Redis to handle massive files without blocking.
- Frontend: Next.js 14, React, TailwindCSS, Framer Motion, Zustand
- Backend: FastAPI, Python 3.11, PyMuPDF, Celery
- Infrastructure: Docker, Docker Compose, Redis, Nginx
PDFForge can be deployed in two primary ways:
This is the recommended way for maximum privacy.
# Clone and enter repo
git clone https://github.com/Navaneeth223/PDFforge.git && cd PDFforge
# Start everything
docker-compose up -d --buildAccess at http://localhost.
For hosting on the web with a live URL:
- Fork this repository.
- Connect your GitHub to Render.
- Click New + > Blueprint.
- Select the
render.yamlfile from your repo. - Set
ALLOWED_ORIGINSto your future Vercel URL. - Render will automatically deploy the API, Celery Worker, and Redis.
- Connect your GitHub to Vercel.
- Select the
frontenddirectory. - Set Environment Variable:
NEXT_PUBLIC_API_URLto your Render API URL. - Deploy.
If you wish to run the services manually without Docker:
- Install Python 3.11+.
- Install system dependencies:
tesseract-ocr,libreoffice,weasyprint. - Setup virtual environment:
cd backend python -m venv venv source venv/bin/activate # or venv\Scripts\activate on Windows pip install -r requirements.txt
- Start Redis server locally.
- Start the FastAPI server:
uvicorn main:app --reload --port 8000
- Start the Celery Worker (in a new terminal):
celery -A services.job_queue worker --loglevel=info
- Install Node.js 18+.
- Install dependencies:
cd frontend npm install - Start the Next.js development server:
npm run dev
Contributions are welcome! Whether it's adding a new tool, improving the UI, or fixing bugs, please open an issue or submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.