# Hostinger Deployment Guide for LittleShop + TeleBot ## Overview This guide explains how to deploy LittleShop and TeleBot to Hostinger VPS with BTCPay Server integration. ## Current BTCPay Server Setup - **URL**: https://thebankofdebbie.giize.com - **Host**: srv1002428.hstgr.cloud - **Cryptocurrencies**: BTC, DOGE, XMR, ETH, ZEC - **API Key**: 994589c8b514531f867dd24c83a02b6381a5f4a2 - **Store ID**: AoxXjM9NJT6P9C1MErkaawXaSchz8sFPYdQ9FyhmQz33 ## Deployment Files Created ### 1. `appsettings.Hostinger.json` - Production configuration for LittleShop - Points to Hostinger BTCPay Server - Uses local SQLite database ### 2. `docker-compose.hostinger.yml` - Combined deployment for LittleShop + TeleBot - Network configuration for container communication - Volume persistence for data ### 3. `.env.hostinger.template` - Environment variables template - Copy to `.env` and configure ### 4. `deploy-to-hostinger.sh` - Automated deployment script - Builds and starts all services - Health checks included ## Step-by-Step Deployment ### 1. Connect to Hostinger VPS ```bash ssh root@srv1002428.hstgr.cloud -p 2255 ``` ### 2. Clone/Update Repository ```bash cd /root git clone https://git.silverlabs.uk/SilverLABS/LittleShop.git # OR if already exists cd LittleShop git pull ``` ### 3. Configure Environment ```bash cp .env.hostinger.template .env nano .env ``` Required configurations: - `TELEGRAM_BOT_TOKEN` - Your Telegram bot token - `TELEGRAM_ADMIN_CHAT_ID` - Your Telegram chat ID for admin messages - `BTCPAY_WEBHOOK_SECRET` - Generate a secure random string (32+ chars) ### 4. Run Deployment Script ```bash ./deploy-to-hostinger.sh ``` ## BTCPay Webhook Configuration After deployment, configure the webhook in BTCPay Server: 1. Log into BTCPay: https://thebankofdebbie.giize.com 2. Go to Store Settings → Webhooks 3. Add new webhook: - **URL**: `http://srv1002428.hstgr.cloud:8080/api/orders/payments/webhook` - **Secret**: Use the same value as `BTCPAY_WEBHOOK_SECRET` in `.env` - **Events**: Select all payment-related events ## Troubleshooting ### Problem: TeleBot can't create orders **Solution**: Check BTCPay connection ```bash # Check LittleShop logs docker logs littleshop | grep -i btcpay # Test BTCPay connectivity from container docker exec littleshop curl https://thebankofdebbie.giize.com/api/v1/health ``` ### Problem: Payment creation fails **Possible causes**: 1. Wrong BTCPay API key or Store ID 2. Currency not configured in BTCPay 3. Network connectivity issues **Debug steps**: ```bash # Check detailed error logs docker logs littleshop | grep -i error # Verify environment variables docker exec littleshop env | grep BTCPAY # Test API directly curl -X GET https://thebankofdebbie.giize.com/api/v1/stores \ -H "Authorization: token 994589c8b514531f867dd24c83a02b6381a5f4a2" ``` ### Problem: TeleBot not responding **Solution**: Check bot registration ```bash # Check TeleBot logs docker logs littleshop-telebot # Verify bot token docker exec littleshop-telebot env | grep TELEGRAM # Restart bot docker restart littleshop-telebot ``` ### Problem: Orders stuck in "PendingPayment" **Solution**: Check webhook configuration ```bash # Monitor webhook delivery docker logs littleshop | grep webhook # Test webhook manually curl -X POST http://localhost:8080/api/orders/payments/webhook \ -H "Content-Type: application/json" \ -H "BTCPay-Sig: sha256=test" \ -d '{"test": true}' ``` ## Service URLs ### External Access - **BTCPay Server**: https://thebankofdebbie.giize.com - **LittleShop API**: http://srv1002428.hstgr.cloud:8080 - **Telegram Bot**: Search for your bot on Telegram ### Internal Container Network - **LittleShop**: http://littleshop:8080 - **Redis**: redis:6379 ## Monitoring ### View Real-time Logs ```bash # All services docker-compose -f docker-compose.hostinger.yml logs -f # Specific service docker logs -f littleshop docker logs -f littleshop-telebot ``` ### Check Service Status ```bash docker-compose -f docker-compose.hostinger.yml ps ``` ### Resource Usage ```bash docker stats ``` ## Backup ### Database Backup ```bash # Backup LittleShop database docker exec littleshop sqlite3 /app/data/littleshop.db ".backup /app/data/backup.db" docker cp littleshop:/app/data/backup.db ./littleshop-backup-$(date +%Y%m%d).db # Backup TeleBot database docker exec littleshop-telebot sqlite3 /app/data/telebot.db ".backup /app/data/backup.db" docker cp littleshop-telebot:/app/data/backup.db ./telebot-backup-$(date +%Y%m%d).db ``` ### Full Volume Backup ```bash # Stop services docker-compose -f docker-compose.hostinger.yml down # Backup volumes docker run --rm -v littleshop_data:/data -v $(pwd):/backup alpine tar czf /backup/littleshop-data-$(date +%Y%m%d).tar.gz -C /data . # Restart services docker-compose -f docker-compose.hostinger.yml up -d ``` ## Update Deployment To update to latest version: ```bash # Pull latest code git pull # Rebuild and restart ./deploy-to-hostinger.sh ``` ## Security Considerations 1. **Change default passwords** in production 2. **Use strong webhook secret** (32+ random characters) 3. **Enable firewall** for port 8080 if exposing externally 4. **Regular backups** of databases 5. **Monitor logs** for suspicious activity ## Support Currencies Currently configured in BTCPay: - BTC (Bitcoin) - DOGE (Dogecoin) - XMR (Monero) - ETH (Ethereum) - ZEC (Zcash) To add more currencies, configure them in BTCPay Server first.