# 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 ``` Optional fuer Matrix-Chat (nur Anzeige): ```env MATRIX_HOMESERVER_URL=https://matrix.example.com MATRIX_ACCESS_TOKEN=YOUR_MATRIX_ACCESS_TOKEN MATRIX_ROOM_ID=!abcdefg12345:example.com MATRIX_LIMIT=25 ``` - `MATRIX_ACCESS_TOKEN` sollte ein User-Token mit Leserechten fuer den Raum sein. - Wenn Matrix-Variablen fehlen, bleibt das Feature deaktiviert. ## Start mit Docker Compose ```bash docker compose --env-file .env up -d --build ``` Danach ist FarmCal unter `http://:8080` erreichbar. ## Als Image bauen und verteilen Image lokal bauen: ```bash docker build -t farmcal:latest . ``` Tag fuer Registry: ```bash docker tag farmcal:latest //farmcal:latest ``` Push: ```bash docker push //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 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 - Matrix: Nachrichten aus FarmCal senden (write support)