Files
Ultroid-fork/UBUNTU_DEPLOYMENT.md
Cursor User 7f1ba3cdc3 Add comprehensive Docker deployment with safety features
Features:
- Complete Ubuntu dependency resolution in requirements.txt
- Safe Docker deployment that preserves existing bash startup setups
- Isolated Docker environment (docker-ultroid/) with different ports
- Automatic detection of existing bot configurations
- Session generation scripts for Docker deployment
- Health check and diagnostic tools
- Comprehensive documentation and deployment guides

 Safety:
- Detects existing 'bash startup' method and creates isolated environment
- Uses different ports (8081) to avoid conflicts
- Separate volumes and configs for Docker deployment
- Both bash startup and Docker can run side by side
- No interference with existing bot setups

 Files added/updated:
- requirements.txt (all missing dependencies)
- Docker setup (Dockerfile, docker-compose.yml, .env.sample)
- Deployment scripts (ubuntu_setup.sh, docker-deploy.sh, quick-start.sh)
- Safety scripts (safe-docker-setup.sh with isolation logic)
- Management tools (Makefile, health_check.sh, generate-session.sh)
- Documentation (SAFE_DOCKER_GUIDE.md, DOCKER_DEPLOYMENT.md, etc.)

Ready for production Ubuntu server deployment!
2025-06-18 20:42:10 +02:00

241 lines
5.1 KiB
Markdown

# Ultroid Ubuntu Server Deployment Guide
This guide helps you deploy Ultroid userbot on Ubuntu Server with all dependencies and plugins working correctly.
## 🚀 Quick Setup
### Method 1: Automated Setup Script
```bash
# Clone the repository
git clone https://github.com/TeamUltroid/Ultroid.git
cd Ultroid
# Run the automated setup script
chmod +x ubuntu_setup.sh
./ubuntu_setup.sh
```
### Method 2: Docker Deployment
```bash
# Build and run with Docker
docker build -t ultroid .
docker run -d --name ultroid-bot ultroid
```
### Method 3: Manual Installation
#### 1. System Dependencies
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip python3-venv git wget curl unzip ffmpeg mediainfo nodejs npm build-essential python3-dev libffi-dev libssl-dev libjpeg-dev libpng-dev libwebp-dev libopenjp2-7-dev libtiff5-dev libfreetype6-dev liblcms2-dev libxml2-dev libxslt1-dev zlib1g-dev libmagic1
```
#### 2. Python Environment
```bash
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
```
#### 3. Configuration
```bash
# Copy example config
cp config.py.example config.py
# Edit configuration
nano config.py
```
## 📋 Required Dependencies
All required Python packages are listed in `requirements.txt`. The setup script automatically installs:
### Core Dependencies
- telethon
- gitpython
- python-decouple
- python-dotenv
- telegraph
- enhancer
- requests
- aiohttp
- catbox-uploader
- cloudscraper
### Plugin Dependencies
- beautifulsoup4 (web scraping)
- opencv-python (image/video processing)
- pillow (image manipulation)
- pytz (timezone handling)
- pygments (syntax highlighting)
- youtube-dl, yt-dlp (video downloading)
- qrcode (QR code generation)
- matplotlib, numpy, scipy (data visualization)
- selenium (web automation)
- And 40+ more specialized packages
## 🔧 Configuration
### 1. Bot Credentials
Add your credentials to `config.py`:
```python
API_ID = your_api_id
API_HASH = "your_api_hash"
BOT_TOKEN = "your_bot_token"
```
### 2. Google Drive Setup (Optional)
1. Go to [Google Cloud Console](https://console.developers.google.com/)
2. Create a project and enable Google Drive API
3. Download `credentials.json`
4. Place it in the Ultroid root directory
### 3. Database (Optional)
Configure Redis or MongoDB for enhanced features:
```python
REDIS_URI = "redis://localhost:6379"
DATABASE_URL = "mongodb://localhost:27017/ultroid"
```
## 🎯 Running the Bot
### Development Mode
```bash
source venv/bin/activate
python3 -m pyUltroid
```
### Production Mode (systemd service)
```bash
# Copy service file
sudo cp ultroid.service /etc/systemd/system/
# Enable and start service
sudo systemctl enable ultroid
sudo systemctl start ultroid
# Check status
sudo systemctl status ultroid
```
### Docker Mode
```bash
docker run -d \
--name ultroid-bot \
-v $(pwd)/config.py:/app/config.py \
-v $(pwd)/credentials.json:/app/credentials.json \
ultroid
```
## 🔍 Troubleshooting
### Common Issues
#### 1. Import Errors
Most plugins fail with "attempted relative import" because they need to be imported as modules:
```bash
# Run from project root
python3 -m pyUltroid
```
#### 2. Missing Dependencies
```bash
# Install missing packages
pip install package_name
# Or reinstall all requirements
pip install -r requirements.txt --force-reinstall
```
#### 3. Google Drive Issues
- Ensure `credentials.json` is in the root directory
- Run the bot once to generate `token.json`
- Check Google Cloud Console for API quotas
#### 4. Permission Errors
```bash
chmod +x startup sessiongen installer.sh
```
#### 5. FFmpeg Issues
```bash
sudo apt install ffmpeg mediainfo
```
### Plugin Health Check
Use the built-in diagnostic tool:
```bash
python3 diagnose_plugins.py
```
This will:
- Test all plugins for import errors
- Check for missing dependencies
- Generate a fix script
- Test Google Drive functionality
## 📊 Monitoring
### View Logs
```bash
# Service logs
sudo journalctl -u ultroid -f
# Manual logs
tail -f logs/ultroid.log
```
### Performance Monitoring
```bash
# Check resource usage
htop
docker stats ultroid-bot # if using Docker
```
## 🛡️ Security
### File Permissions
```bash
chmod 600 config.py credentials.json
chmod 755 *.sh
```
### Firewall (if needed)
```bash
sudo ufw allow ssh
sudo ufw enable
```
## 🔄 Updates
### Manual Update
```bash
git pull origin main
pip install -r requirements.txt --upgrade
sudo systemctl restart ultroid # if using systemd
```
### Auto-Update (Optional)
Add to crontab:
```bash
0 6 * * * cd /path/to/Ultroid && git pull && pip install -r requirements.txt --upgrade && systemctl restart ultroid
```
## 📞 Support
- **Telegram**: [@UltroidSupport](https://t.me/UltroidSupport)
- **GitHub Issues**: [Report Issues](https://github.com/TeamUltroid/Ultroid/issues)
- **Documentation**: [Wiki](https://github.com/TeamUltroid/Ultroid/wiki)
## 🎉 Success Indicators
Your bot is working correctly when:
- ✅ No import errors in logs
- ✅ Google Drive commands work (if configured)
- ✅ Media processing plugins work
- ✅ All dependencies installed successfully
- ✅ Bot responds to commands
Happy hosting! 🚀