M0: Projektgerüst für Hercules Pyloaded
CI / checks (push) Successful in 1m43s

- 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>
This commit is contained in:
Hofei90
2026-09-25 11:50:40 +02:00
commit ec4b6c0b2f
36 changed files with 1410 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
# 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).