PrivatCMS

🥧 PrivatCMS

The leap from blog to CMS is accomplished. > Der Sprung vom Blog zum CMS ist vollbracht.

PrivatCMS is a modern, lightweight, and Docker-based Content Management System (CMS) designed specifically for bloggers and developers. It offers an elegant user interface, powerful management features, and is ready to run in minutes thanks to Docker.


✨ Features

PrivatCMS comes packed with features for content creators and administrators:

📄 CMS & Pages (New)

  • Static Pages: Create timeless content like "About Us", "Imprint", or "Portfolio" separate from the blog feed.
  • Dynamic Navigation: Control which pages appear in the Header or Footer menu directly from the editor.
  • SEO URLs: Automatic, clean URL slugs for posts and pages (e.g., /p/about-us).

📝 Content Management

  • Pro Editor: Split-view editor with Live Preview, Markdown & HTML support.
  • Media Manager: Upload images, insert them via click, and manage files directly in the editor.
  • Extras: Integrated Icon Picker (FontAwesome) and Emoji support for expressive content.
  • Post Status: Manage posts as Draft, Published, or Archived.
  • Sticky Posts: Pin important posts to the top of the homepage (📌 Feature).
  • Categories: Organize your content into flexible categories.
  • Tags: Organize articles with specific keywords (Tags) for better discoverability.
  • Syntax Highlighting: Automatic highlighting of code blocks for technical blogs.

🖼️ Media & Files

  • File Manager: Integrated file manager for uploading and managing images and files.
  • Hero Images: Set impressive cover images for your articles.
  • File Attachments: Offer files directly within the article for download.

💬 Interaction & Community

  • Comment System: Visitors can comment on articles.
  • Contact Form: Integrated contact form with a secure Inbox in the admin panel (no mail server needed).
  • Spam Protection: Built-in mathematical spam protection (Captcha).
  • Moderation: Admin tools to approve, mark as spam, or delete comments.

⚙️ Administration & System

  • Comprehensive Dashboard: Statistics on posts, comments, and system status at a glance.
  • Multi-User System: Role-based permissions (Admin, Editor, Viewer) to manage team access secure.
  • Settings: Configure blog title, description, SMTP mail server, and more directly in the admin panel.
  • Backup System: Create and download backups of your data (JSON, CSV, or Full ZIP).
  • Activity Log: Tracks user actions for security and transparency.
  • Maintenance Mode: Temporarily take the site offline for updates.

🎨 Design & UX

  • Search Function: Integrated search bar to find content instantly.
  • Pagination: Smart pagination for easy browsing of article archives.
  • Dark Mode: Visitors can toggle between light and dark mode 🌓.
  • Responsive Design: Optimized for desktop, tablet, and mobile.
  • Sidebar: Dynamic sidebar with categories, tags cloud, and latest comments.
  • Back-to-Top: Convenient navigation for long articles.

🌍 Internationalization (i18n)

  • Multi-language: Full support for German 🇩🇪, English 🇬🇧, French 🇫🇷, and Spanish 🇪🇸 in both the frontend and backend.

🚀 Installation

PrivatCMS is optimized for Docker, making installation extremely simple.

Prerequisites

  • Docker & Docker Compose installed.
  • Git (optional, to clone the repo).

Step-by-Step Guide

  1. Clone Repository

    git clone https://github.com/el-choco/piperblog.git
    cd piperblog
  2. Run Installer Use the included installation script to set up the environment and start the containers:

    chmod +x docker-install.sh
    ./docker-install.sh

    The script automatically creates the .env file, builds the Docker containers, and starts them.

  3. Access Blog Once the containers are running, your blog is accessible at:

    • Frontend: http://localhost:3333 (oder port according to configuration)
    • Admin Login: http://localhost:3333/admin
  4. First Login Upon accessing the admin area for the first time, you will be prompted to set an initial password for the administrator if one does not exist yet.


🛠️ Tech Stack

  • Backend: PHP 8.2+
  • Database: MySQL 8.0
  • Web Server: Apache
  • Frontend: HTML5, CSS3, Vanilla JS
  • Containerization: Docker

📂 Structure

  • admin/ - Administration interface (Backend).
  • public/ - Visible frontend for visitors (themes, assets).
  • src/ - PHP classes and core logic.
  • config/ - Configuration files and language files (.ini).
  • docker/ - Docker-specific configurations.

📄 License

This project is released under the MIT License. See LICENSE for details.


🥧 PrivatCMS

PrivatCMS ist ein modernes, leichtgewichtiges und Docker-basiertes Content-Management-System (CMS), das speziell für Blogger und Entwickler entwickelt wurde. Es bietet eine elegante Benutzeroberfläche, leistungsstarke Verwaltungsfunktionen und ist dank Docker in wenigen Minuten einsatzbereit.


✨ Features

PrivatCMS kommt vollgepackt mit Funktionen für Content-Ersteller und Administratoren:

📄 CMS & Seiten (Neu)

  • Statische Seiten: Erstelle zeitlose Inhalte wie "Über Uns", "Impressum" oder "Portfolio", getrennt vom Blog-Feed.
  • Dynamische Navigation: Steuere direkt im Editor, ob Seiten im Header oder Footer Menü erscheinen sollen.
  • SEO-URLs: Automatische, saubere URL-Slugs für Artikel und Seiten (z.B. /p/ueber-uns).

📝 Content Management

  • Pro Editor: Split-View Editor mit Live-Vorschau, Markdown & HTML Unterstützung.
  • Medien-Manager: Bilder hochladen, per Klick einfügen und Dateien direkt im Editor verwalten.
  • Extras: Integrierter Icon Picker (FontAwesome) und Emoji-Support für ausdrucksstarke Inhalte.
  • Beitragsstatus: Verwalte Beiträge als Entwurf, Veröffentlicht oder Archiviert.
  • Sticky Posts: Pinne wichtige Beiträge oben an die Startseite (📌 Feature).
  • Kategorien: Organisiere deine Inhalte in flexiblen Kategorien.
  • Tags (Schlagwörter): Organisiere Artikel mit spezifischen Schlagwörtern (Tags) für bessere Auffindbarkeit.
  • Syntax Highlighting: Automatische Hervorhebung von Code-Blöcken für technische Blogs.

🖼️ Medien & Dateien

  • Dateimanager: Integrierter Dateimanager zum Hochladen und Verwalten von Bildern und Dateien.
  • Hero Images: Setze beeindruckende Titelbilder für deine Artikel.
  • Datei-Anhänge: Biete Dateien direkt im Artikel zum Download an.

💬 Interaktion & Community

  • Kommentarsystem: Besucher können Artikel kommentieren.
  • Kontaktformular: Integrierte Kontaktseite mit sicherem Posteingang im Admin-Panel (kein Mailserver nötig).
  • Spamschutz: Eingebauter mathematischer Spamschutz (Captcha).
  • Moderation: Admin-Tools zum Genehmigen, als Spam markieren oder Löschen von Kommentaren.

⚙️ Administration & System

  • Umfangreiches Dashboard: Statistiken zu Posts, Kommentaren und Systemstatus auf einen Blick.
  • Multi-User-System: Rollenbasiertes Rechtesystem (Admin, Editor, Viewer) zur sicheren Verwaltung von Team-Zugriffen.
  • Einstellungen: Konfiguriere Blog-Titel, Beschreibung, SMTP-Mail-Server und mehr direkt im Admin-Panel.
  • Backup-System: Erstelle und lade Backups deiner Daten (JSON, CSV oder Full ZIP) herunter.
  • Logbuch: Protokolliert Benutzeraktionen für Sicherheit und Transparenz.
  • Wartungsmodus: Schalte die Seite temporär offline für Updates.

🎨 Design & UX

  • Suchfunktion: Integrierte Suchleiste, um Inhalte sofort zu finden.
  • Paginierung: Intelligente Seitennummerierung für einfaches Durchstöbern des Archivs.
  • Dark Mode: Besucher können zwischen Hell- und Dunkelmodus wechseln 🌓.
  • Responsives Design: Optimiert für Desktop, Tablet und Mobile.
  • Sidebar: Dynamische Sidebar mit Kategorien, Tag-Cloud und neuesten Kommentaren.
  • Back-to-Top: Bequeme Navigation für lange Artikel.

🌍 Internationalisierung (i18n)

  • Mehrsprachig: Vollständige Unterstützung für Deutsch 🇩🇪, Englisch 🇬🇧, Französisch 🇫🇷 und Spanisch 🇪🇸 sowohl im Frontend als auch im Backend.

🚀 Installation

PrivatCMS ist für den Betrieb mit Docker optimiert, was die Installation extrem einfach macht.

Voraussetzungen

  • Docker & Docker Compose installiert.
  • Git (optional, zum Klonen des Repos).

Schritt-für-Schritt Anleitung

  1. Repository klonen

    git clone https://github.com/el-choco/piperblog.git
    cd piperblog
  2. Installer ausführen Nutze das beiliegende Installations-Skript, um die Umgebung einzurichten und die Container zu starten:

    chmod +x docker-install.sh
    ./docker-install.sh

    Das Skript erstellt automatisch die .env Datei, baut die Docker-Container und startet sie.

  3. Blog aufrufen Sobald die Container laufen, ist dein Blog erreichbar unter:

    • Frontend: http://localhost:3333 (oder Port gemäß Konfiguration)
    • Admin-Login: http://localhost:3333/admin
  4. Erste Anmeldung Beim ersten Aufruf des Admin-Bereichs wirst du aufgefordert, ein Initial-Passwort für den Administrator zu setzen, falls noch keines existiert.


🛠️ Technologie-Stack

  • Backend: PHP 8.2+
  • Datenbank: MySQL 8.0
  • Webserver: Apache
  • Frontend: HTML5, CSS3, Vanilla JS
  • Containerisierung: Docker

📂 Struktur

  • admin/ - Verwaltungsoberfläche (Backend).
  • public/ - Das für Besucher sichtbare Frontend (Themes, Assets).
  • src/ - PHP-Klassen und Kernlogik.
  • config/ - Konfigurationsdateien und Sprachdateien (.ini).
  • docker/ - Docker-spezifische Konfigurationen.

📄 Lizenz

Dieses Projekt ist unter der MIT Lizenz veröffentlicht. Siehe LICENSE für Details.