Documentation

API & Docs

REST-API der Portfolio-App — öffentliche Endpunkte sind frei, alles andere erfordert Authentifizierung.

AuthentifizierungAPI-Key

Geschützte Endpunkte akzeptieren entweder das Dashboard-Login (Cookie) oder einen API-Key. Keys werden im Dashboard erstellt.

Header-Varianten
x-api-key: pk_xxxxxxxxxxxxAuthorization: Bearer pk_xxxxxxxxxxxx
curl
curl -X POST https://projects.orfabs.de/api/projects \
  -H "x-api-key: pk_..." \
  -H "content-type: application/json" \
  -d '{"title":"Neu","description":"…"}'
JavaScript (fetch)
await fetch("https://projects.orfabs.de/api/projects", {
  method: "POST",
  headers: {
    "x-api-key": "pk_...",
    "content-type": "application/json"
  },
  body: JSON.stringify({ title: "Neu" })
})
scope: read
Nur GET-Endpunkte (Lesen)
scope: admin
Lesen + Schreiben + Verwalten
Rate-Limit
120 Req/min pro Key → sonst HTTP 429
Öffentliche DatenPublic

Frei abrufbar — genau das, was auch auf der Website sichtbar ist.

GET
/api/projects

Alle Projekte

GET
/api/about

About-Seiten-Daten

GET
/api/changelog

Changelog-Einträge

GET
/api/settings

Öffentliche Einstellungen (Socials, Tags, Kategorien)

GET
/api/github-stats

GitHub-Statistiken

GET
/api/status?url=…

Live-Status einer URL prüfen

GET
/api/i18n/:lang

Übersetzungen (de/en)

POST
/api/contact

Kontaktanfrage senden

Daten verwaltenAuth

Erfordert Dashboard-Login oder API-Key.

POST
/api/projects

Projekt erstellen

🔒
PUT
/api/projects/:id

Projekt bearbeiten

🔒
DELETE
/api/projects/:id

Projekt löschen

🔒
PUT
/api/about

About-Seite speichern

🔒
POST
/api/changelog

Changelog-Eintrag erstellen

🔒
PUT
/api/settings

Einstellungen speichern

🔒
GET
/api/messages

Kontaktnachrichten lesen

🔒
API-KeysAuth

Verwaltung der Zugriffsschlüssel (nur Dashboard-Login).

GET
/api/apikeys

Keys auflisten

🔒
POST
/api/apikeys

Key erstellen (raw nur einmalig)

🔒
DELETE
/api/apikeys/:id

Key widerrufen

🔒
File-Server & BilderAuth

Datei-Upload und Bild-Generierung. Auslieferung öffentlich unter /uploads/.

GET
/uploads/:file

Hochgeladene Datei abrufen (öffentlich)

POST
/api/files/upload

Datei(en) hochladen

🔒
GET
/api/files/list

Dateien auflisten

🔒
POST
/api/imagegen

Neon-Bild generieren (SVG/KI)

🔒
Server & InfrastrukturAuth

Dashboard-only — Verwaltung des Servers.

GET
/api/system/info

CPU/RAM/Disk/PM2

🔒
GET/POST
/api/pm2/*

PM2: list/action/logs/deploy/reload

🔒
GET/POST
/api/docker/*

Docker: Container/Images/Compose/Build

🔒
GET/POST
/api/server/*

systemd/Logs/Cron/Dateien/Updates/Backups

🔒
POST
/api/prompt/generate

Claude-Code Prompt erzeugen

🔒
💡 Interne Tools (Docker, Server, PM2, Files, Prompt-Creator) sind ausschließlich über das Dashboard-Login erreichbar und nicht für externe Nutzung vorgesehen.