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!
6.1 KiB
6.1 KiB
🐳 Ultroid Docker Deployment Summary
🛡️ SAFETY FIRST - Existing Bot Protection
Got an existing Ultroid setup? No worries! All scripts now include automatic detection and protection:
🔒 Automatic Safety Mode
- Detection: Scripts automatically detect existing bot configurations
- Safe Mode: Creates isolated Docker environment that won't interfere
- Zero Risk: Your existing setup remains completely untouched
- Side-by-Side: Run both setups simultaneously without conflicts
🚀 Usage for Existing Bot Users
# Any of these will automatically use safe mode if existing bot detected:
./quick-start.sh # Easiest - auto-detects and protects
./docker-deploy.sh # Advanced - asks what to do
./safe-docker-setup.sh # Explicit safe mode
Result: Isolated Docker environment in docker-ultroid/ directory with different ports and containers.
✅ Comprehensive Docker Setup Complete
I've created a complete Docker-based deployment solution for Ultroid that follows the official repository patterns and includes all necessary dependencies and services.
📁 Created Files
Core Docker Files
Dockerfile- Optimized container with all system dependenciesdocker-compose.yml- Complete service orchestration (Redis, MongoDB, Ultroid).env.sample- Comprehensive environment configuration template
Deployment Scripts
docker-deploy.sh- Automated Docker deployment scriptgenerate-session.sh- Multi-method session string generatorMakefile- Easy Docker management commands
Documentation
DOCKER_DEPLOYMENT.md- Complete Docker deployment guideDEPLOYMENT_SUMMARY.md- This summary file
🚀 Quick Deployment Commands
1. Generate Session String
chmod +x generate-session.sh
./generate-session.sh
Choose from:
- Docker method (recommended)
- Telegram Bot (@SessionGeneratorBot)
- Local Python
- Online Repl.it
2. Configure Environment
cp .env.sample .env
nano .env
Required:
SESSION=your_session_string
API_ID=your_api_id
API_HASH=your_api_hash
3. Deploy with Docker
chmod +x docker-deploy.sh
./docker-deploy.sh
Or using Makefile:
make deploy
🏗️ Architecture
Services Included
services:
redis: # Primary database (recommended)
mongodb: # Alternative database
ultroid: # Main userbot service
session-gen: # Session generator (one-time)
Features
- ✅ Complete isolation - All dependencies containerized
- ✅ Database included - Redis/MongoDB built-in
- ✅ Volume persistence - Downloads, uploads, logs preserved
- ✅ Easy management - Simple commands via Makefile
- ✅ Health monitoring - Built-in status checks
- ✅ Auto-restart - Services restart on failure
🎯 Key Benefits Over Manual Installation
| Feature | Manual Setup | Docker Setup |
|---|---|---|
| Dependencies | Manual installation | Automated |
| Database | External setup required | Built-in Redis/MongoDB |
| Isolation | System-wide packages | Containerized |
| Updates | Complex process | One command |
| Backup | Manual scripting | Built-in commands |
| Scaling | Difficult | Easy horizontal scaling |
| Consistency | Platform dependent | Same everywhere |
📋 Management Commands
# Quick commands
make start # Start all services
make stop # Stop all services
make restart # Restart bot
make logs # View logs
make shell # Access container
# Advanced commands
make update # Update and restart
make backup # Backup database
make health # Health check
make stats # Resource usage
🔧 Database Options
Redis (Recommended)
REDIS_URI=redis://redis:6379
REDIS_PASSWORD=ultroid123
MongoDB (Alternative)
MONGO_URI=mongodb://ultroid:ultroid123@mongodb:27017/ultroid?authSource=admin
External Database
DATABASE_URL=postgresql://user:pass@host:port/db
🎊 Success Indicators
Your Docker deployment is successful when:
- ✅
docker-compose psshows all services running - ✅
make logsshows no critical errors - ✅ Bot responds to
.alivecommand - ✅ All 188+ plugins load without issues
- ✅ Google Drive features work (if configured)
- ✅ Media processing plugins functional
🔍 Troubleshooting
Check Service Status
make status # Service overview
make health # Health check
make logs # Recent logs
Common Fixes
# Restart services
make restart
# Rebuild from scratch
make clean
make build
make start
# Check resources
make stats
📊 Production Ready Features
- 🔄 Auto-restart - Services restart on failure
- 💾 Data persistence - Volumes for all important data
- <EFBFBD> Logging - Comprehensive log management
- 🔒 Security - Isolated container environment
- 📈 Monitoring - Built-in health checks
- ⬆️ Updates - One-command updates
- 💾 Backups - Automated database backups
🆚 Comparison with Official Methods
| Method | Complexity | Maintenance | Reliability |
|---|---|---|---|
| Docker (This) | ⭐⭐ Easy | ⭐⭐⭐ Low | ⭐⭐⭐ High |
| Traditional Local | ⭐⭐⭐ Complex | ⭐ High | ⭐⭐ Medium |
| Heroku/Cloud | ⭐ Very Easy | ⭐⭐ Medium | ⭐⭐⭐ High |
🎉 Final Result
You now have a production-ready Ultroid deployment that:
- Follows official patterns - Based on the repository guide
- Includes all dependencies - 70+ Python packages
- Provides multiple databases - Redis, MongoDB options
- Offers easy management - Simple commands
- Ensures reliability - Auto-restart, health checks
- Supports all features - Google Drive, media processing, etc.
📞 Support
- Generated session: Use
./generate-session.sh - Service issues: Check
make healthandmake logs - Updates: Run
make update - Backup: Use
make backup
🚀 Your Ultroid is now ready for Docker deployment!
Simply run ./docker-deploy.sh and follow the prompts for a complete automated setup.