Inhaltsverzeichnis

Digitale Visitenkarte mit QR-Code, selbst gehostet

Eine Kontaktseite pro Person, die per QR-Code aufgerufen wird: am Messestand, beim Netzwerktreffen, vom Sperrbildschirm des Smartphones oder von der gedruckten Karte. Ein Tipp auf „Kontakt speichern“ übernimmt alle Daten samt Foto ins Adressbuch. Ohne App, ohne Abo bei einem Visitenkarten-Dienst, auf dem eigenen Webspace.

Beispiel: team.falk.plus/jens/

1. Was die Visitenkarte leistet

2. Aufbau

Die Seiten sind reines HTML: kein CMS, keine Datenbank, nichts, was gepflegt oder abgesichert werden muss. Erzeugt werden sie von einem kleinen Python-Skript aus einer Datendatei:

{
  "personen": [
    {
      "kuerzel": "max",
      "vorname": "Max",
      "nachname": "Muster",
      "rolle": "Inhaber · IT-Partner für …",
      "mobil": "+49 …",
      "email": "max@example.de",
      "linkedin": "https://www.linkedin.com/in/…"
    }
  ]
}

Das Skript erzeugt je Person:

Die Kürzel in der Adresse (/max/) werden nie geändert, denn sie stehen im QR-Code.

3. Der QR-Code

4. Die vCard: Details, die oft schiefgehen

BEGIN:VCARD
VERSION:3.0
N:Muster;Max;;;
FN:Max Muster
ORG:Beispiel GmbH
TITLE:Inhaber · IT-Partner für Onlinehandel + DMS + Buchhaltung
TEL;TYPE=WORK,VOICE:+49 …
EMAIL;TYPE=INTERNET,WORK:max@example.de
URL:https://example.de/
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQ…
END:VCARD

5. Suchmaschinen bewusst steuern

Für nginx (z. B. unter ISPConfig als „nginx Directives“; eine .htaccess wirkt dort nicht):

# Kontaktdateien mit richtigem Typ, aber nicht in Suchmaschinen
location ~* \.vcf$ {
    types { }
    default_type "text/vcard; charset=utf-8";
    add_header X-Robots-Tag "noindex, nofollow" always;
}

6. Pflege über Git

Datendatei, Skript, Fotos und Schrift liegen in einem Git-Repository (bei uns: eigene Gitea-Instanz). Der Ablauf bei einer Änderung:

  1. Datendatei bzw. Foto ändern, Skript ausführen.
  2. Eintragen (Commit) und versenden (Push).
  3. Auf dem Webserver: git pull und den erzeugten Ordner ins Webverzeichnis spiegeln (rsync --delete).

Wichtig: Der erzeugte Ordner wird nie von Hand geändert, weder lokal noch auf dem Server. Der nächste Lauf überschreibt sonst alles. Und: Die Subdomain bekommt ein eigenes Webverzeichnis, nicht unterhalb der Hauptwebsite. Website-Generatoren wie Publii löschen beim Synchronisieren fremde Dateien.

7. Auf dem Smartphone