3d6535098f8575b5c2435b80db6169b1aff481e2
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.*
- DB:
Konfiguration
.env.examplenach.envkopierenDB_DSNauf deine Netzwerk-MariaDB anpassen
Beispiel:
APP_PORT=8080
DB_DSN=farmcal:SEHR_SICHERES_PASSWORT@tcp(192.168.1.40:3306)/farmcal?parseTime=true
Optional fuer Matrix-Chat (nur Anzeige):
MATRIX_HOMESERVER_URL=https://matrix.example.com
MATRIX_ACCESS_TOKEN=YOUR_MATRIX_ACCESS_TOKEN
MATRIX_ROOM_ID=!abcdefg12345:example.com
MATRIX_LIMIT=25
MATRIX_ENABLE_CRYPTO=1
MATRIX_PICKLE_KEY=LONG_RANDOM_SECRET
MATRIX_CRYPTO_STORE_PATH=/tmp/farmcal-matrix-crypto.db
MATRIX_TIMEZONE=Europe/Berlin
MATRIX_ACCESS_TOKENsollte ein User-Token mit Leserechten fuer den Raum sein.- Wenn Matrix-Variablen fehlen, bleibt das Feature deaktiviert.
- Fuer E2EE-Entschluesselung muss der Matrix-User im Raum sein und Schluessel fuer diesen Client verfuegbar haben.
Start mit Docker Compose
docker compose --env-file .env up -d --build
Danach ist FarmCal unter http://<host>:8080 erreichbar.
Als Image bauen und verteilen
Image lokal bauen:
docker build -t farmcal:latest .
Tag fuer Registry:
docker tag farmcal:latest <deine-registry>/<dein-user>/farmcal:latest
Push:
docker push <deine-registry>/<dein-user>/farmcal:latest
Datenmodell
settings: globale Spielparameter (days_per_month)fields: Feldlistecrops: Feldfruechte + Aussaatfenster + Wachstumsdauerplans: geplanter Anbau je Feld mit berechnetem Erntetermin
Beim ersten Start werden Tabellen automatisch erstellt und Standardfruechte vorgeladen.
Lokale Entwicklung (ohne Docker)
set DB_DSN=farmcal:PASS@tcp(127.0.0.1:3306)/farmcal?parseTime=true
go run ./cmd/server
Neues Gitea-Repo anbinden
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
- Matrix: Nachrichten aus FarmCal senden (write support)
Description
Languages
Go
66%
HTML
27.7%
CSS
5.8%
Dockerfile
0.5%