# Reklamator Deployment Guide This guide covers deploying Reklamator to a production Linux server with security best practices. ## Prerequisites - Linux server (Ubuntu 22.04 LTS recommended) - Domain name with DNS configured - Root or sudo access - SSL/TLS certificate (Let's Encrypt recommended) ## System Requirements - Python 3.11 or higher - 2GB RAM minimum (4GB recommended) - 20GB disk space (depends on feedback volume) - ClamAV for virus scanning - Nginx as reverse proxy ## Installation Steps ### 1. System Setup ```bash # Update system packages sudo apt update && sudo apt upgrade -y # Install required packages sudo apt install -y python3.11 python3.11-venv python3-pip nginx clamav clamav-daemon git # Install certbot for Let's Encrypt SSL sudo apt install -y certbot python3-certbot-nginx ``` ### 2. ClamAV Configuration ```bash # Stop ClamAV daemon sudo systemctl stop clamav-daemon # Update virus definitions sudo freshclam # Start and enable ClamAV daemon sudo systemctl start clamav-daemon sudo systemctl enable clamav-daemon # Verify ClamAV is running sudo systemctl status clamav-daemon # Test ClamAV socket clamdscan --version ``` **ClamAV Configuration File** (`/etc/clamav/clamd.conf`): ```conf # Uncomment this line if present LocalSocket /var/run/clamav/clamd.ctl # Set appropriate permissions User clamav SocketGroup clamav SocketMode 666 # Increase timeouts for large files ReadTimeout 300 CommandReadTimeout 30 # Memory limits MaxFileSize 25M MaxScanSize 100M ``` ### 3. Application Deployment ```bash # Create application user sudo useradd -r -s /bin/bash -m -d /opt/reklamator reklamator # Switch to application user sudo su - reklamator # Clone repository git clone /opt/reklamator/app cd /opt/reklamator/app # Create virtual environment python3.11 -m venv venv source venv/bin/activate # Install dependencies pip install --upgrade pip pip install -r requirements.txt # Create data directory mkdir -p /opt/reklamator/data # Exit back to root exit ``` ### 4. Environment Configuration Create `/opt/reklamator/app/.env`: ```bash # Security (REQUIRED) SECRET_KEY= ANTHROPIC_API_KEY= # Paths DATA_DIR=/opt/reklamator/data # ClamAV CLAMD_SOCKET=/var/run/clamav/clamd.ctl # Rate Limiting RATE_LIMIT_ENABLED=true RATE_LIMIT_PER_HOUR=10 # File Upload MAX_CONTENT_LENGTH=10485760 ``` **Generate SECRET_KEY:** ```bash python3 -c "import secrets; print(secrets.token_hex(32))" ``` Set proper permissions: ```bash sudo chown reklamator:reklamator /opt/reklamator/app/.env sudo chmod 600 /opt/reklamator/app/.env ``` ### 5. Initialize Application ```bash # Switch to application user sudo su - reklamator cd /opt/reklamator/app source venv/bin/activate # Initialize admin user python init_admin.py # Follow prompts to create admin user # Create test product (optional) mkdir -p /opt/reklamator/data/products/test-product cat > /opt/reklamator/data/products/test-product/config.yaml <