Files
gh-christianlouis-docuelevate/docs/DeploymentGuide.md
T

3.2 KiB

Deployment Guide

This guide provides instructions for deploying DocuNova in various environments.

Prerequisites

  • Docker and Docker Compose
  • Access to required external services (if configured):
    • OpenAI API
    • Azure Document Intelligence
    • Dropbox API
    • Nextcloud instance
    • Paperless NGX instance
    • SMTP server (for email notifications)
    • IMAP server(s) (for email attachment processing)

Docker Deployment

Docker is the recommended deployment method for DocuNova.

Step 1: Clone the Repository

git clone https://github.com/christianlouis/document-processor.git
cd document-processor

Step 2: Configure Environment Variables

Create a .env file based on the example:

cp .env.example .env

Edit the .env file with your configuration settings. See the Configuration Guide for details.

Step 3: Run with Docker Compose

docker-compose up -d

This will start:

  • The DocuNova API server
  • A worker for background tasks
  • Redis for message broker and result storage
  • Gotenberg for PDF processing

Step 4: Verify the Installation

Access the web interface at http://localhost:8000 and the API documentation at http://localhost:8000/docs.

Production Considerations

Reverse Proxy Setup

For production use, we recommend setting up a reverse proxy (like Nginx or Traefik) to handle HTTPS and domain routing:

server {
    listen 80;
    server_name docunova.example.com;
    
    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Persistent Storage

The Docker setup uses volumes for persistent storage. For production, consider:

volumes:
  - /path/to/persistent/storage:/workdir

Security

  1. Always use HTTPS in production
  2. Enable authentication by setting AUTH_ENABLED=true
  3. Use strong passwords for all services
  4. Limit access to the Docker host
  5. Regularly update the application and dependencies

Scaling

For high-volume deployments:

  1. Increase worker processes by adding more worker containers:
worker:
  image: christianlouis/document-processor:latest
  deploy:
    replicas: 3
  1. Consider using dedicated Redis and database servers
  2. Monitor system performance and adjust resources as needed

Monitoring

Monitor your DocuNova deployment using:

  • Docker's built-in logging: docker-compose logs -f
  • Container metrics: docker stats
  • External monitoring tools like Prometheus and Grafana

Backup Procedures

Regularly back up the following:

  1. The /workdir directory containing all processed documents
  2. The database file (if using SQLite) or database contents (if using another DBMS)
  3. The .env configuration file

Updates

To update DocuNova to a newer version:

# Pull the latest changes
git pull

# Pull the latest Docker images
docker-compose pull

# Restart the services
docker-compose down
docker-compose up -d

Troubleshooting

See the Troubleshooting guide for common deployment issues and solutions.