0%

AutoSteamGifts — автоматическая доставка Steam Gift

Rianvy
Эта запись также доступна на 🇬🇧 English
AutoSteamGifts — автоматическая доставка Steam Gift
Завершён

Проект успешно завершён и работает

Используемые инструменты

TypeScript
React
Vite
Chakra UI
Node.js
Express
Prisma
SQLite
PostgreSQL
Redis
BullMQ
Docker

AutoSteamGifts — self-hosted платформа, которая автоматизирует весь путь продажи Steam Gift: от webhook об оплате на Digiseller/Plati до выбора аккаунта нужного региона, отправки заявки в друзья, покупки игры и доставки подарка покупателю.

📌 О проекте

Задача проекта — превратить ручную выдачу Steam-подарков в управляемый и наблюдаемый процесс. Продавец подключает пул аккаунтов, создаёт товары и настраивает магазин, а система самостоятельно обрабатывает новые оплаты, ведёт заказ по конечному автомату статусов и показывает покупателю актуальный прогресс доставки.

Проект изначально создавался на продажу — как готовое self-hosted решение «под ключ» для запуска собственного магазина Steam-подарков. Скоро он появится в продаже.

Продукт включает три связанные части:

  • публичную витрину с каталогом игр и страницами товаров;
  • защищённую админ-панель для управления магазином и операциями;
  • backend доставки с очередями, интеграциями Steam и Digiseller, журналированием и уведомлениями.

✨ Что было реализовано

Автоматическая доставка

  • Приём и дедупликация webhook от Digiseller/Plati.
  • Определение Steam-профиля покупателя по ссылке, vanity URL или SteamID.
  • Подбор свободного аккаунта-отправителя по региону, статусу, балансу и cooldown.
  • Сценарий «заявка в друзья → ожидание принятия → покупка → отправка подарка».
  • Ретраи с экспоненциальной задержкой и отдельный сценарий ручной сверки неоднозначной оплаты.
  • Публичная страница заказа с подтверждением профиля и живым прогрессом доставки.

Публичная витрина

  • Главная с hero-блоком, скидками, лидерами продаж, новинками и тематическими подборками.
  • Каталог с поиском, сортировками и фильтрами по цене, региону, жанрам, особенностям, издателям и разработчикам.
  • Полноценная страница игры: арт, галерея, трейлеры, описание, локализация, системные требования, отзывы и похожие товары.
  • Автоматическое получение цен, скидок, обложек и метаданных из Steam Store.
  • Коллекции, избранное без регистрации, редактируемые юридические страницы и поддержка русского/английского контента.

Админ-панель

  • JWT-авторизация и отдельный секретный путь вместо предсказуемого /admin.
  • Дашборд со статистикой заказов, конверсией, состоянием аккаунтов, каталогом и продажами Digiseller.
  • Управление Steam-аккаунтами, товарами, коллекциями, страницами, заказами, логами и настройками.
  • Детальная история заказа, пошаговые логи и безопасные ручные действия оператора.
  • Единая дизайн-система на Chakra UI, адаптивная навигация, светлая и тёмная темы.

Надёжность и эксплуатация

  • Независимые mock/real-провайдеры Steam и Digiseller для безопасного тестирования.
  • BullMQ + Redis для фоновой доставки или inline-режим без Redis.
  • Шифрование секретов аккаунтов через AES-256-GCM.
  • Transactional outbox для Telegram-уведомлений, повторные попытки и защита от дублей.
  • Rate limiting, CORS, Helmet, структурированные логи, graceful shutdown и Docker Compose.
  • Веб-установщик, который проверяет окружение, создаёт конфигурацию, применяет миграции и заводит администратора.

⚙️ Архитектура

Платёжный webhook создаёт заказ и ставит задачу доставки в очередь. Worker подбирает аккаунт нужного региона и выполняет шаги Steam через абстракцию провайдера. Все переходы статуса сохраняются в БД, отображаются в админке и при необходимости порождают надёжно доставляемое уведомление.

Такое разделение позволило изолировать внешние сервисы, безопасно воспроизводить сценарии в mock-режиме и переключать SQLite/PostgreSQL или BullMQ/inline без изменения бизнес-логики.

🖼️ Интерфейс проекта

Скриншоты сделаны на изолированном демонстрационном стенде: 38 игр, 5 подборок, 17 тестовых заказов и 3 mock-аккаунта отправителей. Реальные операции Steam и Digiseller при подготовке материалов были отключены.

Каждая демонстрация синхронизирована по состоянию и размеру. Светлую и тёмную версии можно переключать прямо внутри блока, а на ключевых экранах — сравнивать ползунком.

Публичная витрина

Главная страница магазина целиком

Главная страница магазина целиком - Тёмная
Главная страница магазина целиком - Светлая
☀️ Светлая
🌙 Тёмная

Hero-блок, быстрый поиск, скидки, лидеры продаж, жанры, новинки, подборки, русская локализация и футер.

Полный каталог из 38 игр

Полный каталог из 38 игр - Светлая
Полный каталог из 38 игр - Тёмная

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

Карточка игры

Карточка игры - Светлая
Карточка игры - Тёмная

Галерея, Steam-метаданные, жанры, избранное и блок покупки на примере ELDEN RING.

Отзывы о товаре

Отзывы о товаре - Светлая
Отзывы о товаре - Тёмная

Отдельное состояние карточки с рейтингом и отзывами покупателей.

Каталог подборок

Каталог подборок - Светлая
Каталог подборок - Тёмная

Промо-подборки и тематические витринные полки, сформированные из тестового каталога.

Страница подборки

Страница подборки - Светлая
Страница подборки - Тёмная

Обложка-коллаж, описание и полный состав редакционной подборки.

Избранное без регистрации

Избранное без регистрации - Светлая
Избранное без регистрации - Тёмная

Сохранённые товары и подборки остаются доступны покупателю локально.

Статус покупки

Статус покупки - Светлая
Статус покупки - Тёмная

Публичный экран доставленного подарка с понятным следующим действием для покупателя.

Контент и служебные состояния витрины

Пользовательское соглашение

Пользовательское соглашение - Светлая
Пользовательское соглашение - Тёмная

Редактируемая из админ-панели юридическая страница с навигацией по разделам.

Политика конфиденциальности

Политика конфиденциальности - Светлая
Политика конфиденциальности - Тёмная

Вторая управляемая контентная страница витрины.

Страница 404

Страница 404 - Светлая
Страница 404 - Тёмная

Аккуратное состояние для неизвестного адреса с возвратом в магазин.

Админ-панель

Вход администратора

Вход администратора - Светлая
Вход администратора - Тёмная

Изолированный экран авторизации на настраиваемом секретном пути.

Операционный дашборд

Операционный дашборд - Тёмная
Операционный дашборд - Светлая
☀️ Светлая
🌙 Тёмная

Заказы, конверсия, продажи, требующие внимания статусы, пул аккаунтов и состояние каталога.

Список заказов

Список заказов - Светлая
Список заказов - Тёмная

Поиск, фильтры по всем статусам и 17 заказов с разнообразными тестовыми сценариями.

Детальная карточка заказа

Детальная карточка заказа - Светлая
Детальная карточка заказа - Тёмная

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

Пул Steam-аккаунтов

Пул Steam-аккаунтов - Светлая
Пул Steam-аккаунтов - Тёмная

Регионы, балансы, лимиты, cooldown, статистика отправок и диагностика mock-аккаунтов.

Добавление аккаунта

Добавление аккаунта - Светлая
Добавление аккаунта - Тёмная

Учётные данные, Steam Guard, прокси и отдельное подтверждение реальных покупок.

Управление каталогом

Управление каталогом - Светлая
Управление каталогом - Тёмная

Товары, регионы, цены, синхронизация со Steam и статус размещения в Digiseller.

Полный редактор товара

Полный редактор товара - Светлая
Полный редактор товара - Тёмная

Steam-ссылка, регионы, размещение, галерея, описания на двух языках и автоматически загруженные метаданные.

Массовое создание товаров

Массовое создание товаров - Светлая
Массовое создание товаров - Тёмная

Импорт списка игр по ссылке или AppID с ценой и последующей синхронизацией.

Управление подборками

Управление подборками - Светлая
Управление подборками - Тёмная

Порядок, видимость и промо-статус витринных коллекций.

Редактор подборки

Редактор подборки - Светлая
Редактор подборки - Тёмная

Название, описание, промо-настройки и ручная сортировка игр внутри коллекции.

Редактор страниц

Редактор страниц - Светлая
Редактор страниц - Тёмная

Управление юридическими текстами и служебным контентом без изменения кода.

Настройки платформы

Настройки платформы - Светлая
Настройки платформы - Тёмная

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

Защищённое состояние инсталлятора

Защищённое состояние инсталлятора - Светлая
Защищённое состояние инсталлятора - Тёмная

После завершения установки повторный запуск блокируется из соображений безопасности.

🔧 Технологии

  • Frontend: React 18, TypeScript, Vite, Chakra UI v3, React Markdown, HLS.js.
  • Backend: Node.js, TypeScript, Express, Prisma.
  • Данные и очереди: SQLite/PostgreSQL, Redis, BullMQ.
  • Интеграции: Steam, Digiseller/Plati, Telegram.
  • Инфраструктура: Docker, Docker Compose, Nginx.

🌐 Результат

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

© 2025 - 2026 0x69.ru

Powered by ❤️

Readme.md

whoami 👨‍💻

$ cat /etc/profile

Username: Rianvy
Real name: Максим Александров
Age: 28 Location: Тула, RU
Role: Senior Developer & UI/UX Designer 😎

About

Этот блог — мой personal knowledge base, где я пушу заметки про tech stack, life experience и всё, что триггерит мой interest => 🚀

Contact

Open for collaboration 🤝 — готов к мёрджу идей и совместным проектам.

Stack

💻 ЯП

  • C#, PHP, JavaScript/TypeScript, Python

⚛️ Frontend

  • React / Next.js, Vue.js / Nuxt.js
  • Tailwind CSS / SCSS
  • Адаптивная вёрстка (HTML, CSS, JS) 📱

🔧 Backend

  • Laravel, Node.js / Express / NestJS
  • REST API

🗄️ Базы данных

  • MySQL, PostgreSQL, MongoDB, Redis

🛠️ DevOps

  • Docker, Git, CI/CD, Linux 🐧

🎨 Дизайн и графика

  • Figma — UI/UX дизайн и прототипирование
  • Photoshop — графика и обработка изображений
  • After Effects — моушн-дизайн и анимация 🎬
Мои Open Source проекты 🌟
Название VKify
Описание Мощное браузерное расширение для кастомизации ВКонтакте с блокировкой рекламы, темами оформления, режимом приватности и пользовательским CSS
Название CleanSlate for Reddit
Описание Приватное local-first расширение для очистки постов, комментариев, сохранённых публикаций и голосов Reddit прямо в браузере
Мои проекты 🚀
Название GreenShield VPN
Описание VPN-сервис в Telegram
Социальные сети