Files
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

68 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](https://claude.ai/code/artifact/745bf02e-46d7-4087-9f78-d941c55997f1).
## Voraussetzungen
- Python 3.12 oder neuer (entwickelt mit 3.14)
- [uv](https://docs.astral.sh/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
```bash
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
```bash
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
```bash
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](LICENSE).