Hofei90 ec4b6c0b2f
CI / checks (push) Successful in 1m43s
M0: Projektgerüst für Hercules Pyloaded
- Django 6.0 mit Einstellungen aus Umgebungsvariablen (SQLite lokal, PostgreSQL im Betrieb)
- Pakete engine (reine Spielregeln) und game (Startseite, Health-Check, Worker-Platzhalter)
- uv mit Lockfile, ruff, mypy (strict für engine), pytest mit Smoke-Tests
- pre-commit-Hooks und vorbereiteter Gitea-Actions-Workflow
- Dockerfile und docker-compose (web, worker, db)
- README, CLAUDE.md, MIT-Lizenz

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:50:40 +02:00

Hercules Pyloaded

Weltraum-Browsergame, vierte Fassung von Hercules: nach dem Original von Warpman, Hercules Reloaded und Hercules Rereload jetzt als Neubau in Python mit Django und HTMX.

Das Konzept (Spielregeln, Architektur, Fahrplan) liegt als Dokument vor: Hercules Pyloaded – Konzept.

Voraussetzungen

  • Python 3.12 oder neuer (entwickelt mit 3.14)
  • uv für Abhängigkeiten und Umgebung
  • Git
  • Docker nur für den Betrieb mit PostgreSQL (optional)

uv wurde hier per pip install --user uv installiert und wird daher als python -m uv aufgerufen. Wer den Ordner %APPDATA%\Python\Python314\Scripts in den PATH aufnimmt, kann uv direkt nutzen.

Einrichtung

python -m uv sync
python -m uv run pre-commit install
python -m uv run python manage.py migrate
python -m uv run python manage.py createsuperuser
python -m uv run python manage.py runserver

Danach läuft das Spiel unter http://127.0.0.1:8000/ und der Admin unter http://127.0.0.1:8000/admin/. Ohne weitere Einstellungen wird SQLite im Projektordner verwendet.

Prüfungen

python -m uv run ruff format
python -m uv run ruff check
python -m uv run mypy
python -m uv run pytest

pre-commit führt alle vier vor jedem Commit aus. Der Workflow in .gitea/workflows/ci.yml macht dasselbe auf dem Gitea-Server, sobald dort ein Runner für das Repository registriert ist.

Betrieb mit Docker

cp .env.example .env
docker compose up -d --build

Startet web (Django + gunicorn), worker (Ereignis-Queue) und db (PostgreSQL 17).

Projektstruktur

src/
  config/   Django-Einstellungen und URLs
  engine/   reine Spielregeln: Formeln, Kampf, Bahnen (ohne Django, voll typisiert)
  game/     Django-App: Modelle, Services, Views, Templates, Worker
data/       Stammdaten (YAML) – maßgebliche Quelle für das Balancing
templates/  gemeinsame Templates
tests/      pytest

Lizenz

MIT, siehe LICENSE.

S
Description
No description provided
Readme 80 KiB
Languages
Python 87.9%
Dockerfile 7.1%
HTML 5%