Add production deployment infrastructure

- Created comprehensive deployment package with production builds
- Added deployment scripts for Linux and Docker environments
- Generated Dockerfiles for containerized deployment
- Included nginx reverse proxy configuration
- Added systemd service definitions for native Linux deployment
- Created docker-compose.production.yml for orchestration
- Comprehensive deployment documentation in README.md
- Both LittleShop and TeleBot production builds included
- Ready for deployment to Hostinger VPS server

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-20 21:10:48 +01:00
parent b8bda63cfa
commit 13aa20ffa4
227 changed files with 87633 additions and 0 deletions

Binary file not shown.

31
Deploy/TeleBot/Dockerfile Normal file
View File

@@ -0,0 +1,31 @@
# TeleBot Production Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
WORKDIR /app
EXPOSE 5010
# Create non-root user
RUN addgroup --system --gid 1001 telebot \
&& adduser --system --uid 1001 --ingroup telebot telebot
# Create necessary directories
RUN mkdir -p /app/logs \
&& chown -R telebot:telebot /app
# Copy published application
COPY . .
# Set ownership
RUN chown -R telebot:telebot /app
# Switch to non-root user
USER telebot
# Health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
CMD curl -f http://localhost:5010/health || exit 1
# Set environment variables
ENV ASPNETCORE_ENVIRONMENT=Production
ENV ASPNETCORE_URLS=http://+:5010
ENTRYPOINT ["./TeleBot"]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Deploy/TeleBot/LiteDB.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Deploy/TeleBot/PgpCore.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Deploy/TeleBot/Polly.dll Normal file

Binary file not shown.

BIN
Deploy/TeleBot/QRCoder.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Deploy/TeleBot/Serilog.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
Deploy/TeleBot/TeleBot.dll Normal file

Binary file not shown.

BIN
Deploy/TeleBot/TeleBot.exe Normal file

Binary file not shown.

BIN
Deploy/TeleBot/TeleBot.pdb Normal file

Binary file not shown.

View File

@@ -0,0 +1,19 @@
{
"runtimeOptions": {
"tfm": "net9.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "9.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "9.0.0"
}
],
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,84 @@
{
"BotInfo": {
"Name": "LittleShop TeleBot",
"Description": "Privacy-focused e-commerce Telegram bot",
"Version": "1.0.0"
},
"BotManager": {
"ApiKey": "",
"Comment": "This will be populated after first registration with admin panel"
},
"Telegram": {
"BotToken": "8496279616:AAE7kV_riICbWxn6-MPFqcrWx7K8b4_NKq0",
"AdminChatId": "123456789",
"WebhookUrl": "",
"UseWebhook": false,
"Comment": "Bot token will be fetched from admin panel API if BotManager:ApiKey is set"
},
"Webhook": {
"Secret": "",
"Comment": "Optional secret key for webhook authentication"
},
"LittleShop": {
"ApiUrl": "http://localhost:8080",
"OnionUrl": "",
"Username": "admin",
"Password": "admin",
"UseTor": false
},
"Privacy": {
"Mode": "strict",
"DataRetentionHours": 24,
"SessionTimeoutMinutes": 30,
"EnableAnalytics": false,
"RequirePGPForShipping": false,
"EphemeralByDefault": true,
"EnableTor": false,
"TorSocksPort": 9050,
"TorControlPort": 9051,
"OnionServiceDirectory": "/var/lib/tor/telebot/"
},
"Redis": {
"ConnectionString": "localhost:6379",
"InstanceName": "TeleBot",
"Enabled": false
},
"Database": {
"ConnectionString": "Filename=telebot.db;Password=;",
"EncryptionKey": "CHANGE_THIS_KEY_IN_PRODUCTION"
},
"Features": {
"EnableVoiceSearch": false,
"EnableQRCodes": true,
"EnablePGPEncryption": true,
"EnableDisappearingMessages": true,
"EnableOrderMixing": true,
"MixingDelayMinSeconds": 60,
"MixingDelayMaxSeconds": 300
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"System": "Warning"
},
"PrivacyMode": true
},
"Hangfire": {
"Enabled": false,
"DatabasePath": "hangfire.db"
},
"Cryptocurrencies": [
"BTC",
"XMR",
"LTC",
"DASH"
],
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://localhost:5010"
}
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.