Все сервисы2. Настройка
Что это
Lexi - SPA-приложение для изучения английского. Spaced repetition (SRS) по словам и фразам, локальная база SQLite, твой прогресс не уходит ни в какие облака.
Можешь развернуть локально, или хостить на своём сервере (Vercel, fly.io - инструкция внутри).
Кому полезно: всем кто учит английский и устал от Duolingo с микротранзакциями.
Что внутри
- SRS-алгоритм по карточкам (как Anki, но без сложного UI)
- SQLite локально - бэкап одним файлом
- TypeScript + Drizzle ORM - типизация end-to-end
- Адаптивный UI - открывается с телефона в браузере
- Импорт колод из CSV
- Audio-произношение через браузерный TTS
Что понадобится
- Node.js 20+ (проверено на 22.17)
- npm 10+
- Telegram-бот через @BotFather
- OpenRouter API key - openrouter.ai/keys (есть free credits для теста)
- HTTPS-туннель наружу для Telegram (например cloudflared) - потому что Mini App работает только по HTTPS
- (опционально) ElevenLabs API key для качественного голоса Lexi
Установка
Полный гайд внутри архива в README.md. Кратко:
Что умеет
- Диагностика уровня - адаптивный CEFR-тест на старте (A1 → C1)
- Spaced Repetition - карточки слов с FSRS алгоритмом
- Тренажёр - собери английскую фразу из плиток (Duolingo-style)
- Активный словарь в Talk - Lexi подсказывает использовать новые слова, начисляет 🪙 за каждое
- Сценарии разговора - 16+ ролевых (бармен, врач, customs, recruiter) + 10 дискуссий
- Алиас - мини-игра на словарь по уровням A1-C1
- Чтение - 22+ статей с auto-sync с Wikipedia
- Writing - AI-разбор твоих эссе с feedback по CEFR rubric
- Battle - соревнование на словарь с другом
- Голос - TTS через ElevenLabs (или системный fallback), STT через Web Speech API
- Бот-нотификации - утреннее слово, очередь повторения, weekly stats
1. Установка
# Распакуй архив, перейди внутрь
cd lexi
# Установи зависимости основного проекта
npm install
# Установи зависимости miniapp
cd miniapp && npm install && cd ..
# Скопируй шаблон конфига
cp .env.example .env
# Создай базу
npx drizzle-kit migrate
2. Настройка .env
Открой .env и заполни:
- В Telegram открой @BotFather
/newbot→ имя бота → username (заканчивается наbot)- Скопируй токен
- openrouter.ai/keys → создай ключ
- Скопируй
sk-or-v1-...
- elevenlabs.io → Profile → API Keys
3. HTTPS-туннель (Cloudflared)
Mini App в Telegram открывается только по HTTPS. Самый простой способ:
- Скачай
cloudflared.exeс github.com/cloudflare/cloudflared/releases - Положи в
bin/cloudflared.exe - При запуске
run\lexi-tunnel.cmdподнимется туннель и выдаст HTTPS-URL видаhttps://abc123.trycloudflare.com - Этот URL впиши в Mini App настройку у @BotFather:
/mybots→ твой бот →Bot Settings→Configure Mini App→ URL
4. Запуск
Windows (через готовые скрипты вrun/):
run\lexi-server.cmd- запуск Node-сервераrun\lexi-tunnel.cmd- cloudflared туннельrun\show-url.cmd- показать текущий URL туннеля
npm start
5. Автозапуск Windows
Кинь ярлыки на run\lexi-server.cmd и run\lexi-tunnel.cmd в Startup-папку:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
Также проверь Power Settings - чтобы комп не засыпал.
6. Деплой на VPS
В deploy/ лежит готовый скрипт под Ubuntu + Caddy + systemd. Подробности в deploy/README.md. По сути: bash deploy.sh на сервере и оно само поднимет всё.
Если что-то не работает
См. troubleshooting в полном README.md - там разобраны типичные кейсы (бот не отвечает, Mini App не открывается, голос не работает, и т.д.).