diff --git a/.env.example b/.env.example index aaacb4f..fe41f8c 100644 --- a/.env.example +++ b/.env.example @@ -136,7 +136,6 @@ GRAFANA_HOSTNAME=grafana.yourdomain.com PROMETHEUS_HOSTNAME=prometheus.yourdomain.com LETTA_HOSTNAME=letta.yourdomain.com QDRANT_HOSTNAME=qdrant.yourdomain.com -GOTENBERG_HOSTNAME=gotenberg.yourdomain.com LETSENCRYPT_EMAIL= # Everything below this point is optional. diff --git a/Caddyfile b/Caddyfile index 242673c..db797bb 100644 --- a/Caddyfile +++ b/Caddyfile @@ -63,11 +63,6 @@ reverse_proxy qdrant:6333 } -# Gotenberg -{$GOTENBERG_HOSTNAME} { - reverse_proxy gotenberg:3000 -} - # Neo4j {$NEO4J_HOSTNAME} { reverse_proxy neo4j:7474 diff --git a/README.md b/README.md index 053f9a2..fe65b10 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ The installer also makes the following powerful open-source tools **available fo ✅ [**Caddy**](https://caddyserver.com/) - A powerful web server that automatically handles HTTPS/TLS for your custom domains, keeping your connections secure. -✅ [**Gotenberg**](https://gotenberg.dev/) - A stateless API for converting HTML, Markdown, Word, Excel, and other documents to PDF, PNG, or JPEG, ideal for automating document processing in n8n workflows. +✅ [**Gotenberg**](https://gotenberg.dev/) - A stateless API for converting HTML, Markdown, Word, Excel, and other documents to PDF, PNG, or JPEG. Available only within the Docker network for internal use by n8n workflows and other services. ✅ [**Langfuse**](https://langfuse.com/) - An open-source platform to help you observe and understand how your AI agents are performing, making it easier to debug and improve them. @@ -126,7 +126,6 @@ After successful installation, your services are up and running! Here's how to g - **Weaviate:** `weaviate.yourdomain.com` - **Neo4j:** `neo4j.yourdomain.com` - **Grafana:** `grafana.yourdomain.com` - - **Gotenberg:** `gotenberg.yourdomain.com` - **SearXNG:** `searxng.yourdomain.com` - **Prometheus:** `prometheus.yourdomain.com` (Typically used as a data source for Grafana) diff --git a/docker-compose.yml b/docker-compose.yml index a73528c..de695e6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -207,7 +207,6 @@ services: - PROMETHEUS_HOSTNAME=${PROMETHEUS_HOSTNAME} - GRAFANA_HOSTNAME=${GRAFANA_HOSTNAME} - LETTA_HOSTNAME=${LETTA_HOSTNAME} - - GOTENBERG_HOSTNAME=${GOTENBERG_HOSTNAME} - PROMETHEUS_USERNAME=${PROMETHEUS_USERNAME} - PROMETHEUS_PASSWORD_HASH=${PROMETHEUS_PASSWORD_HASH} - SEARXNG_USERNAME=${SEARXNG_USERNAME} diff --git a/memory-bank/activeContext.md b/memory-bank/activeContext.md index 1c1b28d..170622d 100644 --- a/memory-bank/activeContext.md +++ b/memory-bank/activeContext.md @@ -47,10 +47,11 @@ The integration follows the established pattern for optional services in the n8n - Included use cases for n8n integration ## Key Implementation Considerations -- **Security**: Relies on network isolation and reverse proxy for security +- **Security**: Internal-only service, no external access, secured by Docker network isolation - **Resource Usage**: Minimal resource requirements but may spike during PDF rendering -- **n8n Integration**: Accessible via HTTP requests in n8n workflows +- **n8n Integration**: Accessible via HTTP requests in n8n workflows using internal Docker network - **API Usage**: Standard REST API with endpoints for different conversion types +- **Network Access**: Available only within Docker network at http://gotenberg:3000 ## API Usage with n8n When integrated with n8n, Gotenberg provides document conversion capabilities accessible via these endpoints: diff --git a/memory-bank/progress.md b/memory-bank/progress.md index 43e84d0..ef6e4e8 100644 --- a/memory-bank/progress.md +++ b/memory-bank/progress.md @@ -26,6 +26,11 @@ All major components have been implemented successfully: - Added service URL to access list in Quick Start section - Documented use cases for n8n integration +6. ✅ Updated final report script + - Added Gotenberg section to scripts/06_final_report.sh + - Included hostname, internal access URLs, and API endpoint documentation + - Followed existing service reporting pattern for consistency + ### Testing Status - ✅ Successfully validated Docker Compose configuration for Gotenberg service - ⏳ Pending tests: diff --git a/memory-bank/tasks.md b/memory-bank/tasks.md index b595d33..ea1894b 100644 --- a/memory-bank/tasks.md +++ b/memory-bank/tasks.md @@ -120,7 +120,12 @@ Integrate Gotenberg, a stateless API for converting documents to PDF, PNG, JPEG, - [x] Include service URL in access list - [x] Add relevant use cases for n8n integration -6. **Testing and Validation** +6. **Final Report Script** + - [x] Add Gotenberg section to scripts/06_final_report.sh + - [x] Include hostname, internal access, and API endpoints + - [x] Follow existing service reporting pattern + +7. **Testing and Validation** - [ ] Test complete installation flow with Gotenberg selected - [ ] Verify service accessibility via configured hostname - [ ] Test API endpoints and document conversion functionality @@ -214,6 +219,14 @@ Upon completion of implementation phase: - Created reflection document in memory-bank/reflection/ - Ready for final testing and validation phase +- **Gotenberg Security Configuration Update**: ✅ COMPLETED + - Removed external access configuration (Caddy reverse proxy) + - Removed GOTENBERG_HOSTNAME from .env.example and docker-compose.yml + - Updated README.md to reflect internal-only access + - Modified final report script to show only internal access + - Gotenberg now accessible only within Docker network at http://gotenberg:3000 + - Enhanced security by limiting access to Docker internal network only + ## Available for Development ### Potential Enhancement Areas diff --git a/scripts/06_final_report.sh b/scripts/06_final_report.sh index 594109c..49ec6ea 100755 --- a/scripts/06_final_report.sh +++ b/scripts/06_final_report.sh @@ -131,6 +131,20 @@ if is_profile_active "crawl4ai"; then echo "(Note: Not exposed externally via Caddy by default)" fi +if is_profile_active "gotenberg"; then + echo + echo "================================= Gotenberg ============================" + echo + echo "Internal Access (e.g., from n8n): http://gotenberg:3000" + echo "API Documentation: https://gotenberg.dev/docs" + echo + echo "Common API Endpoints:" + echo " HTML to PDF: POST /forms/chromium/convert/html" + echo " URL to PDF: POST /forms/chromium/convert/url" + echo " Markdown to PDF: POST /forms/chromium/convert/markdown" + echo " Office to PDF: POST /forms/libreoffice/convert" +fi + if is_profile_active "n8n" || is_profile_active "langfuse"; then echo echo "================================= Redis (Valkey) ======================"