Установка SIMple

Быстрый старт

Полная установка (PWA + сервер карт) — два способа:

1. Скачать релизный пакет (рекомендуется). На странице Releases возьмите последний пакет (simple-<version>.zip), распакуйте в любое место и один раз запустите setup:

./setup.sh     # или setup.bat в Windows — создаёт .venv, ставит pysim + сервер
./start.sh     # или start.bat — запускает сервер (он же раздаёт PWA)

Пакет собран из помеченного тегом исходного кода — без истории git и без файлов для разработки. Git всё равно нужен: setup ставит pysim из его upstream-репозитория (ни pysim, ни его зависимости в пакет не входят).

Обновление быстрое: ./update.sh (или update.bat) скачивает последний релизный пакет, заменяет файлы приложения на месте и переустанавливает приложение в существующий .venv — pysim и его зависимости остаются, ничего не пересобирается. ./update.sh --check показывает текущую и последнюю версии, --version X.Y.Z — конкретный релиз, --zip file.zip — обновление из локального пакета.

2. Клонировать репозиторий (для разработки или ещё не выпущенных изменений).

git clone https://github.com/anttro/simple.git   # или --depth 1: без истории,
cd simple                                        # `git pull` всё равно обновляет
./setup.sh     # или setup.bat в Windows
./start.sh     # или start.bat

После установки: откройте http://127.0.0.1:8080 в браузере. Сервер запускается и с пустым картридером (отсутствие карты — нормальное состояние): вставьте карту, и она инициализируется автоматически (auto-equip), либо нажмите Equip card в интерфейсе.

Требования

  • Python 3.9+ с pip, и Git — приложение работает на 3.9+, но SCP81 TLS-PSK-слушателю нужен Python 3.13+ (PSK-callback'и ssl).
  • Поддержка venv в Python — setup.sh создаёт .venv; если создание завершается с ensurepip is not available (в Debian/Ubuntu модуль venv поставляется отдельно), установите его (sudo apt install python3-venv) и запустите ./setup.sh снова. Неполный .venv, оставшийся от неудачного запуска, удаляется автоматически.
  • Смарт-картридер (PC/SC или serial/FTDI) — предпочтителен PC/SC (pcsc-lite + ccid на Linux). У pyscard нет Linux-wheel, поэтому он собирается из исходников: поставьте и пакет с заголовками PC/SC (libpcsclite-dev в Debian/Ubuntu, pcsc-lite-devel в Fedora; в Arch они входят в pcsclite).
  • Windows — используйте Python 3.13 (настоятельно рекомендуется): у pyscard есть готовые wheel до 3.13, и SCP81 TLS-PSK-слушателю нужен 3.13+. На 3.14 wheel для pyscard и части зависимостей pysim отсутствуют, они собираются из исходников (нужны MSVC C++ Build Tools). 3.9–3.12 запускают приложение, но не SCP81 PSK-слушатель. SMPP-мост (smpp.twisted3) в Windows сознательно не ставится.

Скрипты

Скрипт Назначение
setup.sh / setup.bat Создаёт .venv/ (или исправляет неполный), ставит pysim и сервер. Запускать один раз после клонирования или распаковки релизного пакета.
start.sh / start.bat Запускает сервер из venv (раздаёт PWA + API на :8080).
update.sh / update.bat Обновляет пакетную установку на месте: скачивает последний релизный пакет, заменяет файлы приложения и переустанавливает приложение в существующий .venv (pysim сохраняется). --check, --version X.Y.Z, --zip FILE, --no-pip, --force.

start.sh перед запуском проверяет доступ к PC/SC: если пользователь не может использовать pcscd (или служба не запущена), он печатает причину и рекомендации (группа/polkit) и завершается — сервер больше не откатывается на последовательный ридер молча. При наличии доступа сервер сам находит первый PC/SC-ридер; start.bat всегда передаёт -p 0 (в Windows PC/SC встроен). Явный serial/FTDI-ридер по-прежнему возможен через -d <устройство> (проверка пропускается). Дополнительные аргументы передаются серверу, например ./start.sh --gsmtap или start.bat --gsmtap 10.0.0.5:4729. Если PC/SC-ридер не найден, сервер сообщает об этом и завершается — подключите ридер и перезапустите (ридер без карты — по-прежнему нормальный старт без карты).

Ручная установка (Linux/macOS)

python3 -m venv .venv
source .venv/bin/activate
pip install git+https://github.com/osmocom/pysim.git
pip install -e .                   # editable — раздаёт frontend/ из исходного дерева
pysim-simple-server --http-port 8080

В Windows используйте setup.bat: он ставит зависимости pysim из requirements-pysim.txt, а сам pysim — с --no-deps, поэтому SMPP-мост (и его сборка через MSVC) не подтягивается.

Полный README_RUS.md в репозитории