API аккаунтов на чистой стандартной библиотеке Python (server/splitapi): - регистрация по почте: пароль задаётся по ссылке из письма, аккаунт создаётся только после подтверждения - вход, выход, сброс пароля по почте (токены одноразовые, в базе только SHA-256), удаление аккаунта - пароли scrypt, лимиты попыток по паре «адрес + IP», IP и аккаунту, защита от CSRF - хранение прогресса пользователя с оптимистичной блокировкой версии - SMTP через переменные окружения; без SMTP на публичном адресе API не стартует Клиент: public/auth.js (вход, регистрация, сброс, синхронизация), public/sync.js (чистое слияние прогресса). Без API сайт работает как раньше. Развёртывание: Dockerfile.api, сервис splitapi в docker-compose, проксирование /api/ в nginx с ограничением частоты, deploy/install-api-debian.sh (systemd), .env.example. Тесты: 216 для бэкенда (unittest, покрытие около 97%), 16 для клиентского слияния. Документация: раздел «Аккаунты и почта» в docs/DEPLOY.md, раздел 9 в docs/ИНСТРУКЦИЯ.md.
2.1 KiB
2.1 KiB
Сплит-тренер
Тренажёр слепой печати для сплит-клавиатур: русская и английская раскладки, цифры, знаки препинания, статистика, чтение раскладки Vial (.vil) и упражнения на переключение слоёв.
Без сборки и зависимостей: статический сайт.
Быстрый старт
-
Локально: откройте
public/index.htmlв браузере. -
На сервере (Debian 12/13), в том числе за обратным прокси:
docker compose up -d --build # или: sudo ./deploy/install-debian.shТребования, настройка прокси, обновление: docs/DEPLOY.md.
Как пользоваться: docs/ИНСТРУКЦИЯ.md.
Аккаунты (необязательно)
На сервере можно включить вход по почте: регистрация с подтверждением, сброс пароля, прогресс на сервере. API написан на чистой стандартной библиотеке Python (server/), настройки почты задаются переменными окружения (образец: .env.example). Подробнее: раздел «Аккаунты и почта» в docs/DEPLOY.md.
Структура
public/- сайт:index.html,app.js(логика),vial.js(разбор Vial и маршруты по слоям),data.js(раскладки, слова, тексты),styles.cssserver/- API аккаунтов (Python, без зависимостей) и его тестыtests/- тесты клиентского кода (node --test "tests/*.test.js")deploy/- конфиг nginx и скрипты установки для DebianDockerfile(сайт),Dockerfile.api(API),docker-compose.yml- запуск в контейнерахdocs/- инструкции