- 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:
@@ -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).
|
||||
Reference in New Issue
Block a user