271 lines
8.9 KiB
Plaintext
271 lines
8.9 KiB
Plaintext
Paper Burner X - License Notice
|
|
================================
|
|
|
|
## Licensing Structure
|
|
|
|
This project uses a clear licensing approach:
|
|
|
|
**Primary License**: GNU Affero General Public License v3.0 (AGPL-3.0)
|
|
- Applies to all new code written by Feather-2 and contributors (~98% of current codebase)
|
|
- Copyright (C) 2024-2025 Feather-2 and contributors
|
|
|
|
**Historical Attribution**: GNU General Public License v2.0 (GPL-2.0)
|
|
- Original Paper Burner code (pre-refactoring commits in git history)
|
|
- See git history for the original app.js and index.html before major refactoring
|
|
- Copyright (C) 2024 Baoyu (baoyudu)
|
|
|
|
**Note**: The entire current codebase must be used under AGPL-3.0 terms. GPL-2.0 applies only to
|
|
historical snapshots preserved in commit history before the major refactoring.
|
|
|
|
---
|
|
|
|
## Code Attribution and Licensing Details
|
|
|
|
### Original Paper Burner (GPL-2.0)
|
|
|
|
The foundational concepts and early code came from the original Paper Burner project:
|
|
|
|
**Original Project Attribution:**
|
|
- Author: Baoyu (baoyudu)
|
|
- Repository: https://github.com/baoyudu/paper-burner
|
|
- License: GPL-2.0
|
|
- Scope: Basic PDF OCR and translation tool (~6 files, ~2,000 lines)
|
|
|
|
**Historical Code Under GPL-2.0:**
|
|
- Original code related to Mistral translation and partial UI (see git history before May 16, 2025)
|
|
- Specific files: Original `app.js` and `index.html` before major refactoring
|
|
- Basic PDF processing workflow concepts
|
|
- Initial OCR integration approach
|
|
- Basic translation pipeline structure
|
|
|
|
**Important**: We deeply respect the original author's contribution. The GPL-2.0 portions
|
|
remain available in the git history for anyone who wishes to use them under GPL-2.0 terms.
|
|
|
|
### Paper Burner X - New Development (AGPL-3.0)
|
|
|
|
All code in the current version has been rewritten, refactored, or newly created by Feather-2:
|
|
|
|
**Complete Backend System (NEW - ~40,000 lines):**
|
|
- Node.js + Express server architecture
|
|
- PostgreSQL database integration
|
|
- Prisma ORM implementation
|
|
- RESTful API design
|
|
- Authentication & authorization system (JWT, bcrypt)
|
|
- Multi-tenant user management
|
|
- Admin panel and management interface
|
|
|
|
**Docker Deployment Architecture (NEW):**
|
|
- Multi-stage Dockerfile
|
|
- Docker Compose orchestration
|
|
- Database migration system
|
|
- Health check implementation
|
|
- Production-ready configuration
|
|
|
|
**Advanced Features (NEW):**
|
|
- Dual-mode deployment (frontend-only vs. full-stack)
|
|
- Storage adapter pattern for mode switching
|
|
- Multiple OCR engine support (MinerU, Doc2X)
|
|
- Enhanced translation workflows
|
|
- Batch processing system
|
|
- History management with IndexedDB
|
|
- Annotation and highlighting system
|
|
- AI chatbot integration
|
|
- Mind map and flowchart generation
|
|
- Advanced document analysis tools
|
|
|
|
**UI/UX Enhancements (NEW):**
|
|
- Complete UI refactoring
|
|
- Enhanced markdown rendering
|
|
- Split-view comparison
|
|
- Table of contents navigation
|
|
- Immersive reading mode
|
|
- Glossary management system
|
|
- Key management interface
|
|
- Settings and configuration panels
|
|
|
|
---
|
|
|
|
## Why AGPL-3.0 for New Code?
|
|
|
|
### 1. Copyright and Legal Right
|
|
|
|
**As the author of ~98% of this codebase, I (Feather-2) hold the copyright and have the legal right
|
|
to choose the license for my work.**
|
|
|
|
The new code is my original creation, and I choose AGPL-3.0 to protect the open-source nature
|
|
of this project while respecting the original GPL-2.0 contributions (which remain in git history).
|
|
|
|
### 2. Preventing the "Cloud Service Loophole"
|
|
The primary motivation for AGPL-3.0 is **closing the cloud service loophole**:
|
|
|
|
**GPL-2.0 Limitation**: If someone deploys your GPL-2.0 software as a web service
|
|
(SaaS), they are NOT required to share their modifications because users don't
|
|
"receive" the software - they only access it remotely.
|
|
|
|
**AGPL-3.0 Solution**: Section 13 explicitly requires that users interacting with
|
|
the software over a network must be offered access to the source code.
|
|
|
|
**Real-World Scenario**:
|
|
```
|
|
Without AGPL-3.0:
|
|
Company X takes Paper Burner X → Modifies it → Deploys as paid SaaS
|
|
→ Keeps modifications private → Legal under GPL-2.0 (cloud loophole)
|
|
|
|
With AGPL-3.0:
|
|
Company X takes Paper Burner X → Modifies it → Deploys as paid SaaS
|
|
→ MUST provide source code link → Users can see modifications → Fair!
|
|
```
|
|
|
|
### 3. Protecting Open Source Values
|
|
This is NOT about preventing commercial use - it's about ensuring:
|
|
- **Transparency**: Users know what code is running
|
|
- **Freedom**: Users can run their own instances
|
|
- **Fairness**: Improvements benefit the community
|
|
- **Sustainability**: Prevents proprietary forks that don't contribute back
|
|
|
|
---
|
|
|
|
## AGPL-3.0 Requirements for Network Deployment
|
|
|
|
Under AGPL-3.0, Section 13, if you deploy this software as a network service:
|
|
|
|
### You MUST:
|
|
1. **Prominently display** a "Source Code" or "View Source" link in your UI
|
|
2. **Provide free access** to the complete source code (including your modifications)
|
|
3. **Use standard methods** for distributing the source (e.g., Git, download link)
|
|
|
|
### Example Implementation:
|
|
|
|
**Minimal Compliance (Footer Link):**
|
|
```html
|
|
<!-- In your footer or about section -->
|
|
<footer>
|
|
<p>
|
|
Powered by <a href="https://github.com/Feather-2/paper-burner-x">Paper Burner X</a> (AGPL-3.0)
|
|
• <a href="https://github.com/your-org/your-fork" style="font-weight: bold;">
|
|
📥 Download Source Code
|
|
</a>
|
|
</p>
|
|
</footer>
|
|
```
|
|
|
|
**Recommended Compliance (About/Settings Page):**
|
|
```html
|
|
<!-- In settings or about page -->
|
|
<div class="license-notice">
|
|
<h3>Open Source License</h3>
|
|
<p>
|
|
This service is based on
|
|
<a href="https://github.com/Feather-2/paper-burner-x">Paper Burner X</a>,
|
|
licensed under AGPL-3.0.
|
|
</p>
|
|
<p>
|
|
<strong>Source Code Access:</strong> You can download the complete source code,
|
|
including any modifications we made:
|
|
</p>
|
|
<a href="https://github.com/your-org/your-fork" class="btn-primary">
|
|
View/Download Source Code
|
|
</a>
|
|
<p style="margin-top: 1rem; font-size: 0.9em;">
|
|
Under AGPL-3.0, you have the right to:
|
|
• Use the software freely
|
|
• Modify and redistribute it
|
|
• Access the source code at any time
|
|
</p>
|
|
</div>
|
|
```
|
|
|
|
**Best Practice (In-App Notice):**
|
|
```javascript
|
|
// Show on first visit or in help menu
|
|
function showLicenseNotice() {
|
|
const notice = `
|
|
This application uses Paper Burner X (AGPL-3.0).
|
|
|
|
You have the right to:
|
|
✓ View and download the source code
|
|
✓ Run your own instance
|
|
✓ Modify and redistribute the software
|
|
|
|
Access source code at: https://github.com/your-org/your-fork
|
|
`;
|
|
|
|
// Display in modal, notification, or about dialog
|
|
showNotification(notice, { persistent: true, link: sourceCodeUrl });
|
|
}
|
|
```
|
|
|
|
### This applies to:
|
|
- ✅ Public web services
|
|
- ✅ SaaS platforms
|
|
- ✅ Internal corporate deployments (if accessed over network)
|
|
- ✅ University/institution deployments
|
|
- ❌ Personal use on your own computer (no network access)
|
|
|
|
---
|
|
|
|
## For Downstream Users and Deployers
|
|
|
|
### If you're deploying Paper Burner X:
|
|
|
|
**Pure Frontend Mode (Vercel/Static):**
|
|
- Uses only GPL-2.0 and AGPL-3.0 frontend code
|
|
- No backend deployment = Simpler compliance
|
|
- Recommend: Add source code link in your footer
|
|
|
|
**Full Docker Mode (with Backend):**
|
|
- Uses both GPL-2.0 and AGPL-3.0 code
|
|
- MUST provide source code access per AGPL-3.0 Section 13
|
|
- Required: Prominent source code link in UI
|
|
|
|
### If you're modifying Paper Burner X:
|
|
|
|
**GPL-2.0 Components**: Can modify, but must remain GPL-2.0 compatible
|
|
**AGPL-3.0 Components**: Can modify, but must share modifications if deployed
|
|
**New Components**: You can add under AGPL-3.0 or compatible license
|
|
|
|
### Compatibility Guide:
|
|
- ✅ GPL-3.0 code → Can integrate (AGPL-3.0 is GPL-3.0 + network clause)
|
|
- ✅ MIT/BSD/Apache 2.0 → Can integrate
|
|
- ✅ Commercial use → Allowed (with source disclosure)
|
|
- ❌ Proprietary license → Cannot integrate
|
|
- ❌ GPL-3.0-incompatible licenses → Cannot integrate
|
|
|
|
---
|
|
|
|
## Third-Party Components
|
|
|
|
This project uses the following open-source libraries and services:
|
|
|
|
### Frontend Libraries
|
|
- TailwindCSS (MIT License)
|
|
- Turndown (MIT License)
|
|
- Mammoth.js (BSD-2-Clause License)
|
|
- Iconify (MIT License)
|
|
|
|
### Backend Libraries (Docker mode only)
|
|
- Express.js (MIT License)
|
|
- Prisma (Apache 2.0 License)
|
|
- bcryptjs (MIT License)
|
|
- jsonwebtoken (MIT License)
|
|
- PostgreSQL (PostgreSQL License)
|
|
|
|
### OCR Services (API-based)
|
|
- MinerU (Apache 2.0 License)
|
|
- Doc2X (Commercial Service)
|
|
|
|
### AI Models (API-based)
|
|
- Various AI translation services (user-configured)
|
|
|
|
## Contact
|
|
|
|
- GitHub: https://github.com/Feather-2/paper-burner-x
|
|
- Issues: https://github.com/Feather-2/paper-burner-x/issues
|
|
|
|
## Full License Text
|
|
|
|
See the LICENSE file in the root directory for the full text of the
|
|
GNU Affero General Public License v3.0.
|
|
|
|
Online version: https://www.gnu.org/licenses/agpl-3.0.html
|