feat: unify environment scripts with start.sh

- Add unified start.sh script with subcommands (all/backend/frontend)
- Add process management (--stop, --status)
- Remove separate start_backend.sh and start_frontend.sh
- Update setup_dev_env.sh with pre-flight checks and --cpu-only/--skip-db options
- Update .env.example to remove sensitive data and add DIFY translation config
- Add .pid/ to .gitignore for process management

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
egg
2025-12-02 12:48:52 +08:00
parent a07aad96b3
commit d7f7166a2d
11 changed files with 875 additions and 360 deletions

View File

@@ -1,81 +1,85 @@
# Tool_OCR - Environment Configuration Template
# Copy this file to .env and fill in your actual values
# Copy this file to .env.local and fill in your actual values
# ===== Database Configuration =====
MYSQL_HOST=mysql.theaken.com
MYSQL_PORT=33306
MYSQL_USER=A060
MYSQL_PASSWORD=WLeSCi0yhtc7
MYSQL_DATABASE=db_A060
MYSQL_HOST=your-mysql-host
MYSQL_PORT=3306
MYSQL_USER=your-username
MYSQL_PASSWORD=your-password
MYSQL_DATABASE=your-database
# ===== Application Configuration =====
# Server ports
BACKEND_PORT=12010
FRONTEND_PORT=12011
BACKEND_PORT=8000
FRONTEND_PORT=5173
# Security
# Security (generate a random string for production)
SECRET_KEY=your-secret-key-here-please-change-this-to-random-string
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
ACCESS_TOKEN_EXPIRE_MINUTES=1440
# ===== External Authentication Configuration =====
EXTERNAL_AUTH_API_URL=https://your-auth-api.example.com
EXTERNAL_AUTH_ENDPOINT=/api/auth/login
EXTERNAL_AUTH_TIMEOUT=30
TOKEN_REFRESH_BUFFER=300
# ===== Task Management Configuration =====
DATABASE_TABLE_PREFIX=tool_ocr_
ENABLE_TASK_HISTORY=true
TASK_RETENTION_DAYS=30
MAX_TASKS_PER_USER=1000
# ===== OCR Configuration =====
# PaddleOCR model directory
PADDLEOCR_MODEL_DIR=./models/paddleocr
# Supported languages (comma-separated)
OCR_LANGUAGES=ch,en,japan,korean
# Default confidence threshold
OCR_CONFIDENCE_THRESHOLD=0.5
# Maximum concurrent OCR workers
MAX_OCR_WORKERS=4
# GPU Acceleration Configuration
FORCE_CPU_MODE=false
GPU_MEMORY_FRACTION=0.8
GPU_DEVICE_ID=0
# ===== File Upload Configuration =====
# Maximum file size in bytes (50MB default)
MAX_UPLOAD_SIZE=52428800
# Allowed file extensions (comma-separated)
ALLOWED_EXTENSIONS=png,jpg,jpeg,pdf,bmp,tiff
# Upload directories
ALLOWED_EXTENSIONS=png,jpg,jpeg,pdf,bmp,tiff,doc,docx,ppt,pptx
UPLOAD_DIR=./uploads
TEMP_DIR=./uploads/temp
PROCESSED_DIR=./uploads/processed
IMAGES_DIR=./uploads/images
# ===== Export Configuration =====
# Storage directories
STORAGE_DIR=./storage
MARKDOWN_DIR=./storage/markdown
JSON_DIR=./storage/json
EXPORTS_DIR=./storage/exports
# ===== PDF Generation Configuration =====
# Pandoc path (auto-detected if installed via brew)
PANDOC_PATH=/opt/homebrew/bin/pandoc
# WeasyPrint font directory
FONT_DIR=/System/Library/Fonts
# Default PDF page size
# Linux: /usr/bin/pandoc, macOS: /opt/homebrew/bin/pandoc
PANDOC_PATH=/usr/bin/pandoc
# Linux: /usr/share/fonts, macOS: /System/Library/Fonts
FONT_DIR=/usr/share/fonts
PDF_PAGE_SIZE=A4
# Default PDF margins (mm)
PDF_MARGIN_TOP=20
PDF_MARGIN_BOTTOM=20
PDF_MARGIN_LEFT=20
PDF_MARGIN_RIGHT=20
# ===== Translation Configuration (Reserved) =====
# Enable translation feature (reserved for future)
ENABLE_TRANSLATION=false
# Translation engine: offline (argostranslate) or api (future)
TRANSLATION_ENGINE=offline
# Argostranslate models directory
ARGOSTRANSLATE_MODELS_DIR=./models/argostranslate
# ===== Translation Configuration (DIFY API) =====
# Enable translation feature
ENABLE_TRANSLATION=true
# DIFY API endpoint
DIFY_API_URL=https://your-dify-instance.example.com
# DIFY API key (get from DIFY dashboard)
DIFY_API_KEY=your-dify-api-key
# ===== Background Tasks Configuration =====
# Task queue type: memory (default) or redis (future)
TASK_QUEUE_TYPE=memory
# Redis URL (if using redis)
# REDIS_URL=redis://localhost:6379/0
# ===== CORS Configuration =====
# Allowed origins (comma-separated, * for all)
CORS_ORIGINS=http://localhost:12011,http://127.0.0.1:12011
CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173
# ===== Logging Configuration =====
LOG_LEVEL=INFO