Files

Deployment Guide

This guide covers deploying Crypto Trader in various environments.

Table of Contents

  1. AppImage Deployment - Building and distributing AppImage
  2. Bluefin Linux - Bluefin Linux specific instructions
  3. PostgreSQL Setup - PostgreSQL configuration
  4. Updates - Update mechanism and versioning

Deployment Options

  • Single executable file
  • No installation required
  • Portable across Linux distributions
  • Includes all dependencies

From Source

  • Full control over installation
  • Customizable configuration
  • Development and production use

System Requirements

  • OS: Linux (Bluefin recommended), macOS, Windows
  • Python: 3.11+ (for source installation)
  • Node.js: 18+ (for frontend)
  • Memory: 4GB minimum, 8GB recommended
  • Storage: 1GB+ for application and data
  • Network: Internet connection required
  • Redis: Version 5.0+ (for state management)
  • PostgreSQL: Version 14+ (for database)

Quick Deployment

AppImage

  1. Download AppImage
  2. Make executable: chmod +x crypto_trader-*.AppImage
  3. Run: ./crypto_trader-*.AppImage

From Source

  1. Clone repository
  2. Install dependencies: pip install -r requirements.txt
  3. Install frontend dependencies: cd frontend && npm install
  4. Start Redis (see Redis section below for options)
  5. Start Celery worker: celery -A src.worker.app worker --loglevel=info &
  6. Start backend: uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000 &
  7. Start frontend: cd frontend && npm run dev

Or use the helper script:

./scripts/start_all.sh

Required Services

Redis

Redis is required for distributed state management and Celery background tasks (e.g., ML model training).

# Install (Ubuntu/Debian)
sudo apt-get install redis-server

Starting Redis:

# Option 1: Using system service (requires sudo)
sudo service redis-server start

# Option 2: Direct daemon mode (for containers/restricted environments)
redis-server --daemonize yes

# Verify
redis-cli ping  # Should return PONG

Note

: In containerized environments (Toolbox, Distrobox, etc.) where sudo is not available, use the direct daemon mode option.

Celery Worker

Celery handles background tasks like ML training:

# Start worker
celery -A src.worker.app worker --loglevel=info

# Start with specific queues
celery -A src.worker.app worker -Q ml_training,celery --loglevel=info

Post-Deployment

After deployment:

  1. Configure exchanges
  2. Set up risk management
  3. Verify Redis connection: python scripts/verify_redis.py
  4. Test with paper trading
  5. Review configuration
  6. Start with small positions

Production Considerations

  • Use a process manager (systemd, supervisor) for services
  • Configure Redis persistence (AOF or RDB)
  • Set up monitoring and alerting
  • Enable HTTPS for the API
  • Configure proper firewall rules