Initial commit: Document Translation API with Excel, Word, PowerPoint support
This commit is contained in:
78
DEPLOYMENT.md
Normal file
78
DEPLOYMENT.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# Development and Production Setup Scripts
|
||||
|
||||
## Start the API Server
|
||||
|
||||
### Development Mode (with auto-reload)
|
||||
```powershell
|
||||
# Activate virtual environment
|
||||
.\venv\Scripts\Activate.ps1
|
||||
|
||||
# Start server with hot-reload
|
||||
python main.py
|
||||
```
|
||||
|
||||
### Production Mode
|
||||
```powershell
|
||||
# Activate virtual environment
|
||||
.\venv\Scripts\Activate.ps1
|
||||
|
||||
# Start with uvicorn (better performance)
|
||||
uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4
|
||||
```
|
||||
|
||||
## Docker Deployment (Optional)
|
||||
|
||||
### Create Dockerfile
|
||||
```dockerfile
|
||||
FROM python:3.11-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
COPY . .
|
||||
|
||||
# Create directories
|
||||
RUN mkdir -p uploads outputs temp
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
```
|
||||
|
||||
### Build and Run
|
||||
```powershell
|
||||
# Build image
|
||||
docker build -t document-translator-api .
|
||||
|
||||
# Run container
|
||||
docker run -d -p 8000:8000 -v ${PWD}/uploads:/app/uploads -v ${PWD}/outputs:/app/outputs document-translator-api
|
||||
```
|
||||
|
||||
## Environment Variables for Production
|
||||
|
||||
```env
|
||||
TRANSLATION_SERVICE=google
|
||||
DEEPL_API_KEY=your_production_api_key
|
||||
MAX_FILE_SIZE_MB=100
|
||||
UPLOAD_DIR=/app/uploads
|
||||
OUTPUT_DIR=/app/outputs
|
||||
```
|
||||
|
||||
## Monitoring and Logging
|
||||
|
||||
Add to requirements.txt for production:
|
||||
```
|
||||
prometheus-fastapi-instrumentator==6.1.0
|
||||
python-json-logger==2.0.7
|
||||
```
|
||||
|
||||
## Security Hardening
|
||||
|
||||
1. Add rate limiting
|
||||
2. Implement authentication (JWT/API keys)
|
||||
3. Enable HTTPS/TLS
|
||||
4. Sanitize file uploads
|
||||
5. Implement virus scanning for uploads
|
||||
6. Add request validation middleware
|
||||
Reference in New Issue
Block a user