🚀 Major Release: DigiServer v1.1.0 Production Deployment ## 📁 Project Restructure - Moved all application code to app/ directory for Docker containerization - Centralized persistent data in data/ directory with volume mounting - Removed development artifacts and cleaned up project structure ## 🐳 Docker Integration - Added production-ready Dockerfile with LibreOffice and poppler-utils - Updated docker-compose.yml for production deployment - Added .dockerignore for optimized build context - Created automated deployment script (deploy-docker.sh) - Added cleanup script (cleanup-docker.sh) ## 📄 Document Processing Enhancements - Integrated LibreOffice for professional PPTX to PDF conversion - Implemented PPTX → PDF → 4K JPG workflow for optimal quality - Added poppler-utils for enhanced PDF processing - Simplified PDF conversion to 300 DPI for reliability ## 🔧 File Management Improvements - Fixed absolute path resolution for containerized deployment - Updated all file deletion functions with proper path handling - Enhanced bulk delete functions for players and groups - Improved file upload workflow with consistent path management ## 🛠️ Code Quality & Stability - Cleaned up pptx_converter.py from 442 to 86 lines - Removed all Python cache files (__pycache__/, *.pyc) - Updated file operations for production reliability - Enhanced error handling and logging ## 📚 Documentation Updates - Updated README.md with Docker deployment instructions - Added comprehensive DEPLOYMENT.md guide - Included production deployment best practices - Added automated deployment workflow documentation ## 🔐 Security & Production Features - Environment-based configuration - Health checks and container monitoring - Automated admin user creation - Volume-mounted persistent data - Production logging and error handling ## ✅ Ready for Production - Clean project structure optimized for Docker - Automated deployment with ./deploy-docker.sh - Professional document processing pipeline - Reliable file management system - Complete documentation and deployment guides Access: http://localhost:8880 | Admin: admin/Initial01!
59 lines
1.3 KiB
Docker
59 lines
1.3 KiB
Docker
# Use Python 3.11 slim image
|
|
FROM python:3.11-slim
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Install system dependencies including LibreOffice and poppler-utils
|
|
RUN apt-get update && apt-get install -y \
|
|
poppler-utils \
|
|
libreoffice \
|
|
ffmpeg \
|
|
libpoppler-cpp-dev \
|
|
libmagic1 \
|
|
libffi-dev \
|
|
libssl-dev \
|
|
g++ \
|
|
curl \
|
|
libjpeg-dev \
|
|
zlib1g-dev \
|
|
libxml2-dev \
|
|
libxslt-dev \
|
|
build-essential \
|
|
cargo \
|
|
fonts-dejavu-core \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& apt-get clean
|
|
|
|
# Debug: Verify Rust installation
|
|
RUN rustc --version && cargo --version
|
|
|
|
# Verify LibreOffice and poppler-utils installation
|
|
RUN libreoffice --version && pdftoppm -v
|
|
|
|
# Copy requirements first for better layer caching
|
|
COPY app/requirements.txt .
|
|
|
|
# Upgrade pip and install Python dependencies
|
|
RUN python -m pip install --upgrade pip && \
|
|
pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copy application code
|
|
COPY app/ .
|
|
|
|
# Make entrypoint script executable
|
|
RUN chmod +x entrypoint.sh
|
|
|
|
# Create necessary directories for volumes
|
|
RUN mkdir -p /app/static/uploads /app/static/resurse /app/instance
|
|
|
|
# Expose the application port
|
|
EXPOSE 5000
|
|
|
|
# Set environment variables
|
|
ENV FLASK_APP=app.py
|
|
ENV FLASK_RUN_HOST=0.0.0.0
|
|
ENV PYTHONPATH=/app
|
|
|
|
# Use entrypoint script
|
|
ENTRYPOINT ["./entrypoint.sh"] |