Files
farmcal/README.md
2026-02-16 11:22:50 +01:00

98 lines
2.1 KiB
Markdown

# FarmCal
FarmCal ist eine schlanke Web-App zur Ingame-Planung fuer Farming Simulator:
- Felder verwalten (Feldnummer + optionaler Name)
- Aussaat- und Ernteplanung pro Feld
- Ingame-Zeitmodell mit konfigurierbaren `Tagen pro Monat`
- Tagesansicht mit konkreten Aufgaben (Aussaat/Ernte)
Die App ist fuer Desktop und Smartphone ausgelegt (responsive UI) und nutzt MariaDB.
## Tech-Stack
- Backend: Go (net/http + html/template)
- Datenbank: MariaDB (auch externe DB im Netzwerk)
- Deployment: Docker (ein Container fuer die App)
## Voraussetzungen
- MariaDB erreichbar im Netzwerk
- Datenbank und Benutzer vorhanden, z. B.:
- DB: `farmcal`
- User: `farmcal`
- Rechte auf `farmcal.*`
## Konfiguration
1. `.env.example` nach `.env` kopieren
2. `DB_DSN` auf deine Netzwerk-MariaDB anpassen
Beispiel:
```env
APP_PORT=8080
DB_DSN=farmcal:SEHR_SICHERES_PASSWORT@tcp(192.168.1.40:3306)/farmcal?parseTime=true
```
## Start mit Docker Compose
```bash
docker compose --env-file .env up -d --build
```
Danach ist FarmCal unter `http://<host>:8080` erreichbar.
## Als Image bauen und verteilen
Image lokal bauen:
```bash
docker build -t farmcal:latest .
```
Tag fuer Registry:
```bash
docker tag farmcal:latest <deine-registry>/<dein-user>/farmcal:latest
```
Push:
```bash
docker push <deine-registry>/<dein-user>/farmcal:latest
```
## Datenmodell
- `settings`: globale Spielparameter (`days_per_month`)
- `fields`: Feldliste
- `crops`: Feldfruechte + Aussaatfenster + Wachstumsdauer
- `plans`: geplanter Anbau je Feld mit berechnetem Erntetermin
Beim ersten Start werden Tabellen automatisch erstellt und Standardfruechte vorgeladen.
## Lokale Entwicklung (ohne Docker)
```bash
set DB_DSN=farmcal:PASS@tcp(127.0.0.1:3306)/farmcal?parseTime=true
go run ./cmd/server
```
## Neues Gitea-Repo anbinden
```bash
git init
git add .
git commit -m "Initial FarmCal MVP"
git branch -M main
git remote add origin <DEIN_GITEA_REPO_URL>
git push -u origin main
```
## Nächste sinnvolle Ausbaustufen
- Bearbeiten/Loeschen von Feldern und Plaenen
- Kalenderansicht fuer mehrere Monate
- Mehrspieler-/Benutzerverwaltung
- Import/Export fuer bestehende Tabellen