Local changes: Updated model training, removed debug instrumentation, and configuration improvements
This commit is contained in:
116
docs/deployment/README.md
Normal file
116
docs/deployment/README.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# Deployment Guide
|
||||
|
||||
This guide covers deploying Crypto Trader in various environments.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [AppImage Deployment](appimage.md) - Building and distributing AppImage
|
||||
2. [Bluefin Linux](bluefin.md) - Bluefin Linux specific instructions
|
||||
3. [PostgreSQL Setup](postgresql.md) - PostgreSQL configuration
|
||||
4. [Updates](updates.md) - Update mechanism and versioning
|
||||
|
||||
## Deployment Options
|
||||
|
||||
### AppImage (Recommended)
|
||||
|
||||
- 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:
|
||||
```bash
|
||||
./scripts/start_all.sh
|
||||
```
|
||||
|
||||
## Required Services
|
||||
|
||||
### Redis
|
||||
|
||||
Redis is required for distributed state management and Celery background tasks (e.g., ML model training).
|
||||
|
||||
```bash
|
||||
# Install (Ubuntu/Debian)
|
||||
sudo apt-get install redis-server
|
||||
```
|
||||
|
||||
**Starting Redis**:
|
||||
|
||||
```bash
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
Reference in New Issue
Block a user