NW 4657b1dfb5 feat: web admin panel + better-sqlite3 migration + Docker fixes
- Added Express.js admin panel on port 3001 (ADMIN_PORT env)
  - Dashboard: stats (users, products, purchases, revenue)
  - Users: list, details, ban/unban toggle
  - Products: CRUD by category
  - Wallets: list with balances
  - Purchases: history with filters
  - Audit log: view audit trail
  - Auth: token-based login with ADMIN_SECRET env var
- Migrated sqlite3 → better-sqlite3
  - database.js: async adapter (runAsync/allAsync/getAsync)
  - purchaseService.js: lastID → lastInsertRowid
  - userService.js: lastID → lastInsertRowid
  - Removed sqlite3 from package.json
- Fixed: dotenv/config import added to index.js
- Fixed: ENCRYPTION_KEY validation (32+ char hex)
- Fixed: Dockerfile multi-stage build (no python needed)
- Fixed: Docker DNS (network: host in build)
- Fixed: docker-compose port 3001, healthcheck on 3001
- Added express, cookie-parser, pino-pretty, better-sqlite3 deps
2026-06-22 10:54:01 +01:00
2024-11-15 07:31:46 +03:00
2025-03-06 16:13:11 +00:00

Универсальный Телеграмм Магазин

Описание проекта:
"Универсальный Телеграмм Магазин" — это телеграмм-бот для организации онлайн-продаж через Telegram. Проект предоставляет полный цикл управления магазином, включая работу с криптовалютами, управление товарами и пользователями, а также интеграцию с VPN через WireGuard для безопасных транзакций.

Основные технологии:

  • Node.js + Telegraf для работы с Telegram API
  • SQLite для хранения данных
  • Docker для контейнеризации
  • WireGuard для защищенных соединений
  • Поддержка криптокошельков (Bitcoin, Ethereum, Litecoin)

Проект включает несколько ключевых разделов для удобной работы пользователей и администраторов, а также позволяет интегрировать систему криптокошельков для расчетов, управления товарами и отслеживания покупок.

Основной функционал

Для пользователей:

  • Просмотр товаров по категориям с фильтрацией по локациям
  • Совершение покупок с использованием криптовалют
  • Управление криптокошельками (создание, пополнение, просмотр баланса)
  • Просмотр истории транзакций и покупок
  • Настройка профиля (локация, контактные данные)
  • Подключение к защищенному VPN через WireGuard для безопасных транзакций

Для администраторов:

  • Полное управление товарами и категориями
  • Управление пользователями (блокировка, редактирование балансов)
  • Контроль транзакций и комиссий
  • Создание дампов базы данных с автоматическим списанием комиссии (% от балансов кошельков)
  • Управление локациями и настройками VPN
  • Мониторинг активности пользователей
  • SaaS система с автоматическим расчетом комиссий:
    • Комиссия за оборот по магазину перед выгрузкой кошельков

Установка и запуск

Требования:

  • Node.js 18+
  • Docker и Docker Compose
  • Telegram Bot Token
  • SQLite connection string
  • WireGuard конфигурация

1. Установка зависимостей:

npm install

2. Настройка конфигурации:

Создайте файл .env в корне проекта со следующим содержимым:

TELEGRAM_BOT_TOKEN=your_bot_token
MONGO_URI=mongodb://localhost:27017/telegram_shop
WIREGUARD_CONFIG_PATH=./wg/config/wg0.conf

3. Запуск через Docker:

docker-compose up -d

4. Настройка WireGuard:

  1. Сгенерируйте ключи:
wg genkey | tee privatekey | wg pubkey > publickey
  1. Настройте wg0.conf:
[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. Запуск бота:

npm start

Структура проекта

├── src/
│   ├── config/          # Конфигурация приложения
│   ├── context/         # Контекст и состояния бота
│   ├── handlers/        # Обработчики команд
│   ├── models/          # Модели данных
│   ├── services/        # Бизнес-логика
│   ├── utils/           # Вспомогательные утилиты
│   └── index.js         # Точка входа
├── wg/                  # Конфигурация WireGuard
├── docker-compose.yml   # Docker конфигурация
└── Dockerfile           # Docker образ

Разработка

Запуск в режиме разработки:

npm run dev

Линтинг и форматирование:

npm run lint
npm run format

Тестирование:

npm test

Лицензия

Проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.


Контакты

По вопросам сотрудничества и поддержки:


Требования к системе:

  1. Интерфейс пользователя:

    • Интуитивно понятный и удобный интерфейс для покупок.
    • Легкость в управлении профилем и кошельками.
    • Информация о товарах и статусах покупок должна быть легко доступна.
  2. Интерфейс администратора:

    • Возможность редактировать товары, категории и управлять локациями.
    • Инструменты для контроля баланса и управления пользователями.
    • Функционал для создания и загрузки дампов данных.
  3. Безопасность:

    • Защищенные транзакции.
    • Надежная система для хранения данных пользователей и кошельков.
    • Механизмы для предотвращения мошенничества и атак.
  4. Производительность:

    • Система должна быть способна обрабатывать большое количество пользователей и транзакций одновременно.
    • Пагинация данных, чтобы обеспечить быструю загрузку и обработку.

Риски и возможные проблемы:

  1. Зависимость от сторонних сервисов:

    • Интеграция с криптокошельками и сторонними сервисами для проверки баланса может быть подвержена сбоям, если эти сервисы не работают корректно.
  2. Поддержка разных криптовалют:

    • Необходимо следить за изменениями в протоколах криптовалют и своевременно обновлять систему.
  3. Безопасность и защита данных:

    • Важно следить за актуальностью средств защиты данных и предотвратить утечку информации о пользователях и их балансе.

Заключение:

Универсальный Телеграмм Магазин предоставляет эффективное решение для организации торговых процессов в Telegram, с возможностью работы с криптовалютами и традиционными средствами. Проект ориентирован на пользователей, которые ценят удобство, безопасность и скорость совершения покупок. Для администраторов — это мощный инструмент для управления товаром, пользователями и финансовыми потоками магазина.

Description
No description provided
Readme 1.1 MiB
Languages
JavaScript 91%
Shell 5.6%
CSS 3.1%
Dockerfile 0.3%