1- # Inkverta - Comic and Novel Translator
1+ # Inkverta - Comic and Novel Translator
22
33A full-stack application that instantly translates comics, novels and manga using AI-powered OCR and translation services. Features a web application, Chrome extension, and production-ready deployment configuration.
44
5- Production guide: see deployment/PRODUCTION.md.
6-
7- 🌟 Features
8- Web Application
9- Drag & Drop Upload: Upload comic images with ease
10- Advanced OCR: Multi-language text extraction using Tesseract.js
11- Real-time Translation: Support for Google Translate and DeepL APIs
12- Novel/Text Mode: Paste and translate text (no OCR required)
13- Image Editor: Interactive canvas for text selection and editing
14- Batch Processing: Handle multiple images simultaneously
15- Download Results: Export translated comics in various formats
16- Chrome Extension
17- Universal Compatibility: Works on MangaDex, Webtoons, Crunchyroll, and more
18- Right-click Translation: Instantly translate images from context menu
19- Overlay Display: Non-intrusive translation overlays
20- Auto-translate: Optional automatic translation on image click
21- Translation History: Keep track of previous translations
22- Customizable Settings: Configure languages, services, and behavior
23- Production Features
24- Docker Deployment: Complete containerization with Docker Compose
25- SSL/HTTPS Support: Automated certificate management
26- Health Monitoring: Prometheus, Grafana, and Alertmanager integration
27- Load Balancing: Nginx reverse proxy with rate limiting
28- Automated Backups: Scheduled backups for data persistence
29- Performance Optimization: Redis caching and image optimization
30- 🚀 Quick Start
31- Prerequisites
32- Node.js 16+ and npm 8+
33- Docker and Docker Compose (for containerized deployment)
34- Google Translate API key (required)
35- DeepL API key (optional, for better translations)
36- 1 . Clone and Setup
5+ Production guide: see ` deployment/PRODUCTION.md ` .
6+
7+ ## 🌟 Features
8+
9+ ### Web Application
10+ - ** Drag & Drop Upload** : Upload comic images with ease
11+ - ** Advanced OCR** : Multi-language text extraction using Tesseract.js
12+ - ** Real-time Translation** : Support for Google Translate and DeepL APIs
13+ - ** Novel/Text Mode** : Paste and translate text (no OCR required)
14+ - ** Image Editor** : Interactive canvas for text selection and editing
15+ - ** Batch Processing** : Handle multiple images simultaneously
16+ - ** Download Results** : Export translated comics in various formats
17+
18+ ### Chrome Extension
19+ - ** Universal Compatibility** : Works on MangaDex, Webtoons, Crunchyroll, and more
20+ - ** Right-click Translation** : Instantly translate images from context menu
21+ - ** Overlay Display** : Non-intrusive translation overlays
22+ - ** Auto-translate** : Optional automatic translation on image click
23+ - ** Translation History** : Keep track of previous translations
24+ - ** Customizable Settings** : Configure languages, services, and behavior
25+
26+ ### Production Features
27+ - ** Docker Deployment** : Complete containerization with Docker Compose
28+ - ** SSL/HTTPS Support** : Automated certificate management
29+ - ** Health Monitoring** : Prometheus, Grafana, and Alertmanager integration
30+ - ** Load Balancing** : Nginx reverse proxy with rate limiting
31+ - ** Automated Backups** : Scheduled backups for data persistence
32+ - ** Performance Optimization** : Redis caching and image optimization
33+
34+ ## 🚀 Quick Start
35+
36+ ### Prerequisites
37+ - Node.js 16+ and npm 8+
38+ - Docker and Docker Compose (for containerized deployment)
39+ - Google Translate API key (required)
40+ - DeepL API key (optional, for better translations)
41+
42+ ### 1. Clone and Setup
43+ ``` bash
3744git clone https://github.com/your-username/comic-translator.git
3845cd comic-translator
3946npm run setup
40- 2 . Configure Environment
47+ ```
48+
49+ ### 2. Configure Environment
50+ ``` bash
4151# Edit backend/.env and add your API keys
4252cp backend/.env.example backend/.env
4353# Add your GOOGLE_TRANSLATE_API_KEY and DEEPL_API_KEY
44- 3 . Development Mode
54+ ```
55+
56+ ### 3. Development Mode
57+ ``` bash
4558# Start both backend and frontend
4659npm run dev
4760
4861# Or start individually
4962npm run dev:backend # Starts on http://localhost:3001
5063npm run dev:frontend # Starts on http://localhost:3000
51- 4 . Production Deployment
64+ ```
65+
66+ ### 4. Production Deployment
67+ ``` bash
5268# Using Docker Compose (recommended)
5369npm run docker:prod
5470
5571# Or manual deployment
5672npm run build
5773npm run start
58- 📁 Project Structure
74+ ```
75+
76+ ## 📁 Project Structure
77+
78+ ```
5979comic-translator/
6080├── backend/ # Node.js/Express API
6181│ ├── src/
@@ -82,24 +102,33 @@ comic-translator/
82102├── deployment/ # Production configs
83103├── monitoring/ # Monitoring setup
84104└── scripts/ # Utility scripts
85- 🛠️ API Documentation
86- OpenAPI spec is served at GET /api/openapi.yaml (and is also available at backend/openapi.yaml).
87-
88- Upload Endpoints
89- POST /api/upload/single - Upload single image
90- POST /api/upload/multiple - Upload multiple images
91- OCR Endpoints
92- POST /api/ocr/extract - Extract text from image
93- POST /api/ocr/batch - Batch text extraction
94- Translation Endpoints
95- POST /api/translate - Translate text
96- POST /api/translate/batch - Batch translation
97- GET /api/translate/languages - Get supported languages
98- Health Endpoints
99- GET /api/health - Application health status
100- GET /api/health/ready - Readiness probe
101- 🔧 Configuration
102- Environment Variables
105+ ```
106+
107+ ## 🛠️ API Documentation
108+
109+ OpenAPI spec is served at ` GET /api/openapi.yaml ` (and is also available at ` backend/openapi.yaml ` ).
110+
111+ ### Upload Endpoints
112+ - ` POST /api/upload/single ` - Upload single image
113+ - ` POST /api/upload/multiple ` - Upload multiple images
114+
115+ ### OCR Endpoints
116+ - ` POST /api/ocr/extract ` - Extract text from image
117+ - ` POST /api/ocr/batch ` - Batch text extraction
118+
119+ ### Translation Endpoints
120+ - ` POST /api/translate ` - Translate text
121+ - ` POST /api/translate/batch ` - Batch translation
122+ - ` GET /api/translate/languages ` - Get supported languages
123+
124+ ### Health Endpoints
125+ - ` GET /api/health ` - Application health status
126+ - ` GET /api/health/ready ` - Readiness probe
127+
128+ ## 🔧 Configuration
129+
130+ ### Environment Variables
131+ ``` bash
103132# Server Configuration
104133NODE_ENV=production
105134PORT=3001
@@ -117,13 +146,18 @@ OCR_OEM=3
117146# Cache and Performance
118147CACHE_TTL=3600
119148RATE_LIMIT_MAX=100
120- Chrome Extension Setup
121- Open Chrome → Extensions → Developer mode
122- Click "Load unpacked"
123- Select the chrome-extension folder
124- Configure settings in the extension popup
125- 🚀 Deployment Options
126- 1 . Docker (Recommended)
149+ ```
150+
151+ ### Chrome Extension Setup
152+ 1 . Open Chrome → Extensions → Developer mode
153+ 2 . Click "Load unpacked"
154+ 3 . Select the ` chrome-extension ` folder
155+ 4 . Configure settings in the extension popup
156+
157+ ## 🚀 Deployment Options
158+
159+ ### 1. Docker (Recommended)
160+ ``` bash
127161# Production deployment
128162docker-compose -f deployment/docker-compose.prod.yml up -d
129163
@@ -132,43 +166,60 @@ docker-compose -f docker/docker-compose.dev.yml up
132166
133167# With monitoring
134168npm run monitoring:up
135- 2 . Railway
169+ ```
170+
171+ ### 2. Railway
172+ ``` bash
136173# Deploy backend to Railway
137174railway up --service backend
138175
139176# Configure environment variables in Railway dashboard
140- 3 . Heroku
177+ ```
178+
179+ ### 3. Heroku
180+ ``` bash
141181# Deploy using Heroku CLI
142182heroku create comic-translator-app
143183git push heroku main
144- 4 . Manual VPS
184+ ```
185+
186+ ### 4. Manual VPS
187+ ``` bash
145188# Run setup script
146189./scripts/setup.sh
147190
148191# Deploy with SSL
149192./scripts/deploy.sh production
150- 📊 Monitoring
193+ ```
194+
195+ ## 📊 Monitoring
196+
151197The application includes comprehensive monitoring:
152198
153- Prometheus: Metrics collection and alerting
154- Grafana: Beautiful dashboards and visualizations
155- Alertmanager: Smart alert routing and management
156- Loki: Centralized logging
157- Node Exporter: System metrics
199+ - ** Prometheus** : Metrics collection and alerting
200+ - ** Grafana** : Beautiful dashboards and visualizations
201+ - ** Alertmanager** : Smart alert routing and management
202+ - ** Loki** : Centralized logging
203+ - ** Node Exporter** : System metrics
204+
158205Access monitoring:
206+ - Grafana: http://localhost:3002 (admin/admin)
207+ - Prometheus: http://localhost:9090
208+ - Alertmanager: http://localhost:9093
209+
210+ ## 🔒 Security Features
211+
212+ - Rate limiting on all endpoints
213+ - CORS protection
214+ - Helmet.js security headers
215+ - File type validation
216+ - Size limits on uploads
217+ - SSL/TLS encryption
218+ - Input sanitization
219+
220+ ## 🧪 Testing
159221
160- Grafana: http://localhost:3002 (admin/admin)
161- Prometheus: http://localhost:9090
162- Alertmanager: http://localhost:9093
163- 🔒 Security Features
164- Rate limiting on all endpoints
165- CORS protection
166- Helmet.js security headers
167- File type validation
168- Size limits on uploads
169- SSL/TLS encryption
170- Input sanitization
171- 🧪 Testing
222+ ``` bash
172223# Run all tests
173224npm run test
174225
@@ -183,25 +234,36 @@ npm run lint
183234
184235# Code formatting
185236npm run format
186- 📝 Contributing
187- Fork the repository
188- Create a feature branch: git checkout -b feature-name
189- Make your changes and add tests
190- Run tests: npm run test
191- Commit: git commit -m 'Add feature'
192- Push: git push origin feature-name
193- Create a Pull Request
194- 📄 License
195- This project is licensed under the MIT License - see the LICENSE file for details.
196-
197- 🆘 Support
198- 📧 Email: InkvertaSupport@yourcomictranslator.com
199- 🐛 Issues: GitHub Issues
200- 📖 Documentation: Wiki
201- 💬 Discord: Join our community
202- 🙏 Acknowledgments
203- Tesseract.js for OCR capabilities
204- Google Translate API for translation services
205- DeepL API for high-quality translations
206- React and Express communities
237+ ```
238+
239+ ## 📝 Contributing
240+
241+ 1 . Fork the repository
242+ 2 . Create a feature branch: ` git checkout -b feature-name `
243+ 3 . Make your changes and add tests
244+ 4 . Run tests: ` npm run test `
245+ 5 . Commit: ` git commit -m 'Add feature' `
246+ 6 . Push: ` git push origin feature-name `
247+ 7 . Create a Pull Request
248+
249+ ## 📄 License
250+
251+ This project is licensed under the MIT License - see the [ LICENSE] ( LICENSE ) file for details.
252+
253+ ## 🆘 Support
254+
255+ - 📧 Email: InkvertaSupport@yourcomictranslator.com
256+ - 🐛 Issues: [ GitHub Issues] ( https://github.com/Opikadash/Inkverta/issues )
257+ - 📖 Documentation: [ Wiki] ( https://github.com/Opikadash/Inkverta/wiki )
258+ - 💬 Discord: [ Join our community] ( https://discord.gg/comic-translator )
259+
260+ ## 🙏 Acknowledgments
261+
262+ - [ Tesseract.js] ( https://tesseract.projectnaptha.com/ ) for OCR capabilities
263+ - [ Google Translate API] ( https://cloud.google.com/translate ) for translation services
264+ - [ DeepL API] ( https://www.deepl.com/api ) for high-quality translations
265+ - [ React] ( https://reactjs.org/ ) and [ Express] ( https://expressjs.com/ ) communities
266+
267+ ---
268+
207269⭐ If you find this project helpful, please give it a star on GitHub!
0 commit comments