mart litle update
This commit is contained in:
parent
0c10772261
commit
2f3459b670
155
README.md
155
README.md
@ -1,53 +1,139 @@
|
||||
**Универсальный Телеграмм Магазин**
|
||||
# Универсальный Телеграмм Магазин
|
||||
|
||||
**Описание проекта**:
|
||||
"Универсальный Телеграмм Магазин" — это телеграмм-бот, предназначенный для организации и управления онлайн-продажами товаров и услуг через популярную платформу Telegram. Магазин включает функционал как для пользователей, так и для администраторов, обеспечивая удобное взаимодействие с товарами, балансами, кошельками и покупками.
|
||||
"Универсальный Телеграмм Магазин" — это телеграмм-бот для организации онлайн-продаж через Telegram. Проект предоставляет полный цикл управления магазином, включая работу с криптовалютами, управление товарами и пользователями, а также интеграцию с VPN через WireGuard для безопасных транзакций.
|
||||
|
||||
**Основные технологии**:
|
||||
- Node.js + Telegraf для работы с Telegram API
|
||||
- SQLite для хранения данных
|
||||
- Docker для контейнеризации
|
||||
- WireGuard для защищенных соединений
|
||||
- Поддержка криптокошельков (Bitcoin, Ethereum, Litecoin)
|
||||
|
||||
Проект включает несколько ключевых разделов для удобной работы пользователей и администраторов, а также позволяет интегрировать систему криптокошельков для расчетов, управления товарами и отслеживания покупок.
|
||||
|
||||
### Цели проекта:
|
||||
- Создание удобного и универсального интерфейса для покупок через Telegram.
|
||||
- Обеспечение безопасности и простоты транзакций с использованием криптовалют и традиционных средств.
|
||||
- Внедрение эффективной системы управления для администраторов, с возможностью мониторинга пользователей, товаров, кошельков и комиссий.
|
||||
- Реализация системы профилей с возможностью редактирования, управления балансами и удаления аккаунтов.
|
||||
### Основной функционал
|
||||
|
||||
#### Для пользователей:
|
||||
- Просмотр товаров по категориям с фильтрацией по локациям
|
||||
- Совершение покупок с использованием криптовалют
|
||||
- Управление криптокошельками (создание, пополнение, просмотр баланса)
|
||||
- Просмотр истории транзакций и покупок
|
||||
- Настройка профиля (локация, контактные данные)
|
||||
- Подключение к защищенному VPN через WireGuard для безопасных транзакций
|
||||
|
||||
#### Для администраторов:
|
||||
- Полное управление товарами и категориями
|
||||
- Управление пользователями (блокировка, редактирование балансов)
|
||||
- Контроль транзакций и комиссий
|
||||
- Создание дампов базы данных с автоматическим списанием комиссии (% от балансов кошельков)
|
||||
- Управление локациями и настройками VPN
|
||||
- Мониторинг активности пользователей
|
||||
- SaaS система с автоматическим расчетом комиссий:
|
||||
- Комиссия за оборот по магазину перед выгрузкой кошельков
|
||||
|
||||
---
|
||||
|
||||
### Структура проекта:
|
||||
### Установка и запуск
|
||||
|
||||
#### 1. **Пользовательский раздел**
|
||||
Пользователи могут:
|
||||
- Просматривать и покупать товары, управлять своим балансом.
|
||||
- Следить за историей покупок.
|
||||
- Пополнять свои криптокошельки.
|
||||
- Управлять своим профилем, изменяя локацию и удаляя аккаунт.
|
||||
#### Требования:
|
||||
- Node.js 18+
|
||||
- Docker и Docker Compose
|
||||
- Telegram Bot Token
|
||||
- SQLite connection string
|
||||
- WireGuard конфигурация
|
||||
|
||||
#### 2. **Административный раздел**
|
||||
Администраторы могут:
|
||||
- Управлять пользователями: блокировать, удалять и редактировать балансы.
|
||||
- Управлять товарами: добавлять, редактировать, удалять товары и категории.
|
||||
- Управлять кошельками: контролировать пополнения и комиссионные платежи.
|
||||
- Создавать дампы для переноса базы данных магазина.
|
||||
#### 1. Установка зависимостей:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
#### 2. Настройка конфигурации:
|
||||
Создайте файл `.env` в корне проекта со следующим содержимым:
|
||||
```env
|
||||
TELEGRAM_BOT_TOKEN=your_bot_token
|
||||
MONGO_URI=mongodb://localhost:27017/telegram_shop
|
||||
WIREGUARD_CONFIG_PATH=./wg/config/wg0.conf
|
||||
```
|
||||
|
||||
#### 3. Запуск через Docker:
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
#### 4. Настройка WireGuard:
|
||||
1. Сгенерируйте ключи:
|
||||
```bash
|
||||
wg genkey | tee privatekey | wg pubkey > publickey
|
||||
```
|
||||
2. Настройте wg0.conf:
|
||||
```ini
|
||||
[Interface]
|
||||
PrivateKey = <your_private_key>
|
||||
Address = 10.0.0.1/24
|
||||
ListenPort = 51820
|
||||
|
||||
[Peer]
|
||||
PublicKey = <client_public_key>
|
||||
AllowedIPs = 10.0.0.2/32
|
||||
```
|
||||
|
||||
#### 5. Запуск бота:
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Основной функционал:
|
||||
### Структура проекта
|
||||
|
||||
#### 1. **Покупки и товары**
|
||||
- **Продукты**: Пользователи могут выбирать товары по категориям, проверять наличие средств и совершать покупки.
|
||||
- **Профиль**: В разделе профиля можно изменять локацию, а также удалять аккаунт.
|
||||
- **История покупок**: Пользователи могут отслеживать свои покупки с описанием товаров и статусов.
|
||||
- **Кошельки**: Возможность добавлять новые криптокошельки, пополнять их через QR-коды и просматривать историю транзакций.
|
||||
```
|
||||
├── src/
|
||||
│ ├── config/ # Конфигурация приложения
|
||||
│ ├── context/ # Контекст и состояния бота
|
||||
│ ├── handlers/ # Обработчики команд
|
||||
│ ├── models/ # Модели данных
|
||||
│ ├── services/ # Бизнес-логика
|
||||
│ ├── utils/ # Вспомогательные утилиты
|
||||
│ └── index.js # Точка входа
|
||||
├── wg/ # Конфигурация WireGuard
|
||||
├── docker-compose.yml # Docker конфигурация
|
||||
└── Dockerfile # Docker образ
|
||||
```
|
||||
|
||||
#### 2. **Администрирование**
|
||||
- **Управление пользователями**: Администратор может просматривать информацию о пользователях, управлять их балансами, блокировать или удалять аккаунты.
|
||||
- **Управление товарами**: Добавление новых товаров, редактирование существующих и управление их категориями.
|
||||
- **Создание дампов**: Администратор может создать дамп магазина, чтобы перенести данные на другой сервер или сохранить их для архивации.
|
||||
---
|
||||
|
||||
#### 3. **Работа с криптовалютами**
|
||||
- Поддержка различных типов криптокошельков (биткойн, эфириум, лайткоин и другие).
|
||||
- Проверка баланса кошельков через общедоступные API.
|
||||
- Управление комиссионными, которые необходимы для загрузки дампа магазина.
|
||||
### Разработка
|
||||
|
||||
#### Запуск в режиме разработки:
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
#### Линтинг и форматирование:
|
||||
```bash
|
||||
npm run lint
|
||||
npm run format
|
||||
```
|
||||
|
||||
#### Тестирование:
|
||||
```bash
|
||||
npm test
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Лицензия
|
||||
|
||||
Проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
|
||||
|
||||
---
|
||||
|
||||
### Контакты
|
||||
|
||||
По вопросам сотрудничества и поддержки:
|
||||
- Email: support@telegram-shop.com
|
||||
- Telegram: @telegram_shop_support
|
||||
|
||||
---
|
||||
|
||||
@ -87,4 +173,3 @@
|
||||
|
||||
### Заключение:
|
||||
**Универсальный Телеграмм Магазин** предоставляет эффективное решение для организации торговых процессов в Telegram, с возможностью работы с криптовалютами и традиционными средствами. Проект ориентирован на пользователей, которые ценят удобство, безопасность и скорость совершения покупок. Для администраторов — это мощный инструмент для управления товаром, пользователями и финансовыми потоками магазина.
|
||||
|
||||
|
@ -8,17 +8,19 @@ services:
|
||||
container_name: telegram_shop_prod
|
||||
restart: always
|
||||
environment:
|
||||
- BOT_TOKEN=7626758249:AAEdcbXJpW1VsnJJtc8kZ5VBsYMFR242wgk
|
||||
- ADMIN_IDS=732563549,390431690,217546867
|
||||
- SUPPORT_LINK=https://t.me/neroworm
|
||||
- CATALOG_PATH=./catalog
|
||||
- COMMISSION_ENABLED=true
|
||||
- COMMISSION_PERCENT=5
|
||||
- COMMISSION_WALLET_BTC=bc1qyourbtcaddress
|
||||
- COMMISSION_WALLET_LTC=ltc1qyourltcaddress
|
||||
- COMMISSION_WALLET_USDT=0x654dbef74cae96f19aa03e1b0abf569b111572cc
|
||||
- COMMISSION_WALLET_USDC=0xYourUsdcAddress
|
||||
- COMMISSION_WALLET_ETH=0xYourEthAddress
|
||||
- WG_ENABLED=false # Включение/выключение WireGuard (true/false)
|
||||
- BOT_TOKEN=7626758249:AAEdcbXJpW1VsnJJtc8kZ5VBsYMFR242wgk # Токен Telegram бота
|
||||
- ADMIN_IDS=732563549,390431690,217546867 # ID администраторов через запятую
|
||||
- SUPPORT_LINK=https://t.me/neroworm # Ссылка на поддержку
|
||||
- CATALOG_PATH=./catalog # Путь к каталогу товаров
|
||||
- COMMISSION_ENABLED=true # Включение комиссии (true/false)
|
||||
- COMMISSION_PERCENT=5 # Процент комиссии
|
||||
# Кошельки для комиссий:
|
||||
- COMMISSION_WALLET_BTC=bc1qyourbtcaddress # Bitcoin
|
||||
- COMMISSION_WALLET_LTC=ltc1qyourltcaddress # Litecoin
|
||||
- COMMISSION_WALLET_USDT=0x654dbef74cae96f19aa03e1b0abf569b111572cc # USDT (ERC-20)
|
||||
- COMMISSION_WALLET_USDC=0xYourUsdcAddress # USDC (ERC-20)
|
||||
- COMMISSION_WALLET_ETH=0xYourEthAddress # Ethereum
|
||||
volumes:
|
||||
- ./db:/app/db/ # Синхронизация базы данных
|
||||
- ./src:/app/src/ # Синхронизация исходного кода
|
||||
|
73
wg/start.sh
73
wg/start.sh
@ -44,6 +44,16 @@ print_result() {
|
||||
print_separator
|
||||
}
|
||||
|
||||
# Проверка включения WireGuard
|
||||
if [ "$WG_ENABLED" = "false" ]; then
|
||||
print_stage "WireGuard is disabled"
|
||||
print_result "Skipping WireGuard setup"
|
||||
print_stage "Starting application"
|
||||
echo "║ Application is starting..."
|
||||
exec node src/index.js
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Проверка наличия /etc/resolv.conf
|
||||
print_stage "Checking /etc/resolv.conf"
|
||||
if [ ! -f /etc/resolv.conf ]; then
|
||||
@ -112,36 +122,45 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# Запуск WireGuard
|
||||
print_stage "Starting WireGuard"
|
||||
wg-quick up wg0 2>&1 | tee /tmp/wg.log
|
||||
wg_status=$?
|
||||
if [ $wg_status -eq 0 ]; then
|
||||
echo "║ WireGuard started successfully."
|
||||
print_result "WireGuard interface activated successfully."
|
||||
# Проверка включения WireGuard
|
||||
print_stage "Checking WireGuard status"
|
||||
if [ "$WG_ENABLED" = "true" ]; then
|
||||
echo "║ WireGuard is enabled. Starting..."
|
||||
|
||||
# Запуск WireGuard
|
||||
wg-quick up wg0 2>&1 | tee /tmp/wg.log
|
||||
wg_status=$?
|
||||
if [ $wg_status -eq 0 ]; then
|
||||
echo "║ WireGuard started successfully."
|
||||
print_result "WireGuard interface activated successfully."
|
||||
else
|
||||
echo "║ WireGuard failed to start. Logs:"
|
||||
cat /tmp/wg.log | sed 's/^/║ /'
|
||||
print_result "Failed to start WireGuard interface!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Проверка маршрутизации после запуска WireGuard
|
||||
print_stage "Routing table AFTER WireGuard"
|
||||
ip route | sed 's/^/║ /'
|
||||
print_separator
|
||||
|
||||
# Проверка сети ПОСЛЕ включения WireGuard
|
||||
print_stage "Testing connectivity AFTER WireGuard"
|
||||
echo "║ Pinging 1.1.1.1..."
|
||||
ping -c 4 1.1.1.1 > /tmp/ping.log 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "║ Ping successful."
|
||||
cat /tmp/ping.log | sed 's/^/║ /'
|
||||
else
|
||||
echo "║ Ping failed."
|
||||
fi
|
||||
print_separator
|
||||
else
|
||||
echo "║ WireGuard failed to start. Logs:"
|
||||
cat /tmp/wg.log | sed 's/^/║ /'
|
||||
print_result "Failed to start WireGuard interface!"
|
||||
exit 1
|
||||
echo "║ WireGuard is disabled. Skipping..."
|
||||
print_result "WireGuard is disabled in configuration."
|
||||
fi
|
||||
|
||||
# Проверка маршрутизации после запуска WireGuard
|
||||
print_stage "Routing table AFTER WireGuard"
|
||||
ip route | sed 's/^/║ /'
|
||||
print_separator
|
||||
|
||||
# Проверка сети ПОСЛЕ включения WireGuard
|
||||
print_stage "Testing connectivity AFTER WireGuard"
|
||||
echo "║ Pinging 1.1.1.1..."
|
||||
ping -c 4 1.1.1.1 > /tmp/ping.log 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "║ Ping successful."
|
||||
cat /tmp/ping.log | sed 's/^/║ /'
|
||||
else
|
||||
echo "║ Ping failed."
|
||||
fi
|
||||
print_separator
|
||||
|
||||
# Проверка DNS
|
||||
print_stage "Testing DNS"
|
||||
|
Loading…
Reference in New Issue
Block a user