Ein Node.js- oder PHP-basierter Webserver zur Verwaltung und Bereitstellung von Gemeindebriefen (Pfarrbriefen) als PDF-Archiv.
  • PHP 91.8%
  • CSS 6.2%
  • JavaScript 2%
Find a file
2026-03-02 23:18:39 +01:00
php Optionaler Download-Counter ergänzt. 2026-03-02 23:18:39 +01:00
.env_sample Optionaler Download-Counter ergänzt. 2026-03-02 23:18:39 +01:00
.gitignore Konfigurationsmöglichkeit des Endpoints /pfarrbrief und /vermeldungen ergänzt 2026-02-28 13:06:17 +01:00
LICENSE Konfigurationsmöglichkeit des Endpoints /pfarrbrief und /vermeldungen ergänzt 2026-02-28 13:06:17 +01:00
README.md Optionaler Download-Counter ergänzt. 2026-03-02 23:18:39 +01:00

Pfarrbriefarchiv (PHP)

Ein PHP-basierter Webserver zur Verwaltung und Bereitstellung von Pfarrbriefen als PDF-Archiv.

Features

  • PDF-Upload und -Verwaltung im Admin-Bereich
  • Monatszuordnung: eine PDF kann mehreren Monaten zugeordnet werden
  • Archivansicht nach Jahren
  • News-/Vermeldungsbereich mit Upload pro Sonntag
  • Login mit Session, CSRF-Schutz und Login-Rate-Limit
  • Optionaler Download-Counter (SQLite) mit Statistik-Chart im Admin-Bereich

Voraussetzungen

  • PHP >= 8.0
  • PHP-Erweiterungen: intl, fileinfo, json
  • Optional für Download-Counter: pdo_sqlite
  • Webserver mit Document Root auf php/ (Apache oder nginx+php-fpm)

Installation

  1. Repository klonen
git clone <repository-url>
cd Pfarrbriefarchiv
  1. Umgebungsvariablen anlegen
cp .env_sample .env
  1. .env konfigurieren
# Optional fuer lokalen Start mit PHP Built-in Server
PORT=3000

# Wird aktuell von der PHP-Version nicht verwendet,
# kann aber gesetzt bleiben
SESSION_SECRET=bitte-durch-langes-zufaelliges-geheimnis-ersetzen

# Admin-Login
ADMIN_USER=admin
ADMIN_PASS_HASH=$2y$10$...dein-password-hash

# Branding
COMMUNITY_NAME=Kirchengemeinde Musterhausen
BRIEF_NAME=Pfarrbrief
NEWS_NAME=Vermeldungen

# Optional: wird sonst aus NEWS_NAME erzeugt
NEWS_SLUG=vermeldungen

# Optional: wird sonst aus BRIEF_NAME erzeugt
SLUG=pfarrbrief

# Optional: erlaubte iFrame-Ursprungsdomain fuer CSP
IFRAME_URL=https://www.kirchengemeinde-musterhausen.de

# Optional: Download-Counter aktivieren
DOWNLOAD_COUNTER_ENABLED=1

# Optional: SQLite-Datei (relativ zu php/ oder absoluter Pfad)
DOWNLOAD_COUNTER_DB_PATH=download_counter.sqlite
  1. Passwort-Hash erzeugen
php -r "echo password_hash('IhrPasswort', PASSWORD_DEFAULT), PHP_EOL;"

Den erzeugten Wert in .env als ADMIN_PASS_HASH eintragen.

Lokaler Start (Entwicklung)

cd php
php -S 127.0.0.1:3000 index.php

Danach ist die Anwendung unter http://127.0.0.1:3000 erreichbar.

Wichtige Routen

  • /admin/login - Admin-Login
  • /admin - Admin-Startseite
  • /admin/pfarrbrief - Pfarrbriefverwaltung
  • /admin/vermeldungen - News-/Vermeldungsverwaltung
  • /admin/statistik - Gemeinsame Download-Statistik
  • / - Archivansicht
  • /<SLUG> - aktuelle Pfarrbriefausgabe
  • /<SLUG>/<jahr>/<monat> - bestimmte Ausgabe
  • /<NEWS_SLUG> - aktuelle News-/Vermeldungs-PDF
  • /<NEWS_SLUG>/uebersicht - Uebersicht News-/Vermeldungen

Dateistruktur

Pfarrbriefarchiv/
|- .env_sample
|- .env
|- php/
|  |- index.php
|  |- login.php
|  |- admin_select.php
|  |- config_admin.php
|  |- pfarrbrief_admin.php
|  |- pfarrbrief_archiv.php
|  |- vermeldungen_admin.php
|  |- vermeldungen_uebersicht.php
|  |- public/
|  |- pfarrb/       # wird automatisch erstellt
|  \- vermeld/      # wird automatisch erstellt
\- README.md

Dateinamen der Pfarrbrief-PDFs

Schema:

Jahr_Monat_[Jahr_Monat_...]_<slug>.pdf

Beispiele:

  • 2025_12_pfarrbrief.pdf
  • 2025_12_2026_01_pfarrbrief.pdf
  • 2025_11_12_pfarrbrief.pdf

Sicherheitshinweise

  • .env niemals committen
  • In Produktion HTTPS verwenden
  • Der Login ist serverseitig rate-limitiert (5 Versuche pro Minute)

Lizenz

Freie Nutzung fuer kirchliche und gemeinnuetzige Zwecke.