Files
sharey/docs/DEPLOYMENT.md
2025-09-27 17:45:52 +01:00

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

  1. File Size Limits: Configure your web server to handle large file uploads
  2. HTTPS: Use SSL/TLS certificates for secure file transfers
  3. Rate Limiting: Implement rate limiting to prevent abuse
  4. Monitoring: Set up logging and monitoring for the application
  5. Backup: B2 provides versioning, but consider backup strategies
  6. Security: Restrict B2 bucket access and use environment variables for secrets