- PHP 98.7%
- CSS 0.8%
- JavaScript 0.4%
| assets | ||
| content | ||
| docs | ||
| kirby | ||
| media | ||
| site | ||
| .dockerignore | ||
| .gitignore | ||
| .htaccess | ||
| composer.json | ||
| docker-compose.yml | ||
| Dockerfile | ||
| index.php | ||
| README.md | ||
| run.sh | ||
Website Hausarztpraxis Anja Skeide
Moderne, barrierefreie Website der Hausarztpraxis Anja Skeide (Magdeburg-Sudenburg),
umgesetzt mit dem Kirby CMS (dateibasiert, kein Datenbankserver nötig).
Die Seiten erfüllen die Vorgaben des a11y-Design-Systems (WCAG 2.1 AA) und
bestehen den Prüfer validate.js (alle Seiten „grün“).
Sprache: Alle sichtbaren Inhalte sind auf Deutsch. Dateinamen, Feld- und Programm-Bezeichner sind bewusst auf Englisch gehalten.
Weitere Dokumentation: siehe
/docs/– Deployment-Anleitung (deployment.md), Angebots-E-Mail (email-angebot.md) und Preis-Einschätzung (preis-einschaetzung.md).
1. Für die Praxis: Die Website aufrufen
- Öffentliche Adresse (im Praxis-Netz): http://192.168.2.106:8090
- Direkt auf dem Server: http://localhost:8090
Seiten: Startseite, Praxis & Team, Leistungen, Kontakt, Impressum, Datenschutz.
2. Inhalte bearbeiten – das Kirby-Panel (für die Rezeption)
Sie brauchen keine Programmierkenntnisse. Alles wird bequem im Browser gepflegt.
2.1 Anmelden
- Öffnen Sie http://192.168.2.106:8090/panel
- Beim allerersten Mal legen Sie ein Konto an (Name, E-Mail, Passwort). Merken Sie sich die Zugangsdaten gut.
- Danach melden Sie sich künftig mit E-Mail + Passwort an.
Sicherheitshinweis für die IT: Nach dem Anlegen des ersten Kontos in
site/config/config.php'install' => falsesetzen (siehe Abschnitt 6).
2.2 Öffnungszeiten ändern
- Im Panel oben auf „Öffnungszeiten“ klicken.
- In der Tabelle Öffnungszeiten die Zeile eines Tages anpassen (Tag, Zeit, Hinweis) – oder mit „+ Zeile hinzufügen“ ergänzen.
- Feld „Akut-/offene Sprechstunde“ ändert den blau hervorgehobenen Hinweis.
- Oben rechts Speichern. Die Änderung erscheint sofort auf Startseite und Kontaktseite.
2.3 Kontaktdaten / Adresse ändern
- Reiter „Praxis & Kontakt“.
- Telefon, SMS, Fax, E-Mail, Straße, PLZ, Ort, Zugang/Barrierefreiheit anpassen.
- Speichern. Die Daten werden überall automatisch aktualisiert (Kopf, Fuß, Kontaktseite).
2.4 Einen Hinweis / eine Notiz veröffentlichen
Es gibt bewusst keinen News-/Blog-Bereich (wie auf der alten Seite). Kurzfristige Hinweise (z. B. Urlaub, Vertretung) tragen Sie am besten so ein:
- Startseite → „Willkommenstext“: Text ergänzen (z. B. „Vom 1.–14. August ist die Praxis im Urlaub.“), Speichern.
- Für einen auffälligen Kasten das Sternchen-Format nutzen:
**Fettdruck**.
2.5 Leistungen bearbeiten
- Reiter „Leistungen“ → Liste „Leistungen“: einzelne Einträge (Name + Beschreibung) ändern, hinzufügen oder löschen. Speichern.
2.6 Impressum / Datenschutz anpassen
- Reiter „Impressum“ bzw. „Datenschutz“ → Textfeld bearbeiten.
- Speichern.
Wichtig: Impressum und Datenschutz sind rechtlich sensibel. Lassen Sie die Texte vor Veröffentlichung anwaltlich bzw. durch die Ärztekammer prüfen. Die aktuell hinterlegten Texte sind Platzhalter mit den bekannten Praxis-Angaben.
3. Online-Terminbuchung ein-/ausschalten (Doctolib / samedi)
Die Website beherrscht beide Varianten:
- (a) AUS – Standard dieser Praxis: Es wird nur Telefon/E-Mail/SMS angezeigt (die alte Seite hatte bewusst keine Online-Buchung).
- (b) EIN: Zusätzlich erscheint ein Button „Termin online buchen“ (Doctolib oder samedi).
Umschalten (dauert 30 Sekunden):
- Panel → Reiter „Terminbuchung“.
- Schalter „Online-Terminbuchung aktivieren“ auf Ein.
- Buchungsanbieter wählen (Doctolib oder samedi).
- Buchungs-URL einfügen (z. B. Ihre Doctolib-Profil-Adresse).
- Speichern. Der Button erscheint sofort auf Start- und Kontaktseite.
Zum Abschalten den Schalter wieder auf Aus stellen.
4. Karte (OpenStreetMap) & Datenschutz
Die Karte lädt erst nach Klick auf „Karte laden“ (DSGVO-konforme Zwei-Klick-Lösung) – vorher werden keine Daten an OpenStreetMap gesendet. Die Koordinaten pflegen Sie im Panel unter „Karte (OpenStreetMap)“ (Breiten-/Längengrad, Zoom). Bitte die voreingestellten Koordinaten prüfen.
5. Technischer Betrieb (für die IT)
Voraussetzungen
- Docker (getestet mit Docker 26). Kein PHP/Composer auf dem Host nötig – alles läuft im Container (PHP 8.2 + Apache, Kirby-Core ist eingebaut).
Starten
Mit Docker-Compose-Plugin:
docker compose up -d --build
Ohne Compose-Plugin (dieser Host) – gleichwertig per docker:
./run.sh
Danach läuft die Seite auf Port 8090 (0.0.0.0, also auch im LAN erreichbar).
Prüfen
curl -sS -o /dev/null -w "%{http_code}\n" http://localhost:8090/ # -> 200
Datenhaltung
Redaktionelle Inhalte, Uploads und Panel-Konten liegen in benannten
Docker-Volumes (hausarzt_content, hausarzt_media, hausarzt_accounts,
hausarzt_sessions) und überstehen einen Neustart/Neubau. Beim ersten Start
werden sie aus den mitgelieferten Inhalten befüllt.
Stoppen / Neustart
docker rm -f hausarzt-kirby # stoppt & entfernt den Container (Daten bleiben im Volume)
./run.sh # neu bauen & starten
6. Sicherheit / Produktion (Checkliste)
- Kirby-Lizenz kaufen (~99 €) unter https://getkirby.com/buy und im Panel aktivieren. Ohne Lizenz läuft die Seite technisch, im Panel erscheint aber ein Lizenz-Hinweis. Für den öffentlichen Produktivbetrieb ist die Lizenz erforderlich.
- Nach Anlegen des ersten Panel-Kontos in
site/config/config.php'panel' => ['install' => false]setzen und neu bauen (./run.sh). - HTTPS/Domain über einen Reverse-Proxy (z. B. das vorhandene Setup) vorschalten.
- Impressum & Datenschutz rechtlich prüfen lassen.
- Karten-Koordinaten kontrollieren.
7. Projektstruktur (Kurzüberblick)
content/ Inhalte (deutsch, Panel-editierbar)
site/blueprints/ Panel-Formulare (englische Feld-Keys)
site/templates/ Seiten-Vorlagen (home, practice, services, contact, imprint, privacy)
site/snippets/ Bausteine (header, footer, hours, map, booking)
site/config/ Kirby-Konfiguration
assets/css/main.css Design (alle Farben aus a11y-Design-System-Tokens, Hell/Dunkel)
assets/js/main.js Karte-Zwei-Klick + Hell/Dunkel-Umschalter (optional, ohne JS nutzbar)
kirby/ Kirby-Core (eingebaut)
Dockerfile, docker-compose.yml, run.sh lokaler Betrieb
Barrierefreiheit prüfen (aus dem geklonten Design-System heraus):
node /opt/data/axess_work/a11y-design-system/validate.js <seite.html> # Exit 0 = OK