Lightweight, self-hosted PHP blog engine for Markdown posts. PHP-MBBS stores content as flat files, ships with an admin panel, and includes SEO-friendly URLs, RSS, sitemap, search, dark mode, and basic security controls.
Live demo: https://anbarli.com.tr/blog
PHP ve Markdown kullanarak çalışan hafif, veritabanı gerektirmeyen ve kendi sunucunuzda barındırabileceğiniz bir blog sistemi. Yazılar dosya tabanlı tutulur; admin paneli, SEO dostu URL'ler, RSS beslemesi, sitemap, arama, dark mode ve temel güvenlik önlemleriyle birlikte gelir.
- Veritabanı gerekmez: Markdown dosyalarıyla hızlı kurulum ve kolay yedekleme
- Admin paneli vardır: Yazı, kategori ve temel ayar yönetimi
- SEO hazır gelir: Meta etiketler, Open Graph, Twitter Cards, structured data, sitemap ve RSS
- Paylaşımlı hosting uyumlu: PHP 7.4+ ve Apache
mod_rewriteyeterlidir - Kişisel blog odaklıdır: Not, makale ve pratik bilgi yayınlamak için sade yapı
- Markdown Desteği: Blog yazıları Markdown formatında
- Flat-file İçerik: Yazılar dosya sisteminde tutulur, veritabanı gerekmez
- SEO Optimizasyonu: Dostu URL'ler, meta etiketler, sitemap
- Admin Paneli: Yazı yönetimi, kategori yönetimi, ayarlar
- Arama Sistemi: Gelişmiş arama özelliği
- Dark Mode: Karanlık/aydınlık tema desteği
- RSS Beslemesi: Otomatik RSS oluşturma
- Güvenlik: XSS koruması, session yönetimi, şifre hash'leme
- Performans: Önbellekleme sistemi, gzip sıkıştırma
- PHP 7.4+
- Apache (mod_rewrite etkin)
- Web tarayıcısı
-
Projeyi klonlayın:
git clone https://github.com/anbarli/PHP-MBBS.git cd PHP-MBBS -
Ayarları yapılandırın:
cp config.local.example.php config.local.php cp admin/admin.env.example admin/admin.env
-
Dosyaları düzenleyin:
config.local.php: Site ayarlarıadmin/admin.env: Admin bilgileri
-
Blog yazılarını ekleyin:
posts/klasörüne.mddosyaları ekleyin
-
Tarayıcıda açın:
- Ana sayfa:
http://localhost/blog/ - Admin paneli:
http://localhost/blog/admin/
- Ana sayfa:
---
title: Yazı Başlığı
category: Kategori
tags: [etiket1, etiket2]
date: 2024-01-15
---
# İçerik
Markdown formatında yazınız.../blog/
├── posts/ # Blog yazıları
├── admin/ # Admin paneli
├── includes/ # Sistem dosyaları
├── cache/ # Önbellek (otomatik)
├── index.php # Ana sayfa
├── post.php # Yazı sayfası
├── search.php # Arama
├── rss.php # RSS beslemesi
└── config.php # Yapılandırma
- XSS koruması
- Path traversal koruması
- Session yönetimi
- Şifre hash'leme
- Admin kimlik doğrulama
- Meta etiketler
- Open Graph
- Twitter Cards
- Structured Data
- XML Sitemap
- Robots.txt
A lightweight, self-hosted PHP blog system powered by Markdown and flat files. It includes an admin panel, SEO-friendly URLs, RSS feed, sitemap, search, dark mode, and basic security controls without requiring a database.
- No database required: Fast setup and simple backups with Markdown files
- Admin panel included: Manage posts, categories, and core settings
- SEO-ready: Meta tags, Open Graph, Twitter Cards, structured data, sitemap, and RSS
- Shared-hosting friendly: PHP 7.4+ and Apache
mod_rewriteare enough - Built for personal publishing: Ideal for notes, articles, and practical knowledge
- Markdown Support: Blog posts in Markdown format
- Flat-file Content: Posts are stored on the filesystem, no database required
- SEO Optimization: Friendly URLs, meta tags, sitemap
- Admin Panel: Post management, category management, settings
- Search System: Advanced search functionality
- Dark Mode: Dark/light theme support
- RSS Feed: Automatic RSS generation
- Security: XSS protection, session management, password hashing
- Performance: Caching system, gzip compression
- PHP 7.4+
- Apache (mod_rewrite enabled)
- Web browser
-
Clone the project:
git clone https://github.com/anbarli/PHP-MBBS.git cd PHP-MBBS -
Configure settings:
cp config.local.example.php config.local.php cp admin/admin.env.example admin/admin.env
-
Edit files:
config.local.php: Site settingsadmin/admin.env: Admin credentials
-
Add blog posts:
- Add
.mdfiles toposts/folder
- Add
-
Open in browser:
- Homepage:
http://localhost/blog/ - Admin panel:
http://localhost/blog/admin/
- Homepage:
---
title: Post Title
category: Category
tags: [tag1, tag2]
date: 2024-01-15
---
# Content
Write your content in Markdown format.../blog/
├── posts/ # Blog posts
├── admin/ # Admin panel
├── includes/ # System files
├── cache/ # Cache (auto-generated)
├── index.php # Homepage
├── post.php # Post page
├── search.php # Search
├── rss.php # RSS feed
└── config.php # Configuration
- XSS protection
- Path traversal protection
- Session management
- Password hashing
- Admin authentication
- Meta tags
- Open Graph
- Twitter Cards
- Structured Data
- XML Sitemap
- Robots.txt
MIT License - see LICENSE file for details.
- Fork the repository
- Create feature branch
- Commit changes
- Push to branch
- Open Pull Request
For issues, use GitHub Issues.
admin/admin.envicindekiADMIN_PASSWORDalani artikpassword_hash()cikti formatini kullanir ($2y$.../ bcrypt-argon2).- Frontend/admin CSS ve JS dosyalari
assetPath()ile versiyonlanir (?v=filemtime) ve cache kaynakli eski dosya sorunu azalir. .htaccessCSP kurallari guncellendi:script-src:https://static.cloudflareinsights.comeklendi.connect-src:https://cdn.jsdelivr.netvehttps://static.cloudflareinsights.comeklendi.
ADMIN_PASSWORDinadmin/admin.envnow expectspassword_hash()output format ($2y$.../ bcrypt-argon2).- Frontend/admin CSS and JS assets are versioned via
assetPath()(?v=filemtime) to reduce stale-cache issues. .htaccessCSP has been updated:script-src: addedhttps://static.cloudflareinsights.comconnect-src: addedhttps://cdn.jsdelivr.netandhttps://static.cloudflareinsights.com
Create a draft post file from terminal:
./new-post "Post Title"Windows:
new-post.cmd "Post Title"Options:
./new-post "Post Title" --category=Genel --tags=php,blog --status=draft --description="Kisa ozet" --date=2026-03-01