Files
farmcal/README.md

2.8 KiB

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:

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_TOKEN sollte 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: 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)

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)