Sign inSign up

aevrin/docs

By aevrin

β€’Updated 1 day ago

Image
0

10K+

aevrin/docs repository overview

⁠DocuVault πŸ“

A modern, self-hosted document management system built as a paperless-ngx alternative. DocuVault provides a clean, intuitive interface for digitizing, organizing, and searching your documents with powerful OCR capabilities.

DocuVault Interface PHP License

⁠✨ Features

β πŸ“„ Document Management
  • Multi-format Support: PDF, PNG, JPG, JPEG, TIFF, DOCX
  • Drag & Drop Upload: Intuitive file upload with progress tracking
  • Batch Processing: Upload and process multiple documents simultaneously
  • Version Control: Track document versions and modifications
  • Full-text Search: Search within document content using OCR
  • Smart Filtering: Filter by date range, tags, file type, and custom fields
  • Advanced Queries: Support for complex search operators
  • Export Results: Export search results to CSV or JSON
⁠🏷️ Organization
  • Hierarchical Tags: Create nested tag structures for better organization
  • Custom Fields: Add unlimited custom metadata fields
  • Smart Folders: Auto-categorization based on content analysis
  • Bulk Operations: Apply tags and metadata to multiple documents
β πŸ€– OCR & Processing
  • Tesseract Integration: High-quality text extraction from images and PDFs
  • Multi-language Support: Process documents in 13+ languages
  • Content Indexing: Automatic full-text search index generation
  • Smart Enhancement: Automatic image preprocessing for better OCR results
β πŸ“Š Analytics & Insights
  • Usage Statistics: Track document counts, storage usage, and activity
  • Visual Dashboard: Charts showing document distribution by year, type, and tags
  • Export Analytics: Generate reports on document organization trends
⁠🎨 Modern Interface
  • Dark/Light Themes: Toggle between modern dark and light themes
  • Responsive Design: Optimized for desktop, tablet, and mobile devices
  • Real-time Updates: Live progress tracking and status updates
  • Accessibility: WCAG-compliant interface with keyboard navigation

β πŸš€ Quick Start with Docker

  1. Clone the repository:
git clone https://github.com/yourusername/docuvault.git
cd docuvault
  1. Create docker-compose.yml:
services:
  docuvault:
    container_name: docuvault
    image: aevrin/docs:latest
    ports:
      - "8080:80"
    volumes:
      - ./data:/data
    restart: unless-stopped
    environment:
      - TZ=America/New_York
    user: "www-data:www-data"
  1. Start the container:
docker-compose up -d
  1. Access DocuVault: Open http://localhost:8080⁠ in your browser
⁠Manual Docker Run
docker run -d \
  --name docuvault \
  -p 8080:80 \
  -v $(pwd)/data:/data \
  -e TZ=America/New_York \
  --user www-data:www-data \
  aevrin/docs:latest

β πŸ› οΈ Manual Installation

⁠Prerequisites
  • PHP 8.0+ with extensions:
    • sqlite3, gd, zip, mbstring, dom
  • Apache with mod_rewrite enabled
  • System packages:
    • tesseract-ocr (OCR processing)
    • poppler-utils (PDF text extraction)
    • imagemagick (image preprocessing)
⁠Installation Steps
  1. Download and extract:
wget https://github.com/yourusername/docuvault/releases/latest/download/docuvault.zip
unzip docuvault.zip -d /var/www/html/docuvault
  1. Set permissions:
sudo chown -R www-data:www-data /var/www/html/docuvault
sudo chmod -R 755 /var/www/html/docuvault
  1. Install OCR dependencies:
# Ubuntu/Debian
sudo apt update
sudo apt install tesseract-ocr tesseract-ocr-eng poppler-utils imagemagick

# CentOS/RHEL
sudo yum install tesseract tesseract-langpack-eng poppler-utils ImageMagick
  1. Configure Apache:
<VirtualHost *:80>
    ServerName docuvault.local
    DocumentRoot /var/www/html/docuvault/app
    
    <Directory /var/www/html/docuvault/app>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
  1. Initialize the application: Visit your DocuVault URL to complete setup

β βš™οΈ Configuration

⁠Environment Variables
VariableDefaultDescription
TZUTCTimezone for document timestamps
MAX_UPLOAD_SIZE50MMaximum file upload size
OCR_LANGUAGEengDefault OCR language
OCR_ENABLEDtrueEnable/disable OCR processing
⁠OCR Languages

DocuVault supports multiple OCR languages. Install additional language packs:

# Install French language pack
sudo apt install tesseract-ocr-fra

# Install German language pack  
sudo apt install tesseract-ocr-deu

# Install Spanish language pack
sudo apt install tesseract-ocr-spa

Available languages: eng, fra, deu, spa, ita, por, nld, rus, jpn, chi_sim, chi_tra, kor, ara

β πŸ“– Usage Guide

⁠Uploading Documents
  1. Single Upload: Click "Upload" β†’ drag files or browse β†’ fill metadata β†’ upload
  2. Batch Upload: Enable "Batch Mode" β†’ configure individual file settings
  3. Bulk Import: Use drag-and-drop for multiple files with shared metadata
⁠Organizing Documents
  • Tags: Create hierarchical tags for categorization
  • Custom Fields: Add metadata like "Invoice Number", "Client", etc.
  • Bulk Actions: Select multiple documents for batch operations
  • Text Search: "exact phrase" or keyword1 keyword2
  • Field Search: title:invoice or filename:receipt
  • Filters: Combine text search with date ranges and tag filters
⁠API Usage

DocuVault provides a RESTful API for integration:

# Upload document
curl -X POST http://localhost:8080/api/upload \
  -F "[email protected]" \
  -F "title=My Document" \
  -F "tags=[1,2,3]"

# Search documents
curl "http://localhost:8080/api/search?query=invoice&tags=1,2&limit=10"

β πŸ”§ Maintenance

⁠Database Maintenance

Access Settings β†’ Maintenance Tools:

  • Reindex Database: Rebuild search indexes for better performance
  • Rebuild OCR: Reprocess all documents with updated OCR settings
  • Clean Temp Files: Remove temporary files to free up space
⁠Backup Strategy

Important directories to backup:

  • /data/documents/ - All uploaded documents
  • /data/database.sqlite - Document metadata and search index
# Create backup
tar -czf docuvault-backup-$(date +%Y%m%d).tar.gz /path/to/data/

# Restore backup
tar -xzf docuvault-backup-20241201.tar.gz -C /path/to/restore/

β πŸ› Troubleshooting

⁠Common Issues

OCR not working:

# Check if tesseract is installed
tesseract --version

# Test OCR on sample image
tesseract sample.png output.txt

Upload failing:

  • Check PHP upload limits in php.ini
  • Verify directory permissions (775 for data directories)
  • Check available disk space

PDF not displaying:

  • Ensure PDF.js is loading correctly
  • Check browser console for JavaScript errors
  • Verify file permissions and accessibility
⁠Debug Mode

Enable debug mode by editing app/config.php:

error_reporting(E_ALL);
ini_set('display_errors', 1);
⁠Log Files

Check application logs:

  • PHP errors: /var/log/apache2/error.log
  • DocuVault logs: /data/logs/ (if logging enabled)

⁠🀝 Contributing

We welcome contributions! Please read our Contributing Guide⁠ for details.

⁠Development Setup
  1. Clone repository:
git clone https://github.com/yourusername/docuvault.git
cd docuvault
  1. Install dependencies:
composer install  # PHP dependencies
npm install       # Frontend dependencies
  1. Run development server:
php -S localhost:8000 -t app/
⁠Reporting Issues

Please use our Issue Template⁠ when reporting bugs or requesting features.

β πŸ“„ License

This project is licensed under the MIT License - see the LICENSE⁠ file for details.

β πŸ™ Acknowledgments

  • PDF.js - PDF rendering in the browser
  • Tesseract OCR - Optical character recognition
  • Bootstrap - UI framework
  • Chart.js - Data visualization
  • Font Awesome - Icons

β πŸ“š Documentation

β πŸ—ΊοΈ Roadmap

  • Mobile App: Native iOS and Android apps
  • Cloud Sync: Integration with cloud storage providers
  • Workflow Automation: Document processing workflows
  • Advanced Analytics: Machine learning insights
  • Multi-user Support: User management and permissions
  • Plugin System: Extensible architecture for custom features

Made with ❀️ by the DocuVault Team who don't exist

⭐ If you find DocuVault useful, please consider starring this repository!

Tag summary

Content type

Image

Digest

sha256:bbb9ef74c…

Size

317.6 MB

Last updated

1 day ago

docker pull aevrin/docs