✨Willkommen bei ZooDesk
ZooDesk ist eine Webanwendung zur Verwaltung eines Tierbestands – vom einzelnen Tier über Gehege und Zucht bis zur Jahresinventur. Diese Anleitung führt dich durch die Installation, die ersten Schritte und beantwortet häufige Fragen.
Tierarten & Tiere
Bestand je Tierart mit Geschlecht, Geburtsdatum, Markierung/Chip, Foto und Status (lebt, verstorben, abgegeben, verfüttert).
Gesundheit
Gewichtsverlauf mit Diagramm, Behandlungen nach Kategorien, Notizen und Dokumente (z. B. Befunde als PDF).
Stammbaum & Zucht
Stammbaum, Nachwuchs erfassen, Paarungsvorschläge und automatische Inzuchtprüfung.
Gehege
Gehege mit Fläche, Foto, Beschreibung und technischen Notizen; Tierarten zuordnen.
Ereignis-Timer
Zucht-, Gesundheits- und Haltungsereignisse mit Fälligkeit; fällige Ereignisse werden auf der Startseite markiert.
Inventur
Jahresinventur je Tierart, Gesamtinventur, chronologische Inventur mit CSV-Export und Druckansichten.
Benutzer & Rechte
Vier Standardgruppen, eigene Gruppen und fein einstellbare Rechte; Aktivitätsprotokoll.
Deutsch & Englisch
Sprache bei der Installation wählen und jederzeit in den Einstellungen umstellen.
Backups
Datenbank-Backups per Klick erstellen, einspielen und löschen.
🧰Voraussetzungen
- Webserver mit PHP 7.4 oder höher (z. B. Apache), empfohlen wird PHP 8.x.
- MySQL-Datenbank (oder kompatibel, z. B. MariaDB) und ein Datenbankbenutzer mit Rechten zum Anlegen von Tabellen.
- Schreibrechte für die Verzeichnisse
uploads/,documents/,enclosure_photos/undbackups/. - Empfohlen: HTTPS (SSL-Zertifikat) – wird u. a. für die Links in „Passwort vergessen“-E-Mails verwendet.
- Für „Passwort vergessen“: ein SMTP-Postfach oder eine funktionierende PHP-
mail()-Funktion. - Ein aktueller Browser (z. B. Chrome, Firefox, Edge, Safari).
🚀Installation
Dateien hochladen
Lade alle Dateien und Ordner des ZooDesk-Systems in ein Verzeichnis auf deinem Webserver hoch (z. B.
/var/www/zoooderpublic_html/zoo). Achte darauf, dass auch die versteckten.htaccess-Dateien in den Unterordnern mit hochgeladen werden.config.php anpassen
Öffne die Datei
config.phpund trage deine Datenbank-Zugangsdaten ein:$db_host = 'localhost'; // Dein Datenbank-Host $db_user = 'dein_benutzer'; // Dein Datenbank-Benutzername $db_pass = 'dein_passwort'; // Dein Datenbank-Passwort $db_name = 'datenbank_name'; // Name der DatenbankOptional (für „Passwort vergessen“) im selben File die SMTP-Daten:
define('SMTP_HOST', 'smtp.dein-provider.de'); define('SMTP_PORT', 587); define('SMTP_USER', 'noreply@deine-domain.de'); define('SMTP_PASS', 'dein-smtp-passwort'); define('SMTP_ENCRYPTION', 'tls'); // 'tls', 'ssl' oder '' define('MAIL_FROM', 'noreply@deine-domain.de'); define('MAIL_FROM_NAME', 'ZooDesk');💡Bleibt
SMTP_HOSTauf dem Platzhaltersmtp.dein-provider.de, versendet ZooDesk E-Mails über die PHP-Funktionmail()des Servers.Stelle sicher, dass der Webserver in
uploads/,documents/,enclosure_photos/undbackups/schreiben darf (z. B.chmod 775 uploads).Installer aufrufen und Sprache wählen
Öffne
install.phpim Browser (z. B.https://deinserver.de/zoo/install.php). Wähle ganz oben die Sprache (Deutsch oder English) – der Installer wechselt sofort in die gewählte Sprache und ZooDesk wird in dieser Sprache eingerichtet, inklusive Beispieldaten wie Ereignistypen und Behandlungskategorien.
Der Installer mit Sprachauswahl Seitennamen und Konten festlegen
- Seitenname, z. B. „Tierpark Sonnental“ (max. 100 Zeichen).
- Admin-Konto und Leser-Konto: jeweils Benutzername (max. 50 Zeichen), E-Mail-Adresse und Passwort. Die beiden Benutzernamen müssen sich unterscheiden.
- Passwörter: mindestens 8 Zeichen, mindestens ein Großbuchstabe und ein Sonderzeichen.
Klicke auf „Installation starten“. Der Installer legt alle Tabellen an (Einstellungen, Benutzer, Gruppen/Rechte, Tierarten, Tiere, Notizen, Gewichte, Behandlungen, Dokumente, Gehege, Ereignisse …), erstellt deine beiden Konten und fügt Testdaten hinzu (Tierarten Zebra und Elefant mit je drei Tieren).
install.php löschen
🔒Lösche die Datei
install.phpnach der Installation, damit niemand den Installer erneut aufrufen kann.Es gibt keine Standard-Zugangsdaten – du hast sie im Installer selbst vergeben. Bewahre sie sicher auf, besonders die des Kontos
admin: dieser Benutzer kann nicht gelöscht werden.
👣Erste Schritte
Nach der Installation hilft dir dieser Rundgang, ZooDesk in wenigen Minuten produktiv zu nutzen. Die Screenshots stammen aus einer Demo-Installation mit Beispieldaten.
Anmelden
Öffne
login.php(z. B.https://deinserver.de/zoo/login.php) und melde dich mit deinem Admin-Konto an. Nach 5 Fehlversuchen wird die Anmeldung für 15 Minuten gesperrt; inaktive Sitzungen enden nach 2 Stunden.
Die Anmeldeseite Einstellungen & Sprache
Unter Einstellungen → Allgemeine Einstellungen änderst du den Seitennamen, die Sprache (gilt für alle Benutzer), die Tierarten-Ansicht (alphabetisch oder nach Gehege) und verwaltest Backups.

Allgemeine Einstellungen mit Sprachauswahl Tierart anlegen
Auf der Startseite klickst du unter Aktionen auf Neue Tierart. Über die Symbole neben einer Tierart kannst du sie bearbeiten, die Inventur öffnen oder sie löschen. Rechts oben findest du die Suche nach Tierart oder Tiername.

Startseite mit Tierarten, Aktionen und letzten Aktivitäten Tiere hinzufügen
Öffne eine Tierart und wähle Tier hinzufügen. Die Liste lässt sich nach Name, Geburtsdatum oder Geschlecht sortieren. Mehrere Tiere kannst du per Massenaktion gleichzeitig als verstorben, abgegeben oder verfüttert markieren oder löschen. Verstorbene, abgegebene und verfütterte Tiere bleiben unten in eigenen Listen erhalten.

Tierart mit lebenden Tieren, gruppiert nach Gehege Tierprofil
Ein Klick auf ein Tier öffnet das Profil mit Foto, Markierung/Chip, Geburtsdatum, Geschlecht, Status, letztem Gewicht, Nachwuchs und Notizen. Über Bearbeiten änderst du die Stammdaten und den Status.

Tierprofil mit Notizen Gewichte, Behandlungen & Dokumente
Im Profil unter Aktionen: Gewichte zeigt einen Verlauf als Diagramm, Behandlungen werden in Kategorien (z. B. Entwurmungen, Impfungen) geführt, die für die ganze Tierart gelten, und unter Dokumente lädst du Dateien hoch (PDF, Bilder, Word, Excel, TXT, CSV; max. 50 MB).
Gehege verwalten
Über Gehege auf der Startseite legst du Gehege mit Fläche, Beschreibung, Foto und technischen Notizen an und ordnest ihnen Tiere bzw. Tierarten zu. Stellst du in den Einstellungen die Ansicht auf „Nach Gehege“, wird die Startseite danach gruppiert.

Gehegeübersicht Stammbaum & Inzuchtprüfung
Im Tierprofil öffnet Stammbaum die Abstammung des Tieres. Dort kannst du Nachwuchs hinzufügen, Paarungsvorschläge ansehen und den Stammbaum speichern. Bei der Auswahl von Vater und Mutter prüft ZooDesk automatisch auf Inzucht und blockiert das Speichern, bis du es ausdrücklich erlaubst.

Stammbaum mit Eltern und Nachwuchs Ereignisse planen
Der Ereignis Kalender verwaltet Termine wie Verpaarung, Trächtigkeit, Quarantäne oder Winterschlaf – für einzelne Tiere oder eine ganze Tierart – mit Erinnerungsfrist. Fällige Ereignisse werden rot markiert und als Zähler auf der Startseite angezeigt. Ereignistypen kannst du selbst anlegen.

Ereignis-Timer mit Filtern und Übersicht Inventur, Druck & CSV
Inventur zeigt pro Tierart und Jahr Anfangsbestand, Zugänge, Geburten, Abgänge und den aktuellen Bestand nach Geschlecht. Die Gesamt Inventur fasst alle Tierarten zusammen, die chronologische Inventur listet jede Bewegung und bietet einen CSV-Download. Die meisten Seiten haben eine eigene Druckansicht.

Jahresinventur einer Tierart Benutzer & Gruppen
Unter Einstellungen → Benutzerverwaltung legst du Kolleginnen und Kollegen an und ordnest sie einer Gruppe zu. Unter Benutzergruppen & Rechte passt du die Rechte der Gruppen an oder legst eigene Gruppen an (siehe Benutzergruppen & Rechte).
Backup erstellen
Klicke unter Einstellungen → Backup-Verwaltung auf Neues Backup. Mach das regelmäßig und vor jedem Update (siehe Backups).
👥Benutzergruppen & Rechte
ZooDesk enthält vier Standardgruppen. Bei der Installation werden ein Admin- und ein Leser-Konto angelegt; weitere Benutzer ordnest du unter Einstellungen einer Gruppe zu. Die Standardrechte im Überblick:
| Recht | Admins | Teamleitung | Pfleger | Leser |
|---|---|---|---|---|
| Tiere hinzufügen / bearbeiten | ✓ | ✓ | ✓ | – |
| Tiere löschen | ✓ | ✓ | – | – |
| Notizen, Dokumente, Gewichte, Behandlungen | ✓ | ✓ | ✓ | – |
| Zucht / Nachwuchs | ✓ | ✓ | ✓ | – |
| Tierarten, Gehege, Ereignisse verwalten | ✓ | ✓ | – | – |
| Benutzer, Gruppen & Rechte | ✓ | – | – | – |
| Seiteneinstellungen, Backups, Aktivitätslogs | ✓ | – | – | – |
| Alles ansehen | ✓ | ✓ | ✓ | ✓ |
Die Rechte jeder Gruppe lassen sich unter Einstellungen → Benutzergruppen & Rechte einzeln anpassen, und du kannst eigene Gruppen anlegen. Die Gruppe Admins hat immer alle Rechte; der letzte Administrator kann nicht gelöscht werden.
🌐Sprache ändern
Die Sprache der Oberfläche (Deutsch oder English) kann jederzeit unter Einstellungen → Allgemeine Einstellungen → Sprache geändert werden. Die Einstellung gilt für alle Benutzer und wird in der Datenbank gespeichert – auch E-Mails, Druckansichten und CSV-Exporte erscheinen in der gewählten Sprache.
Die Texte liegen im Ordner lang/: lang/en.php enthält die englischen Übersetzungen. Bereits erfasste Daten (z. B. Tierarten- oder Ereignistypnamen) werden beim Umstellen nicht übersetzt.
💾Backups
Unter Einstellungen → Backup-Verwaltung erstellst du mit Neues Backup eine vollständige Sicherung der Datenbank als SQL-Datei im Ordner backups/. Über die Auswahlliste kannst du ein Backup einspielen oder löschen.
Das Backup enthält nur die Datenbank. Tierfotos (uploads/), Dokumente (documents/) und Gehegefotos (enclosure_photos/) sicherst du zusätzlich per FTP oder über dein Hosting. Beim Einspielen wird der aktuelle Datenbankstand überschrieben.
🔒Sicherheit
install.phplöschen, sobald die Installation abgeschlossen ist.- HTTPS verwenden. ZooDesk erkennt HTTPS (auch hinter Reverse-Proxys), setzt dann sichere Cookies und HSTS.
.htaccess-Dateien behalten:backups/ist komplett gesperrt, inuploads/,documents/undenclosure_photos/wird das Ausführen von PHP-Dateien verhindert. Unter nginx musst du gleichwertige Regeln selbst anlegen.- Starke Passwörter vergeben und Rechte nach dem Prinzip „so wenig wie nötig“ verteilen.
- Regelmäßig Backups erstellen und außerhalb des Servers aufbewahren.
Eingebaut: CSRF-Schutz für alle Formulare, Sperre nach Fehlanmeldungen, Prüfung von Datei-Uploads nach Typ und Größe sowie Sicherheits-Header (z. B. X-Frame-Options).
❓Häufige Fragen (FAQ)
Wie setze ich ein vergessenes Passwort zurück?
Auf der Anmeldeseite auf „Passwort vergessen?“ klicken und Benutzername oder E-Mail eingeben. ZooDesk schickt einen Link, der 1 Stunde gültig ist. Voraussetzung ist ein funktionierender E-Mail-Versand (SMTP in config.php oder PHP mail()). Der Link wird immer mit https:// erzeugt – ZooDesk sollte also per HTTPS erreichbar sein. Alternativ kann ein Admin das Passwort unter Einstellungen → Benutzerverwaltung neu setzen.
Es kommt keine E-Mail an – was tun?
Prüfe die SMTP-Daten in config.php (Host, Port, Benutzer, Passwort, Verschlüsselung tls/ssl) und ob MAIL_FROM zu deinem Postfach passt. Schau auch im Spam-Ordner und im PHP-Fehlerlog nach („SMTP-Verbindung fehlgeschlagen“). Aus Sicherheitsgründen zeigt die Seite immer dieselbe Meldung, auch wenn der Benutzer nicht existiert. Nach 3 Anfragen wird die Funktion für 15 Minuten gesperrt.
Kann jeder Benutzer seine eigene Sprache wählen?
Nein. Die Sprache ist eine globale Einstellung unter Einstellungen → Allgemeine Einstellungen und gilt für alle Benutzer. Ändern dürfen sie Benutzer mit dem Recht „Seiteneinstellungen ändern“.
Ein Benutzer sieht bestimmte Buttons nicht.
Buttons erscheinen nur, wenn die Gruppe des Benutzers das passende Recht hat. Leser sehen alle Daten, können aber nichts ändern. Passe die Rechte unter Einstellungen → Benutzergruppen & Rechte an oder ordne den Benutzer einer anderen Gruppe zu.
Ich kann keine Fotos oder Dokumente hochladen.
Meist fehlen Schreibrechte: Der Webserver muss in uploads/, documents/ und enclosure_photos/ schreiben dürfen (z. B. chmod 775, Eigentümer = Webserver-Benutzer). Limits: Tierfotos max. 10 MB (JPG, PNG, WebP, GIF), Gehegefotos max. 5 MB, Dokumente max. 50 MB. Prüfe außerdem upload_max_filesize und post_max_size deines PHP.
Wie spiele ich ein Backup wieder ein?
Unter Einstellungen → Backup-Verwaltung das Backup in der Liste auswählen und auf Einspielen klicken. Achtung: der aktuelle Datenbankstand wird dabei ersetzt. Erstelle im Zweifel vorher ein neues Backup.
Wie ziehe ich auf einen neuen Server um?
1. Neues Backup erstellen. 2. Alle Dateien inkl. backups/, uploads/, documents/ und enclosure_photos/ auf den neuen Server kopieren. 3. Dort eine leere Datenbank anlegen und das SQL-Backup z. B. mit phpMyAdmin importieren. 4. Die Zugangsdaten in config.php anpassen. install.php wird dafür nicht benötigt.
Welche PHP-Version sollte ich verwenden?
Mindestens PHP 7.4, empfohlen ist eine aktuelle PHP-8-Version. Unter PHP 8.4 und neuer kann beim CSV-Export ein „Deprecated“-Hinweis zu fputcsv() erscheinen, wenn display_errors aktiv ist – das ist nur ein Hinweis. Schalte display_errors auf Produktivsystemen ab.
Ich bin ausgesperrt („zu viele Versuche“).
Nach 5 fehlgeschlagenen Anmeldungen wird die Kombination aus IP-Adresse und Benutzername für 15 Minuten gesperrt. Warte die Zeit ab und versuche es erneut oder setze das Passwort zurück.
Kann ich die Testdaten löschen?
Ja. Die Tierarten Zebra und Elefant sind nur Beispiele und können auf der Startseite über das Papierkorb-Symbol gelöscht werden.
Was bedeuten die Status „abgegeben“ und „verfüttert“?
Neben „lebt“ und „verstorben“ kann ein Tier als abgegeben (z. B. an einen anderen Zoo) oder verfüttert (Futtertiere) markiert werden. Diese Tiere zählen nicht mehr zum Bestand, erscheinen aber weiterhin in eigenen Listen und in der Inventur.
🛠️Problembehandlung
| Problem | Lösung |
|---|---|
| „Datenbankverbindung fehlgeschlagen“ | Datenbankdaten in config.php prüfen (Host, Benutzer, Passwort, Datenbankname). Bei manchen Hostern ist der Host nicht localhost. |
| Weiße Seite / Fehler 500 | PHP-Fehlerlog des Servers prüfen; PHP-Version und Erweiterungen (mysqli, mbstring, fileinfo) kontrollieren. |
| Upload schlägt fehl | Schreibrechte für uploads/, documents/, enclosure_photos/ und backups/ prüfen, ebenso Dateigröße und -typ. |
| Backup lässt sich nicht erstellen | Schreibrechte für backups/ prüfen. |
| Ständig abgemeldet | Sitzungen enden nach 2 Stunden Inaktivität. Bei HTTPS hinter einem Proxy muss der Header X-Forwarded-Proto korrekt gesetzt sein; Cookies im Browser zulassen. |
| Fehlende Testdaten | install.php erneut ausführen (vorher Datenbank leeren). |
| Oberfläche in falscher Sprache | Sprache unter Einstellungen → Allgemeine Einstellungen umstellen; sicherstellen, dass der Ordner lang/ vollständig hochgeladen wurde. |
🗂️Ordnerstruktur
Die Ordner readme_assets/ sowie readme.html und readme_en.html werden für den Betrieb nicht benötigt und müssen nicht auf den Server hochgeladen werden.

