gnss/Docs/nuitka.md

47 lines
2 KiB
Markdown
Raw Permalink Normal View History

## Nuitka build (backend)
### Важно
- `gdal2tiles.py` и GDAL — это системные бинарники/библиотеки, Nuitka их не “впаяет” в один файл. На целевой машине GDAL всё равно должен быть установлен, если ты используешь `/tiles/slice` (нарезку).
- Для onefile-режима бинарник распаковывается во временную папку, поэтому проектные папки внутри пакета не должны использоваться для записи. В коде это решено через `GNSS_DATA_DIR`.
### Где лежат данные
По умолчанию:
- в обычном режиме (запуск из исходников) данные лежат рядом с пакетом (`gnss/`).
- в “замороженном” режиме (`nuitka --onefile`) данные идут в `~/.local/share/gnss`.
Можно переопределить:
- `GNSS_DATA_DIR=/path/to/data`
Структура:
- `$GNSS_DATA_DIR/tilesets/<tileset>/...`
- `$GNSS_DATA_DIR/uploads/...`
- `$GNSS_DATA_DIR/tiles/...` (опционально)
### Запуск без Nuitka (для проверки)
`poetry run gnss-backend --host 0.0.0.0 --port 8000`
### Установка Nuitka (в Poetry)
Рекомендовано держать Nuitka как dev-зависимость:
`poetry add --group dev nuitka`
### Сборка (standalone + onefile)
Пример:
`poetry run python -m nuitka --onefile --standalone --follow-imports --assume-yes-for-downloads --output-dir=dist --output-filename=gnss-backend gnss/__main__.py`
После сборки:
- бинарник будет в `dist/` (например `dist/gnss-backend.bin`)
### Запуск бинарника
`GNSS_DATA_DIR=./data ./dist/gnss-backend.bin --host 0.0.0.0 --port 8000`
Положи tileset’ы сюда:
- `./data/tilesets/<name>/...`