NW 6db770b96b feat: editable settings page with .env write and container restart
- Add settings form with all config fields (Bot, Commission, Wallets, WireGuard)
- POST handler writes .env file and restarts container via process.exit(0)
- Secrets (ENCRYPTION_KEY, ADMIN_SECRET, GITEA_TOKEN, WG_PRIVATE_KEY, WG_PRESHARED_KEY)
  are never sent to browser - masked placeholders used instead
- PRESERVE_KEYS enforced: secret keys cannot be overwritten via form
- Values sanitized: newlines stripped before writing to .env
- start.sh loads .env file before node to override Docker env_file cache
- Extract shared escapeHtml utility to escape.js (used by 6 view files)
- Update paymentWallets view to link to Settings page instead of .env
- Add .env volume mount for settings panel read/write
- Fix registerRoutes() not being called in index.js (bot menu buttons)
2026-06-23 12:32:25 +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%