| Version | Supported |
|---|---|
| 1.0.x | ✅ |
DocuChat is designed as a privacy-first, local-only application. All document processing, embeddings, and queries happen on your local machine:
- ✅ No data leaves your machine (unless using cloud LLMs like Gemini)
- ✅ Local databases only (ChromaDB, Neo4j run on localhost)
- ✅ No telemetry or analytics
- ✅ Complete control over your data
docuchat123) is for local development only.
For production or shared environments:
-
Change the Neo4j password immediately:
docker exec -it docuchat-neo4j cypher-shell -u neo4j -p docuchat123 # Then run: ALTER CURRENT USER SET PASSWORD FROM 'docuchat123' TO 'your-secure-password';
-
Update your environment variables:
export NEO4J_PASSWORD='your-secure-password'
-
Or update
docuchat/config/settings.pyto use environment variables:NEO4J_CONFIG = { "password": os.getenv("NEO4J_PASSWORD", "docuchat123"), ... }
If using cloud LLM providers (Gemini, OpenAI, etc.):
- ✅ ALWAYS use environment variables for API keys
- ✅ NEVER commit
.envfiles to version control - ✅ Use
.env.exampleas a template only
# Good
export GEMINI_API_KEY='your-api-key-here'
# Bad - Don't hardcode in files
api_key = "AIza..." # Never do this!Default services run on localhost only:
- ChromaDB: localhost:8000 (not exposed externally)
- Neo4j: bolt://localhost:7687 (not exposed externally)
- Ollama: localhost:11434 (not exposed externally)
If you expose these services externally:
- Enable authentication on all services
- Use SSL/TLS encryption
- Configure firewall rules
- Use strong passwords
DocuChat stores data in:
~/.docuchat/data/- Application data~/.docuchat/chroma/- Vector embeddings- Neo4j Docker volume - Graph database
To securely delete all data:
docuchat reset-all
docker volume rm docuchat-neo4j-dataWe take security seriously. If you discover a security vulnerability, please follow these steps:
Please do not create a public GitHub issue for security vulnerabilities.
Email security details to: security@docuchat.ai
Include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
- Your contact information
- Initial Response: Within 48 hours
- Status Update: Within 7 days
- Fix Timeline: Depends on severity
- Critical: 1-7 days
- High: 7-14 days
- Medium: 14-30 days
- Low: 30-90 days
- We will acknowledge your report within 48 hours
- We will provide a detailed response within 7 days
- We will work with you to understand and resolve the issue
- We will credit you in the security advisory (unless you prefer anonymity)
- We request that you do not disclose the vulnerability publicly until we have released a fix
-
Keep Dependencies Updated
pip install --upgrade docuchat
-
Use Strong Passwords
- Change default Neo4j password
- Use password managers
- Enable 2FA on GitHub/cloud accounts
-
Review Ingested Documents
- Only ingest trusted documents
- Be aware of potential malicious content in PDFs
- Use
docuchat reset-datato clear suspicious data
-
Limit File System Access
- DocuChat reads files from directories you specify
- Review folder contents before ingestion
- Use read-only mounts if possible
-
Code Review
- All PRs require review before merge
- Security-sensitive changes require extra scrutiny
- Use GitHub's security scanning tools
-
Dependency Management
- Regular dependency audits with
pip-audit - Pin critical dependencies in
requirements.txt - Monitor security advisories
- Regular dependency audits with
-
Input Validation
- Sanitize file paths and user input
- Validate document formats before processing
- Use parameterized database queries
-
Secret Management
- Never commit secrets to Git
- Use environment variables for sensitive data
- Add pre-commit hooks to detect secrets
- ✅ Local-only processing by default
- ✅ No telemetry or external data transmission
- ✅ Environment variable-based configuration
- ✅ Comprehensive
.gitignorefor sensitive files - ✅ Docker isolation for database services
- 🔄 Encrypted document storage (at-rest encryption)
- 🔄 Audit logging for data access
- 🔄 Role-based access control (multi-user mode)
- 🔄 Document classification and DLP policies
DocuChat undergoes regular security reviews:
- Last Review: October 2025
- Next Scheduled: January 2026
- Focus Areas: Dependency vulnerabilities, input validation, credential management
- No Built-in Encryption: Documents are stored unencrypted on disk
- No Access Control: Single-user application (no authentication)
- No Audit Logs: No tracking of document access or modifications
- Container Security: Neo4j runs with default Docker security settings
These are acceptable for a local development tool but should be addressed for enterprise deployment.
- Email: security@docuchat.ai
- Response Time: 48 hours
- PGP Key: Available on request
Remember: Security is a shared responsibility. If you're unsure about anything, please ask!