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.
git clone https://github.com/yourusername/docuvault.git
cd docuvault
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"
docker-compose up -d
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
sqlite3, gd, zip, mbstring, dommod_rewrite enabledtesseract-ocr (OCR processing)poppler-utils (PDF text extraction)imagemagick (image preprocessing)wget https://github.com/yourusername/docuvault/releases/latest/download/docuvault.zip
unzip docuvault.zip -d /var/www/html/docuvault
sudo chown -R www-data:www-data /var/www/html/docuvault
sudo chmod -R 755 /var/www/html/docuvault
# 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
<VirtualHost *:80>
ServerName docuvault.local
DocumentRoot /var/www/html/docuvault/app
<Directory /var/www/html/docuvault/app>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
| Variable | Default | Description |
|---|---|---|
TZ | UTC | Timezone for document timestamps |
MAX_UPLOAD_SIZE | 50M | Maximum file upload size |
OCR_LANGUAGE | eng | Default OCR language |
OCR_ENABLED | true | Enable/disable OCR processing |
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
"exact phrase" or keyword1 keyword2title:invoice or filename:receiptDocuVault 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"
Access Settings β Maintenance Tools:
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/
OCR not working:
# Check if tesseract is installed
tesseract --version
# Test OCR on sample image
tesseract sample.png output.txt
Upload failing:
php.iniPDF not displaying:
Enable debug mode by editing app/config.php:
error_reporting(E_ALL);
ini_set('display_errors', 1);
Check application logs:
/var/log/apache2/error.log/data/logs/ (if logging enabled)We welcome contributions! Please read our Contributing Guideβ for details.
git clone https://github.com/yourusername/docuvault.git
cd docuvault
composer install # PHP dependencies
npm install # Frontend dependencies
php -S localhost:8000 -t app/
Please use our Issue Templateβ when reporting bugs or requesting features.
This project is licensed under the MIT License - see the LICENSEβ file for details.
Made with β€οΈ by the DocuVault Team who don't exist
β If you find DocuVault useful, please consider starring this repository!
Content type
Image
Digest
sha256:bbb9ef74cβ¦
Size
317.6 MB
Last updated
1 day ago
docker pull aevrin/docs