Dokumentation

DOKUMENTATION



Hier findest du alles, was du über Schokominza wissen musst. Keine 73 Kapitel mit Architekturdiagrammen und kein Fachchinesisch, das mehr Fragen aufwirft als beantwortet.

Alles sind einfache Textdateien. Das Ding läuft auf jedem halbwegs aktuellen Webspace. Wenn du mit FTP umgehen kannst, schaffst du das. Wenn nicht, frag einen Freund.

Was du brauchst



PHP 8 (frag deinen Hoster, nicht mich)
Ein FTP-Programm (FileZilla tut's)
Einen Texteditor. Kein Word!
Keine Datenbank. Wirklich nicht. Auch keine kleine. Sorry.

Los geht's


1. Die ZIP entpacken

Lad dir das Ding runter, entpacke es. Du siehst etwa das:

schokominza/
├── index.php
├── hierbitteanmelden.php
├── config.php
├── sitemap.php
├── feed.php
├── .htaccess
├── content/
│ ├── home.md
│ ├── posts/
│ ├── pages/
│ ├── images/
│ ├── images.json
│ └── .htaccess
└── README.md


Die .htaccess-Dateien fangen mit einem Punkt an. Manchmal sind sie versteckt. Stell dein FTP-Programm so ein, dass sie angezeigt werden, sonst fliegt dir später alles um die Ohren.

2. Die Einstellungen


Öffne die config.php. Sieht ungefähr so aus

$siteName = 'schokominza';
$siteDescription = 'Bloggen aufs Nötigste reduziert';
$siteUrl = 'https://schokominza.org';
$prettyUrls = true;
$homeShowsFeed = false;
$showCategories = false;

Das musst du ändern
$siteName - Dein Blogname, z.B. "Mein Kram"
$siteUrl - Deine Domain. Ohne Slash am Ende. Wirklich ohne.
$siteDescription - Ein Satz, der deinen Blog zusammenfasst.

Den Rest lässt du erstmal so. Du kannst später noch
$prettyUrls = false setzen, falls die schönen URLs nicht funktionieren
$homeShowsFeed = true, wenn du deine Beiträge direkt auf der Startseite haben willst
$showCategories = true, falls du Bock auf Kategorien hast

3. Der geheime Schlüssel


Jetzt wird's nen bisschen ernster. Öffne admin.php und such nach
$secretKey = 'BITTE-VOR-DEM-UPLOAD-AENDERN-123';

Ersetz das mit einem eigenen Schlüssel. Mindestens 20 Zeichen. Bunt gemischt. Lass es am besten einen Passwort-Generator machen.

Das ist dein einziges Login. Kein Benutzername, keine "Passwort vergessen"-Funktion. Wenn du den vergisst, kannst du ihn per FTP zurücksetzen.

4. Hochladen


Verbinde dich per FTP mit deinem Webspace. Lade den Inhalt des schokominza-Ordners hoch. Nicht den Ordner selbst. Zielverzeichnis ist meist htdocs, public_html oder www. Frag deinen Hoster, wenn du unsicher bist.

Die .htaccess-Dateien müssen mit. Sonst gibt's später 404-Fehler. Wenn dein FTP-Programm sie nicht zeigt, siehe Schritt 1.

5. Testen


Ruf deine Domain auf. Wenn du die Startseite siehst, läuft's.

Jetzt testen wir die schönen URLs

1. Schreib einen Testbeitrag (siehe Schritt 6)
2. Klick drauf
3. Sieht die URL so aus /post/2026-07-08-mein-test - alles cool
4. Sieht sie aus wie /?post=2026-07-08-mein-test - setz in config.php $prettyUrls = false vorausgesetzt, du willst das. Geschmäcker sind verschieden.

Warum das manchmal nicht geht? Manche Hoster blockieren .htaccess-Regeln. Kannste nix machen.

6. Beiträge schreiben


Ruf https://deinedomain.de/admin.php auf. Gib deinen Schlüssel ein.
"Neuer Post" klicken. Dann

- Titel - wird automatisch zur URL. Umlaute und Sonderzeichen werden entfernt. Aus "Größte Katzen" wird Grote-Katzen. Ist halt so.
- Kategorie - optional. Wenn du sie später sehen willst, siehe Schritt 9.
- Inhalt - Markdown. Unten gibt's ne Kurzübersicht.
- Bild - siehe Schritt 7.

Speichern. Der Post ist live unter /updates. Neuster zuerst.

7. Bilder


Das Wichtigste zuerst Benenne die Bilddatei vor dem Upload um.

Schokominza nimmt den Dateinamen als Alt-Text für Screenreader und Suchmaschinen.
Aus IMG_4821.jpg wird "IMG 4821" - völlig nutzlos.
Aus bierflasche-am-strand.jpg wird "bierflasche am strand" - besser oder?!.

Kurz, beschreibend, kleine Buchstaben, Bindestriche statt Leerzeichen. Keine Umlaute, keine Sonderzeichen. Einfach halten.

Erlaubte Formate sind JPG, PNG, GIF, WebP. Ein Bild pro Beitrag. Wenn du ein neues hochlädst, ersetzt es das alte. Die Bilder werden automatisch auf 1200px Breite verkleinert (du musst also nichts vorher tun). Statische Seiten haben keine Bild-Upload-Funktion.

8. Statische Seiten


Für "About", "Impressum", "Kontakt".. Das Zeug halt, was sich selten oder nie ändert.

Admin "Neue Seite" klicken.
Titel - erscheint im Menü Slug - die URL. Leer lassen, dann wird er aus dem Titel gemacht. Inhalt - Markdown, siehe unten.

Die Seite erscheint automatisch im Menü unter dem Logo. Zusammen mit "Updates" und (falls aktiv) "Kategorien".

9. Kategorien


Kategorien werden immer gespeichert, wenn du sie im Admin vergibst. Ob sie auf der Website angezeigt werden, entscheidet diese eine Zeile in der config.php
$showCategories = true;

Setz du sie auf true kriegt jeder Post sein Kategorie-Label und im Menü taucht "Kategorien" auf. Du kannst die Updates-Liste filtern (?cat=Reisen) und auch der RSS-Feed bekommt seine Kategorie-Tags.

Oder lass es auf false. Dann werden Kategorien zwar gespeichert, aber nirgendwo angezeigt.

10. Die Startseite


Standardmäßig zeigt / den Inhalt von content/home.md. Die Beiträge sind unter /updates.
home.md ist wie ein Beitrag aufgebaut.

Du willst die Beiträge direkt auf der Startseite? config.php - $homeShowsFeed = true - hochladen. Fertig.

11. Logo


Dein Logo parkt in content/images/logo.png. Das ist ein PNG mit transparentem Hintergrund. Am besten ein breiter Schriftzug, kein Quadrat. Einfach per FTP überschreiben. Das wars.

12. Farben


In index.php ganz oben findest du
define('COLOR_BG', '#4527A0'); define('COLOR_TEXT', '#FFFFFF'); define('COLOR_ACCENT', '#FFB400');

Die Hex-Werte austauschen, hochladen, fertig. Betrifft wirklich alles. Menü, Hintergründe, Links, Überschriften...

13. Markdown - das Nötigste


So schreibst du Markdown in Schokominza

# Große Überschrift
## Mittlere Überschrift
### Kleine Überschrift

**Fett**
*Kursiv*
`Code`

[Link](https://example.com)
![Bild](https://example.com/bild.jpg)

* Punkt eins
* Punkt zwei

Was nicht geht, sind Nummerierte Listen, Zitate, Tabellen, verschachteltes Zeug. Der Parser ist simpel. Absichtlich.

Eigenes HTML und CSS in jeder .md-Datei geht. Einfach reinklatschen, wird nicht gefressen. Hoffe ich..;-)

14. RSS-Feed

/feed.php - liefert die letzten 20 Beiträge komplett. Kein Ausschnitt, kein "Weiterlesen". Den ganze Kram.

15. Sitemap

/sitemap.php - das ist deine XML-Sitemap für Google, falls du Bock drauf hast. Einfach bei deren Search Console anmelden und die URL eintragen. Die Endung .php stört nicht.

16. Sicherheit – die kurze Liste

$secretKey geändert? Gut.
$siteUrl korrekt? Gut.
.htaccess hochgeladen? Gut.

Wüsste nicht, was jetzt noch fehlt. Die Login-Sperre nach 5 Fehlversuchen ist automatisch drin.

17. Wenn was nicht klappt

404-Fehler bei Posts/Seiten - .htaccess fehlt oder wird nicht unterstützt. $prettyUrls = false in config.php setzen.

"Zu viele Login-Versuche" - 5 Fehlversuche = 15 Minuten Pause. Einfach abwarten oder den Schlüssel in admin.php checken.

Bild wird nicht angezeigt - Format nicht unterstützt? (HEIC von iPhones = nein). Datei wirklich im content/images/ Ordner?

Logo verschwunden - Datei heißt wirklich logo.png? Liegt in content/images/?

"Page not found" bei statischer Seite - Die Seite muss im Menü erscheinen. Wenn nicht, ist die .md-Datei vielleicht falsch benannt oder liegt nicht in content/pages/.

18. Backups


Einfach den content-Ordner runterladen. Keine Datenbank, kein Export-Format. Mach das regelmäßig, sonst heulst du später rum.

Fertig


Du hast jetzt einen minimalen Blog. Glückwunsch. Schick mir gern nen Link an hi ät piehnat Punkt de. Peace!