littleshop/TeleBot/README.md
2025-08-27 18:02:39 +01:00

389 lines
8.1 KiB
Markdown

# TeleBot - Privacy-First E-Commerce Telegram Bot
A privacy-focused Telegram bot for the LittleShop e-commerce platform, featuring anonymous shopping, cryptocurrency payments, and optional Tor support.
## 🔒 Privacy Features
- **No Account Required**: Shop anonymously without registration
- **Ephemeral Sessions**: Data auto-deletes after 30 minutes of inactivity
- **PGP Encryption**: Optional encryption for shipping information
- **Tor Support**: Can operate through Tor network for maximum privacy
- **Anonymous References**: Orders use random identifiers, not user IDs
- **Cryptocurrency Only**: Bitcoin, Monero, and other privacy coins
- **Zero Analytics**: No tracking unless explicitly enabled
- **Data Deletion**: Delete all your data instantly with `/delete`
## 🚀 Quick Start
### Prerequisites
- .NET 9.0 SDK
- Telegram Bot Token (from @BotFather)
- LittleShop API running locally or accessible
- (Optional) Redis for persistent sessions
- (Optional) Tor for anonymous routing
### Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/littleshop.git
cd littleshop/TeleBot/TeleBot
```
2. Configure the bot:
```bash
cp appsettings.json appsettings.Production.json
# Edit appsettings.Production.json with your settings
```
3. Set your bot token:
```json
{
"Telegram": {
"BotToken": "YOUR_BOT_TOKEN_FROM_BOTFATHER"
},
"LittleShop": {
"ApiUrl": "https://localhost:5001",
"Username": "bot-user",
"Password": "bot-password"
}
}
```
4. Run the bot:
```bash
dotnet run --environment Production
```
## 📱 Bot Commands
### Shopping Commands
- `/start` - Start shopping and view main menu
- `/browse` - Browse product categories
- `/cart` - View your shopping cart
- `/orders` - View your order history
- `/clear` - Clear shopping cart
### Privacy Commands
- `/privacy` - Privacy settings menu
- `/ephemeral` - Toggle ephemeral mode
- `/pgpkey [key]` - Set PGP public key for encryption
- `/delete` - Delete all your data immediately
- `/tor` - Get Tor configuration instructions
### Help
- `/help` - Show all available commands
## 🛍️ Shopping Flow
1. **Browse Products**
- Start with `/browse` or main menu
- Select category → View products → Select product
2. **Add to Cart**
- Choose quantity with +/- buttons
- Click "Add to Cart"
- Continue shopping or checkout
3. **Checkout**
- Click "Proceed to Checkout" from cart
- Enter shipping information step-by-step:
- Name
- Address
- City
- Postal Code
- Country
- Review and confirm order
4. **Payment**
- Select cryptocurrency (BTC, XMR, USDT, etc.)
- Receive wallet address and amount
- QR code generated for easy payment
- Payment expires after set time
5. **Order Tracking**
- Use `/orders` to view all orders
- Click on order to see details
- Track payment and shipping status
## 🔐 Privacy Configuration
### Ephemeral Mode (Default: ON)
```json
{
"Privacy": {
"EphemeralByDefault": true,
"DataRetentionHours": 24,
"SessionTimeoutMinutes": 30
}
}
```
### PGP Encryption
Users can enable PGP encryption for shipping information:
```
/pgpkey -----BEGIN PGP PUBLIC KEY BLOCK-----
[Your PGP public key here]
-----END PGP PUBLIC KEY BLOCK-----
```
### Tor Configuration
Enable Tor routing for all bot communications:
```json
{
"Privacy": {
"EnableTor": true,
"TorSocksPort": 9050,
"TorControlPort": 9051
}
}
```
### Redis Session Storage (Optional)
For non-ephemeral sessions across bot restarts:
```json
{
"Redis": {
"Enabled": true,
"ConnectionString": "localhost:6379",
"InstanceName": "TeleBot"
}
}
```
## 🧅 Tor Setup
### 1. Install Tor
```bash
# Ubuntu/Debian
sudo apt install tor
# Start Tor service
sudo systemctl start tor
```
### 2. Configure Hidden Service
Edit `/etc/tor/torrc`:
```
HiddenServiceDir /var/lib/tor/telebot/
HiddenServicePort 80 127.0.0.1:5000
HiddenServiceVersion 3
```
### 3. Get Onion Address
```bash
sudo cat /var/lib/tor/telebot/hostname
```
### 4. Configure Bot
```json
{
"Privacy": {
"EnableTor": true,
"OnionServiceDirectory": "/var/lib/tor/telebot/"
},
"LittleShop": {
"OnionUrl": "http://your-shop-onion.onion",
"UseTor": true
}
}
```
## 🚢 Deployment
### Docker
```dockerfile
FROM mcr.microsoft.com/dotnet/runtime:9.0
WORKDIR /app
COPY ./publish .
ENTRYPOINT ["dotnet", "TeleBot.dll"]
```
### Docker Compose with Tor
```yaml
version: '3.8'
services:
telebot:
build: .
environment:
- ASPNETCORE_ENVIRONMENT=Production
- Privacy__EnableTor=true
volumes:
- ./appsettings.Production.json:/app/appsettings.Production.json
- ./data:/app/data
depends_on:
- tor
- redis
tor:
image: dperson/torproxy
ports:
- "9050:9050"
- "9051:9051"
volumes:
- ./tor:/etc/tor
- tor_data:/var/lib/tor
redis:
image: redis:alpine
command: redis-server --save ""
volumes:
- redis_data:/data
volumes:
tor_data:
redis_data:
```
### Systemd Service
```ini
[Unit]
Description=TeleBot Privacy E-Commerce Bot
After=network.target
[Service]
Type=simple
User=telebot
WorkingDirectory=/opt/telebot
ExecStart=/usr/bin/dotnet /opt/telebot/TeleBot.dll
Restart=on-failure
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
```
## 🔧 Advanced Configuration
### Supported Cryptocurrencies
```json
{
"Cryptocurrencies": [
"BTC", // Bitcoin
"XMR", // Monero (recommended for privacy)
"USDT", // Tether
"LTC", // Litecoin
"ETH", // Ethereum
"ZEC", // Zcash
"DASH", // Dash
"DOGE" // Dogecoin
]
}
```
### Order Mixing (Privacy Feature)
Adds random delays to order processing:
```json
{
"Features": {
"EnableOrderMixing": true,
"MixingDelayMinSeconds": 60,
"MixingDelayMaxSeconds": 300
}
}
```
### Disappearing Messages
Auto-delete sensitive messages after display:
```json
{
"Features": {
"EnableDisappearingMessages": true,
"DisappearingMessageTTL": 30
}
}
```
## 📊 Monitoring
### Logs
- Console output for real-time monitoring
- File logs in `logs/telebot-YYYYMMDD.txt`
- Privacy-safe logging (no PII)
### Health Check
```bash
curl http://localhost:5000/health
```
## 🔒 Security Best Practices
1. **Never commit real bot tokens** - Use environment variables
2. **Run as non-root user** in production
3. **Use HTTPS** for API connections
4. **Enable Tor** for maximum privacy
5. **Rotate bot tokens** regularly
6. **Monitor for abuse** - Implement rate limiting
7. **Backup PGP keys** securely
8. **Use strong passwords** for API authentication
## 🐛 Troubleshooting
### Bot not responding
- Check bot token is correct
- Ensure bot is not blocked
- Check network connectivity
- Review logs for errors
### Can't connect to API
- Verify LittleShop API is running
- Check API credentials
- Test API connection manually
- Check firewall rules
### Tor connection issues
- Ensure Tor service is running
- Check SOCKS proxy settings
- Verify onion address is correct
- Check Tor logs: `sudo journalctl -u tor`
### Session issues
- Clear Redis cache if enabled
- Delete `telebot.db` if using LiteDB
- Restart bot service
- Check session timeout settings
## 📝 Privacy Policy
This bot implements privacy-by-design principles:
- Minimal data collection
- Ephemeral by default
- No third-party tracking
- User-controlled data deletion
- Optional encryption
- Anonymous identifiers
- No KYC requirements
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Submit a pull request
## 📄 License
This project is part of the LittleShop platform. All rights reserved.
## 🆘 Support
- Open an issue on GitHub
- Contact via Telegram: @yoursupport
- Email: support@littleshop.onion (Tor)
## 🔮 Roadmap
- [ ] Voice message support for product search
- [ ] Group shopping carts
- [ ] Multi-language support
- [ ] Web app integration
- [ ] Lightning Network payments
- [ ] Decentralized order storage (IPFS)
- [ ] AI-powered product recommendations
- [ ] End-to-end encrypted group orders
---
**Remember**: Your privacy is our priority. Shop safely! 🔒