1.8 KiB
1.8 KiB
Deployment Configuration
Environment Variables for Production
When deploying Sharey to production, make sure to set these environment variables:
# Required B2 Configuration
export B2_APPLICATION_KEY_ID="your_key_id"
export B2_APPLICATION_KEY="your_key"
export B2_BUCKET_NAME="your_bucket_name"
# Flask Configuration
export FLASK_ENV="production"
export FLASK_DEBUG="False"
Docker Deployment
Dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8866
CMD ["python", "app.py"]
Docker Compose
version: '3.8'
services:
sharey:
build: .
ports:
- "8866:8866"
environment:
- B2_APPLICATION_KEY_ID=${B2_APPLICATION_KEY_ID}
- B2_APPLICATION_KEY=${B2_APPLICATION_KEY}
- B2_BUCKET_NAME=${B2_BUCKET_NAME}
volumes:
- .env:/app/.env
Nginx Reverse Proxy
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8866;
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;
# Increase client max body size for file uploads
client_max_body_size 100M;
}
}
Production Considerations
- File Size Limits: Configure your web server to handle large file uploads
- HTTPS: Use SSL/TLS certificates for secure file transfers
- Rate Limiting: Implement rate limiting to prevent abuse
- Monitoring: Set up logging and monitoring for the application
- Backup: B2 provides versioning, but consider backup strategies
- Security: Restrict B2 bucket access and use environment variables for secrets