Skip to main content

il2ks: IL-2 Sturmovik: Korea stats

Self-hosted statistics website for IL-2 Sturmovik: Korea dedicated servers. It parses the server's mission logs into a database and serves mission, player and sortie stats as a server-rendered website.

Status: public beta, version 0.1.0. Changes are listed in the changelog; please report problems in Issues. The design lives in design_doc/.

Install

What it does

il2ks reads the text mission logs your DServer writes and builds a stats website from them. It is made for IL-2 Sturmovik: Korea servers.

  • Missions, players and sorties: every mission with its kills and losses and who won it, a page per player and a timeline per flight.
  • Tours: stats per tour (a month by default, or a new tour whenever one side wins a mission, for dynamic campaigns) or all-time. Every tour is a clean slate: Elo, streaks and achievements start over. The site opens on the current tour.
  • Leaderboards: air score, ground score, attack proficiency, interception, tank busting, Elo (propeller and jet) and play time. Scoring is yours to tune, including optional points for time in the air, so a quiet patrol counts too.
  • Live data: sorties and stats update while the mission is still running.
  • Aircraft pages: how each type does, its best loadouts and modifications, and who it beats and loses to, filtered by tour, role and modification.
  • Achievements, streaks, killboards (who shot whom), accuracy, assists, and Top 25% / 10% / 5% / 1% marks on a player's best ratios and ratings.
  • Your branding: title, logo, colors (light and dark), fonts (also your own font file), menu links, all in the admin without touching files. Templates can be replaced for more.
  • Six languages: English, Russian, German, Spanish, French, Brazilian Portuguese. Visitors get their browser's language and can change it in the footer.
  • Rules you can switch: for example whether ramming earns a kill, how many points a kill is worth, and what a death costs. See Rules, scoring and tours.
  • Safe by default: HTTPS with a free certificate, daily backups, a doctor command that checks your setup.

Inspired by IL2 stats by =FB=Vaal and =FB=Isay. See NOTICE.

For server admins

Written for people who run a game server, not for programmers: short steps, copy-paste commands. On Windows, use the installer. On Linux, use Docker or the manual steps.

Development

Requires uv.

uv sync                       # install Python 3.13 + dependencies
uv run pytest                 # tests on SQLite (default)
uv run ruff check && uv run ruff format --check
uv run pyright                # strict type checking
uv run lint-imports           # core must not import Django
uv run il2ks manage migrate   # create the local SQLite database
uv run il2ks web --dev        # the site on plain http://127.0.0.1:8000 (debug mode; never for a public site)

uv run il2ks run starts everything as an admin would (web + log watcher + Caddy); see docs/install.md. To publish a release: bump __version__ in src/il2ks/__init__.py, tag v<version>, push the tag (.github/workflows/release.yml).

Postgres is only used on the dev side: docker compose -f docker/compose.dev.yaml up -d, then IL2KS_TEST_DB=postgres uv run pytest.

Browser (end-to-end) tests drive the real site in Chromium with Playwright. They are opt-in, so uv run pytest never needs a browser:

uv run playwright install chromium                  # once; on a fresh Linux machine/CI: install --with-deps chromium
IL2KS_TEST_E2E=1 uv run pytest -m e2e               # headless; add --headed --slowmo 300 to watch
IL2KS_TEST_E2E=1 uv run pytest -m e2e --tracing=retain-on-failure --screenshot=only-on-failure   # what CI does
uv run playwright show-trace test-results/<test>/trace.zip

PowerShell: $env:IL2KS_TEST_E2E = "1" first. The tests start il2ks web --dev on a free port with a throw-away data dir filled with made-up players and missions (tests/e2e/world.py), so they never touch your own data. They find things by role, label and visible text, so keep the words on the pages stable or update the tests with them.

License

MIT, see LICENSE and NOTICE.

Metadata

Release files for il2ks 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for il2ks 0.1.0
File Size Uploaded
il2ks-0.1.0.tar.gz 3.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for il2ks 0.1.0
File Interpreter ABI Platform
il2ks-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 5.1 MB

Release files / il2ks-0.1.0.tar.gz

Download URL il2ks-0.1.0.tar.gz
Size 3.4 MB
Tags Source
SHA-256 checksum
How to use checksums
545807f867b639ad47105b98a35cefe43b75696424f96bc43904da0cfee93a20
BLAKE2b-256 checksum
How to use checksums
d6f547997106df7387910f9cce26bf1f9deeddf5348527b70b0342ea452dd3ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / il2ks-0.1.0-py3-none-any.whl

Download URL il2ks-0.1.0-py3-none-any.whl
Size 1.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
02fb7101b19ab342e11d3c30b0962c32e63823d20ddd81e0b1ae3289974975b4
BLAKE2b-256 checksum
How to use checksums
8e7c4d1b4b07e3d06750cea405203747c16e1cecdc95b84f46c3f14cd79f24db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page