# sortof Project Zomboid mod load-order sorter for dedicated servers. Paste workshop IDs or a collection URL; get back the `WorkshopItems=`, `Mods=`, and `Map=` lines for `servertest.ini`. ## Stack - FastAPI + asyncpg, Python 3.12. - Postgres 16 (Docker). - DepotDownloader for fetching `mod.info` / `map.info` from each cached workshop item. - Vanilla JSX + index.html, no build step (Babel-standalone in-browser). ## Setup ```bash docker compose up -d sortof_db python3.12 -m venv api/.venv api/.venv/bin/pip install -r api/requirements.txt python3.12 -m venv worker/.venv worker/.venv/bin/pip install -r worker/requirements.txt ``` `.env` next to `docker-compose.yml`: ``` POSTGRES_USER=sortof POSTGRES_PASSWORD= POSTGRES_DB=sortof SORTOF_CORS_ORIGINS=http://127.0.0.1:8801 ``` Set `DD_PATH` to the DepotDownloader binary, then: ```bash api/.venv/bin/uvicorn app:app --host 127.0.0.1 --port 8801 worker/.venv/bin/python drain.py ``` ## Layout ``` api/ FastAPI service, sort engine, response adapters worker/ drain worker (DepotDownloader + mod.info parser) frontend/ index.html + JSX init/ Postgres bootstrap migrations (run on first boot) data/ checked-in JSON config (e.g., pz_versions.json) docs/ specs, plans ```