# Telegram Group Factory - Configuration Guide ## Overview This guide explains how to configure users to be added to newly created groups and manage backup QR code replication via the bot. ## Setting Up Default Users for New Groups ### What are Default Users? Default users are a list of user IDs that will be **automatically added to every new group** created without explicitly specifying users. ### Step 1: Add Users to the Database First, add the users you want to manage using the bot commands: ``` /add_user ``` Example: ``` /add_user alice /add_user bob /add_user charlie ``` The bot will respond with: ``` ✅ User alice added successfully (ID: 1234567890) ``` **Note:** Keep track of the user IDs returned by the bot - you'll need these for configuration. ### Step 2: View All Users Check all available users in the database: ``` /users ``` This will show: ``` 👥 All Users (3): • alice (alice) - ID: 1234567890 • bob (bob) - ID: 0987654321 • charlie (charlie) - ID: 5555555555 ``` ### Step 3: Configure Default Users #### Option A: Set Default Users (Replace Existing) Replace the entire default users list: ``` /set_default_users 1234567890 0987654321 5555555555 ``` Response: ``` ✅ Default users updated successfully: • alice (ID: 1234567890) • bob (ID: 0987654321) • charlie (ID: 5555555555) ``` #### Option B: Add Users to Default List (Append) Add new users to the existing default list: ``` /add_default_users 1111111111 ``` Response: ``` ✅ Users added to default list: • diana (ID: 1111111111) ``` #### Option C: Remove Users from Default List Remove specific users from the default list: ``` /remove_default_users 5555555555 ``` Response: ``` ✅ Users removed from default list: • charlie (ID: 5555555555) ``` ### Step 4: Verify Default Users Check what users are currently configured as defaults: ``` /get_default_users ``` Response: ``` 📋 Current default users for new groups: • alice (ID: 1234567890) • bob (ID: 0987654321) • diana (ID: 1111111111) ``` ### Step 5: Create Groups with Default Users Now whenever you create a new group **without specifying users**, all default users will be automatically added: ``` /create_group ProjectAlpha ``` This will automatically add alice, bob, and diana to the ProjectAlpha group. You can also create a group with **specific users** (overriding defaults): ``` /create_group ProjectBeta 1234567890,0987654321 ``` This will create ProjectBeta with only alice and bob, regardless of the default list. --- ## QR Code Backup Configuration ### What is QR Backup Data? QR backup data is a code that can be used to replicate or restore your bot's session across multiple instances. This is useful for: - Disaster recovery - Multi-instance deployment - Session migration - Backup and restore scenarios ### Step 1: Generate or Obtain QR Code Depending on your setup, you might have a QR code from: - Bot session export - Backup file - Another instance ### Step 2: Set QR Backup Data Store the QR backup data in the database: ``` /set_qr_backup YOUR_QR_CODE_HERE ``` Example: ``` /set_qr_backup 0001a8ac0123456789abcdef0123456789abcdef01234567 ``` Response: ``` ✅ QR backup data updated successfully! Data: `0001a8ac0123456789abcdef0123456789abcdef01234567` ``` ### Step 3: Retrieve QR Backup Data Retrieve the stored QR backup data anytime: ``` /get_qr_backup ``` Response: ``` 📊 Current QR Backup Data: `0001a8ac0123456789abcdef0123456789abcdef01234567` ``` ### Step 4: Use QR Backup for Replication Once you have the QR backup data stored, you can: 1. Export it from the database 2. Use it in deployment scripts 3. Pass it to other bot instances 4. Store it in version control (encrypted) for DR purposes --- ## Database Structure The configuration data is stored in MongoDB with the following structure: ### Default Users Collection (`group_config`) ```json { "_id": ObjectId(...), "key": "default_users", "value": [1234567890, 0987654321, 1111111111] } ``` ### QR Backup Collection (`COLLECTION_NAME`) ```json { "_id": ObjectId(...), "key": "qr_backup_data", "value": "0001a8ac0123456789abcdef0123456789abcdef01234567" } ``` --- ## Common Workflows ### Workflow 1: Initial Setup ```bash # 1. Add users /add_user alice /add_user bob /add_user charlie # 2. Configure default users (save the IDs from step 1) /set_default_users 1234567890 0987654321 5555555555 # 3. Verify configuration /get_default_users # 4. Create a test group /create_group TestGroup ``` ### Workflow 2: Adding New Users to Existing Groups ```bash # 1. Add new user /add_user diana # 2. Add diana to default users /add_default_users 1111111111 # 3. Future groups will include diana automatically /create_group NewProject ``` ### Workflow 3: QR Code Backup & Restore ```bash # On source instance: /get_qr_backup # Copy the QR code output # On target instance: /set_qr_backup # Verify it was stored /get_qr_backup ``` --- ## Troubleshooting ### Issue: "No default users configured yet" **Solution:** Run `/set_default_users` with at least one user ID. ### Issue: "User IDs {[123, 456]} do not exist in database" **Solution:** First add these users with `/add_user ` and get their IDs. ### Issue: Group created but users not added **Solution:** 1. Check if default users are configured: `/get_default_users` 2. Verify users exist: `/users` 3. Manually add users to group: `/add_users ,` ### Issue: QR backup data appears empty **Solution:** 1. Check if data was stored: `/get_qr_backup` 2. Re-set the data: `/set_qr_backup ` --- ## Environment Variables Make sure these are set in your `.env` file: ```bash TELETHON_API_ID=your_api_id TELETHON_API_HASH=your_api_hash TELEGRAM_BOT_TOKEN=your_bot_token TELETHON_TOKEN=your_session_token MONGODB_URI=mongodb://localhost:27017 MONGODB_DATABASE=groupfactory MONGODB_COLLECTION=ghconfig STAFF_CHAT_ID=your_staff_chat_id FACTORY_BOT_ID=your_bot_id ``` --- ## API Reference ### User Management Commands - `/users` - List all users - `/user ` - Get specific user info - `/add_user ` - Add new user - `/delete_user ` - Delete user ### Group Management Commands - `/create_group ` - Create group with default users - `/create_group ,` - Create group with specific users - `/add_users ,` - Add users to existing group - `/get_group ` - Get group information ### Configuration Commands - `/get_default_users` - View current default users - `/set_default_users ...` - Set default users (replace) - `/add_default_users ...` - Add users to default list - `/remove_default_users ...` - Remove users from default list - `/get_qr_backup` - View QR backup data - `/set_qr_backup ` - Set QR backup data - `/config_help` - Show configuration command help - `/help` - Show all available commands --- ## Advanced Usage ### Using in Docker Compose ```yaml version: '3.8' services: groupfactory: build: . environment: TELETHON_API_ID: ${TELETHON_API_ID} TELETHON_API_HASH: ${TELETHON_API_HASH} TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN} TELETHON_TOKEN: ${TELETHON_TOKEN} MONGODB_URI: mongodb://mongo:27017 MONGODB_DATABASE: groupfactory MONGODB_COLLECTION: ghconfig depends_on: - mongo mongo: image: mongo:latest volumes: - mongo_data:/data/db volumes: mongo_data: ``` ### Accessing Configuration via MongoDB Client ```bash # Connect to MongoDB mongo mongodb://localhost:27017/groupfactory # View default users db.group_config.find() # View QR backup db.ghconfig.find({key: 'qr_backup_data'}) ``` --- ## Security Considerations 1. **Never share QR backup data** in public channels or version control 2. **Encrypt sensitive data** before storing in version control 3. **Rotate credentials regularly** especially after backups 4. **Limit bot access** to trusted chats only 5. **Monitor command usage** for suspicious activity --- For more information or issues, check the project README.md or GitHub issues.